Test uri_for with path = 0
[catagits/Catalyst-Runtime.git] / t / aggregate / unit_core_setup.t
CommitLineData
0fa676a7 1use strict;
2use warnings;
b7574be1 3use Class::MOP;
0fa676a7 4use Catalyst::Runtime;
5
d31581c6 6use Test::More tests => 29;
0fa676a7 7
8{
9 # Silence the log.
d31581c6 10 my $meta = Catalyst::Log->meta;
11 $meta->make_mutable;
12 $meta->remove_method('_send_to_log');
13 $meta->add_method('_send_to_log', sub {});
0fa676a7 14}
15
d31581c6 16sub build_test_app_with_setup {
17 my ($name, @flags) = @_;
18 my $flags = '(' . join(', ', map { "'".$_."'" } @flags) . ')';
19 $flags = '' if $flags eq '()';
20 eval qq{
21 package $name;
22 use Catalyst $flags;
23 $name->setup;
24 };
25 die $@ if $@;
26 return $name;
0fa676a7 27}
28
803210fa 29local %ENV = %ENV;
69c27273 30
803210fa 31# Remove all relevant env variables to avoid accidental fail
32foreach my $name (grep { /^(CATALYST|TESTAPP)/ } keys %ENV) {
33 delete $ENV{$name};
34}
c69e69d2 35
d31581c6 36{
803210fa 37 my $app = build_test_app_with_setup('TestAppMyTestDebug', '-Debug');
0fa676a7 38
803210fa 39 ok my $c = $app->new, 'Get debug app object';
d31581c6 40 ok my $log = $c->log, 'Get log object';
41 isa_ok $log, 'Catalyst::Log', 'It should be a Catalyst::Log object';
e2422920 42 ok $log->is_warn, 'Warnings should be enabled';
43 ok $log->is_error, 'Errors should be enabled';
44 ok $log->is_fatal, 'Fatal errors should be enabled';
45 ok $log->is_info, 'Info should be enabled';
d31581c6 46 ok $log->is_debug, 'Debugging should be enabled';
47 ok $app->debug, 'debug method should return true';
0fa676a7 48}
49
d31581c6 50{
803210fa 51 my $app = build_test_app_with_setup('TestAppMyTestLogParam', '-Log=warn,error,fatal');
5baa3bbc 52
d31581c6 53 ok my $c = $app->new, 'Get log app object';
54 ok my $log = $c->log, 'Get log object';
55 isa_ok $log, 'Catalyst::Log', 'It should be a Catalyst::Log object';
56 ok $log->is_warn, 'Warnings should be enabled';
57 ok $log->is_error, 'Errors should be enabled';
58 ok $log->is_fatal, 'Fatal errors should be enabled';
59 ok !$log->is_info, 'Info should be disabled';
60 ok !$log->is_debug, 'Debugging should be disabled';
61 ok !$c->debug, 'Catalyst debugging is off';
62}
63{
803210fa 64 my $app = build_test_app_with_setup('TestAppMyTestNoParams');
d31581c6 65
66 ok my $c = $app->new, 'Get log app object';
67 ok my $log = $c->log, 'Get log object';
68 isa_ok $log, 'Catalyst::Log', 'It should be a Catalyst::Log object';
69 ok $log->is_warn, 'Warnings should be enabled';
70 ok $log->is_error, 'Errors should be enabled';
71 ok $log->is_fatal, 'Fatal errors should be enabled';
72 ok $log->is_info, 'Info should be enabled';
3be47528 73 ok $log->is_debug, 'Debugging should be enabled';
d31581c6 74 ok !$c->debug, 'Catalyst debugging turned off';
75}
a785d733 76my $log_meta = Class::MOP::Class->create_anon_class(
77 methods => { map { $_ => sub { 0 } } qw/debug error fatal info warn/ },
78);
d31581c6 79{
803210fa 80 package TestAppWithOwnLogger;
5baa3bbc 81 use base qw/Catalyst/;
a785d733 82 __PACKAGE__->log($log_meta->new_object);
5baa3bbc 83 __PACKAGE__->setup('-Debug');
84}
85
803210fa 86ok my $c = TestAppWithOwnLogger->new, 'Get with own logger app object';
5baa3bbc 87ok $c->debug, '$c->debug is true';
d31581c6 88