X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Faggregate%2Funit_core_component.t;h=69ac6c0153a268d8219bbaa4b97db1680bc0820c;hb=6ca3b7de88bc467ca828496a614d84dc3a9a2b51;hp=8ef605129f055558c11f7c7e8cad4f3b16433c8d;hpb=f723794a21b143f495fc00a4584efcfee4c14fa7;p=catagits%2FCatalyst-Runtime.git diff --git a/t/aggregate/unit_core_component.t b/t/aggregate/unit_core_component.t index 8ef6051..69ac6c0 100644 --- a/t/aggregate/unit_core_component.t +++ b/t/aggregate/unit_core_component.t @@ -1,4 +1,4 @@ -use Test::More; +use Test::More tests => 22; use strict; use warnings; @@ -30,16 +30,31 @@ is_deeply([ MyApp->comp('Foo') ], \@complist, 'Fallthrough return ok'); # regexp behavior { - is_deeply( [ MyApp->comp( qr{Model} ) ], [ 'MyApp::M::Model' ], 'regexp ok' ); + is_deeply( [ MyApp->comp( qr{Model} ) ], [ 'MyApp::M::Model'], 'regexp ok' ); + is_deeply( [ MyApp->comp('MyApp::V::View$') ], [ 'MyApp::V::View' ], 'Explicit return ok'); + is_deeply( [ MyApp->comp('MyApp::C::Controller$') ], [ 'MyApp::C::Controller' ], 'Explicit return ok'); + is_deeply( [ MyApp->comp('MyApp::M::Model$') ], [ 'MyApp::M::Model' ], 'Explicit return ok'); + + # a couple other varieties for regexp fallback + is_deeply( [ MyApp->comp('M::Model') ], [ 'MyApp::M::Model' ], 'Explicit return ok'); { my $warnings = 0; no warnings 'redefine'; local *Catalyst::Log::warn = sub { $warnings++ }; - is_deeply( [ MyApp->comp('::M::Model') ], \@complist, 'no results for regexp fallback'); + is_deeply( [ MyApp->comp('::M::Model') ], [ 'MyApp::M::Model' ], 'Explicit return ok'); + ok( $warnings, 'regexp fallback warnings' ); + + $warnings = 0; + is_deeply( [ MyApp->comp('Mode') ], [ 'MyApp::M::Model' ], 'Explicit return ok'); ok( $warnings, 'regexp fallback warnings' ); + + $warnings = 0; + is(MyApp->comp('::M::'), 'MyApp::M::Model', 'Regex return ok'); + ok( $warnings, 'regexp fallback for comp() warns' ); } + } # multiple returns @@ -71,6 +86,8 @@ is_deeply([ MyApp->comp('Foo') ], \@complist, 'Fallthrough return ok'); $c->component('M::Model', qw/foo2 bar2/); is_deeply($args, [qw/foo2 bar2/], 'args passed to ACCEPT_CONTEXT ok'); + + $c->component('Mode', qw/foo3 bar3/); + is_deeply($args, [qw/foo3 bar3/], 'args passed to ACCEPT_CONTEXT ok'); } -done_testing;