5 use Test::More tests => 29;
9 my $meta = Catalyst::Log->meta;
11 $meta->remove_method('_send_to_log');
12 $meta->add_method('_send_to_log', sub {});
15 sub build_test_app_with_setup {
16 my ($name, @flags) = @_;
17 my $flags = '(' . join(', ', map { "'".$_."'" } @flags) . ')';
18 $flags = '' if $flags eq '()';
29 my $app = build_test_app_with_setup('MyTestDebug', '-Debug');
31 ok my $c = MyTestDebug->new, 'Get debug app object';
32 ok my $log = $c->log, 'Get log object';
33 isa_ok $log, 'Catalyst::Log', 'It should be a Catalyst::Log object';
34 ok $log->is_warn, 'Warnings should be enabled';
35 ok $log->is_error, 'Errors should be enabled';
36 ok $log->is_fatal, 'Fatal errors should be enabled';
37 ok $log->is_info, 'Info should be enabled';
38 ok $log->is_debug, 'Debugging should be enabled';
39 ok $app->debug, 'debug method should return true';
43 my $app = build_test_app_with_setup('MyTestLogParam', '-Log=warn,error,fatal');
45 ok my $c = $app->new, 'Get log app object';
46 ok my $log = $c->log, 'Get log object';
47 isa_ok $log, 'Catalyst::Log', 'It should be a Catalyst::Log object';
48 ok $log->is_warn, 'Warnings should be enabled';
49 ok $log->is_error, 'Errors should be enabled';
50 ok $log->is_fatal, 'Fatal errors should be enabled';
51 ok !$log->is_info, 'Info should be disabled';
52 ok !$log->is_debug, 'Debugging should be disabled';
53 ok !$c->debug, 'Catalyst debugging is off';
56 my $app = build_test_app_with_setup('MyTestNoParams');
58 ok my $c = $app->new, 'Get log app object';
59 ok my $log = $c->log, 'Get log object';
60 isa_ok $log, 'Catalyst::Log', 'It should be a Catalyst::Log object';
61 ok $log->is_warn, 'Warnings should be enabled';
62 ok $log->is_error, 'Errors should be enabled';
63 ok $log->is_fatal, 'Fatal errors should be enabled';
64 ok $log->is_info, 'Info should be enabled';
65 ok $log->is_debug, 'Debugging should be enabled';
66 ok !$c->debug, 'Catalyst debugging turned off';
69 package MyTestAppWithOwnLogger;
70 use base qw/Catalyst/;
72 my $log = Test::MockObject->new;
73 $log->set_false(qw/debug error fatal info warn/);
74 __PACKAGE__->log($log);
75 __PACKAGE__->setup('-Debug');
78 ok my $c = MyTestAppWithOwnLogger->new, 'Get with own logger app object';
79 ok $c->debug, '$c->debug is true';