Commit | Line | Data |
0fa676a7 |
1 | use strict; |
2 | use warnings; |
3 | use Catalyst::Runtime; |
4 | |
d31581c6 |
5 | use Test::More tests => 29; |
0fa676a7 |
6 | |
7 | { |
8 | # Silence the log. |
d31581c6 |
9 | my $meta = Catalyst::Log->meta; |
10 | $meta->make_mutable; |
11 | $meta->remove_method('_send_to_log'); |
12 | $meta->add_method('_send_to_log', sub {}); |
0fa676a7 |
13 | } |
14 | |
d31581c6 |
15 | sub build_test_app_with_setup { |
16 | my ($name, @flags) = @_; |
17 | my $flags = '(' . join(', ', map { "'".$_."'" } @flags) . ')'; |
18 | $flags = '' if $flags eq '()'; |
19 | eval qq{ |
20 | package $name; |
21 | use Catalyst $flags; |
22 | $name->setup; |
23 | }; |
24 | die $@ if $@; |
25 | return $name; |
0fa676a7 |
26 | } |
27 | |
c69e69d2 |
28 | local %ENV; # Don't allow env variables to mess us up. |
29 | |
d31581c6 |
30 | { |
31 | my $app = build_test_app_with_setup('MyTestDebug', '-Debug'); |
0fa676a7 |
32 | |
d31581c6 |
33 | ok my $c = MyTestDebug->new, 'Get debug app object'; |
34 | ok my $log = $c->log, 'Get log object'; |
35 | isa_ok $log, 'Catalyst::Log', 'It should be a Catalyst::Log object'; |
e2422920 |
36 | ok $log->is_warn, 'Warnings should be enabled'; |
37 | ok $log->is_error, 'Errors should be enabled'; |
38 | ok $log->is_fatal, 'Fatal errors should be enabled'; |
39 | ok $log->is_info, 'Info should be enabled'; |
d31581c6 |
40 | ok $log->is_debug, 'Debugging should be enabled'; |
41 | ok $app->debug, 'debug method should return true'; |
0fa676a7 |
42 | } |
43 | |
d31581c6 |
44 | { |
45 | my $app = build_test_app_with_setup('MyTestLogParam', '-Log=warn,error,fatal'); |
5baa3bbc |
46 | |
d31581c6 |
47 | ok my $c = $app->new, 'Get log app object'; |
48 | ok my $log = $c->log, 'Get log object'; |
49 | isa_ok $log, 'Catalyst::Log', 'It should be a Catalyst::Log object'; |
50 | ok $log->is_warn, 'Warnings should be enabled'; |
51 | ok $log->is_error, 'Errors should be enabled'; |
52 | ok $log->is_fatal, 'Fatal errors should be enabled'; |
53 | ok !$log->is_info, 'Info should be disabled'; |
54 | ok !$log->is_debug, 'Debugging should be disabled'; |
55 | ok !$c->debug, 'Catalyst debugging is off'; |
56 | } |
57 | { |
58 | my $app = build_test_app_with_setup('MyTestNoParams'); |
59 | |
60 | ok my $c = $app->new, 'Get log app object'; |
61 | ok my $log = $c->log, 'Get log object'; |
62 | isa_ok $log, 'Catalyst::Log', 'It should be a Catalyst::Log object'; |
63 | ok $log->is_warn, 'Warnings should be enabled'; |
64 | ok $log->is_error, 'Errors should be enabled'; |
65 | ok $log->is_fatal, 'Fatal errors should be enabled'; |
66 | ok $log->is_info, 'Info should be enabled'; |
67 | ok $log->is_debug, 'Debugging should be enabled'; |
68 | ok !$c->debug, 'Catalyst debugging turned off'; |
69 | } |
70 | { |
5baa3bbc |
71 | package MyTestAppWithOwnLogger; |
72 | use base qw/Catalyst/; |
73 | use Test::MockObject; |
74 | my $log = Test::MockObject->new; |
75 | $log->set_false(qw/debug error fatal info warn/); |
76 | __PACKAGE__->log($log); |
77 | __PACKAGE__->setup('-Debug'); |
78 | } |
79 | |
d31581c6 |
80 | ok my $c = MyTestAppWithOwnLogger->new, 'Get with own logger app object'; |
5baa3bbc |
81 | ok $c->debug, '$c->debug is true'; |
d31581c6 |
82 | |