6 use Test::More tests => 29;
10 my $meta = Catalyst::Log->meta;
12 $meta->remove_method('_send_to_log');
13 $meta->add_method('_send_to_log', sub {});
16 sub build_test_app_with_setup {
17 my ($name, @flags) = @_;
18 my $flags = '(' . join(', ', map { "'".$_."'" } @flags) . ')';
19 $flags = '' if $flags eq '()';
29 build_test_app_with_setup('UnusedApp'); # Mock an app before localizing %ENV
30 # to ensure that anything which is dynamically
31 # loaded from the enviornment is loaded
33 local %ENV; # Don't allow env variables to mess us up.
36 my $app = build_test_app_with_setup('MyTestDebug', '-Debug');
38 ok my $c = MyTestDebug->new, 'Get debug app object';
39 ok my $log = $c->log, 'Get log object';
40 isa_ok $log, 'Catalyst::Log', 'It should be a Catalyst::Log object';
41 ok $log->is_warn, 'Warnings should be enabled';
42 ok $log->is_error, 'Errors should be enabled';
43 ok $log->is_fatal, 'Fatal errors should be enabled';
44 ok $log->is_info, 'Info should be enabled';
45 ok $log->is_debug, 'Debugging should be enabled';
46 ok $app->debug, 'debug method should return true';
50 my $app = build_test_app_with_setup('MyTestLogParam', '-Log=warn,error,fatal');
52 ok my $c = $app->new, 'Get log app object';
53 ok my $log = $c->log, 'Get log object';
54 isa_ok $log, 'Catalyst::Log', 'It should be a Catalyst::Log object';
55 ok $log->is_warn, 'Warnings should be enabled';
56 ok $log->is_error, 'Errors should be enabled';
57 ok $log->is_fatal, 'Fatal errors should be enabled';
58 ok !$log->is_info, 'Info should be disabled';
59 ok !$log->is_debug, 'Debugging should be disabled';
60 ok !$c->debug, 'Catalyst debugging is off';
63 my $app = build_test_app_with_setup('MyTestNoParams');
65 ok my $c = $app->new, 'Get log app object';
66 ok my $log = $c->log, 'Get log object';
67 isa_ok $log, 'Catalyst::Log', 'It should be a Catalyst::Log object';
68 ok $log->is_warn, 'Warnings should be enabled';
69 ok $log->is_error, 'Errors should be enabled';
70 ok $log->is_fatal, 'Fatal errors should be enabled';
71 ok $log->is_info, 'Info should be enabled';
72 ok $log->is_debug, 'Debugging should be enabled';
73 ok !$c->debug, 'Catalyst debugging turned off';
75 my $log_meta = Class::MOP::Class->create_anon_class(
76 methods => { map { $_ => sub { 0 } } qw/debug error fatal info warn/ },
79 package MyTestAppWithOwnLogger;
80 use base qw/Catalyst/;
81 __PACKAGE__->log($log_meta->new_object);
82 __PACKAGE__->setup('-Debug');
85 ok my $c = MyTestAppWithOwnLogger->new, 'Get with own logger app object';
86 ok $c->debug, '$c->debug is true';