nicer action sorting for Path
[catagits/Catalyst-Runtime.git] / t / unit_core_setup.t
CommitLineData
0fa676a7 1use strict;
2use warnings;
3use Catalyst::Runtime;
4
d31581c6 5use 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 15sub 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 28local %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 80ok my $c = MyTestAppWithOwnLogger->new, 'Get with own logger app object';
5baa3bbc 81ok $c->debug, '$c->debug is true';
d31581c6 82