4 use Test::More tests => 30;
10 my $meta = Moose->init_meta( for_class => $name );
11 $meta->superclasses('Catalyst');
13 $meta->add_after_method_modifier('log', sub {
14 my ($self, $log) = @_;
16 open my $err_fh, '>', \(my $err_out)
17 or die 'unable to open in memory buffer';
18 $log->psgienv({ 'psgi.errors' => $err_fh });
26 my ($log, %expected) = @_;
27 foreach my $level (keys %expected) {
28 my $method_name = "is_$level";
29 if ($expected{$level}) {
30 ok( $log->$method_name(), "Level $level on" );
33 ok( !$log->$method_name(), "Level $level off" );
40 # Remove all relevant env variables to avoid accidental fail
41 foreach my $name (grep { /^(CATALYST|TESTAPP)/ } keys %ENV) {
46 my $app = mock_app('TestAppParseLogLevels');
47 $app->setup_log('error,warn');
48 ok !$app->debug, 'Not in debug mode';
49 test_log_object($app->log,
59 $ENV{CATALYST_DEBUG} = 1;
60 my $app = mock_app('TestAppLogDebugEnvSet');
62 ok $app->debug, 'In debug mode';
63 test_log_object($app->log,
73 $ENV{CATALYST_DEBUG} = 0;
74 my $app = mock_app('TestAppLogDebugEnvUnset');
75 $app->setup_log('warn');
76 ok !$app->debug, 'Not In debug mode';
77 test_log_object($app->log,
86 my $app = mock_app('TestAppLogEmptyString');
88 ok !$app->debug, 'Not In debug mode';
89 # Note that by default, you get _all_ the log levels turned on
90 test_log_object($app->log,
99 my $app = mock_app('TestAppLogDebugOnly');
100 $app->setup_log('debug');
101 ok $app->debug, 'In debug mode';
102 test_log_object($app->log,