X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=blobdiff_plain;f=t%2Faggregate%2Flive_component_controller_action_auto.t;h=07203295c3a7d2437d6542e145c8edcb90f1bb29;hp=bf566dc0990535f8c9b6375bb060e476ff8fa15a;hb=7064f69b1dfb59d1f3bad647b2097d0320acce8a;hpb=42da66a91b0a87ebb81d8552bcd0b05d3557c83e diff --git a/t/aggregate/live_component_controller_action_auto.t b/t/aggregate/live_component_controller_action_auto.t index bf566dc..0720329 100644 --- a/t/aggregate/live_component_controller_action_auto.t +++ b/t/aggregate/live_component_controller_action_auto.t @@ -1,5 +1,3 @@ -#!perl - use strict; use warnings; @@ -10,13 +8,13 @@ our $iters; BEGIN { $iters = $ENV{CAT_BENCH_ITERS} || 1; } -use Test::More tests => 18*$iters; +use Test::More; use Catalyst::Test 'TestApp'; if ( $ENV{CAT_BENCHMARK} ) { require Benchmark; Benchmark::timethis( $iters, \&run_tests ); - + # new dispatcher: # 11 wallclock secs (10.14 usr + 0.20 sys = 10.34 CPU) @ 15.18/s (n=157) # old dispatcher (r1486): @@ -27,7 +25,7 @@ else { run_tests(); } } - + sub run_tests { # test auto + local method { @@ -35,34 +33,34 @@ sub run_tests { TestApp::Controller::Action::Auto->begin TestApp::Controller::Action::Auto->auto TestApp::Controller::Action::Auto->one - TestApp->end + TestApp::Controller::Root->end ]; - + my $expected = join( ", ", @expected ); - + ok( my $response = request('http://localhost/action/auto/one'), 'auto + local' ); is( $response->header('X-Catalyst-Executed'), $expected, 'Executed actions' ); is( $response->content, 'one', 'Content OK' ); } - + # test auto + default { my @expected = qw[ TestApp::Controller::Action::Auto->begin TestApp::Controller::Action::Auto->auto TestApp::Controller::Action::Auto->default - TestApp->end + TestApp::Controller::Root->end ]; - + my $expected = join( ", ", @expected ); - + ok( my $response = request('http://localhost/action/auto/anything'), 'auto + default' ); is( $response->header('X-Catalyst-Executed'), $expected, 'Executed actions' ); is( $response->content, 'default', 'Content OK' ); } - + # test auto + auto + local { my @expected = qw[ @@ -70,17 +68,17 @@ sub run_tests { TestApp::Controller::Action::Auto->auto TestApp::Controller::Action::Auto::Deep->auto TestApp::Controller::Action::Auto::Deep->one - TestApp->end + TestApp::Controller::Root->end ]; - + my $expected = join( ", ", @expected ); - + ok( my $response = request('http://localhost/action/auto/deep/one'), 'auto + auto + local' ); is( $response->header('X-Catalyst-Executed'), $expected, 'Executed actions' ); is( $response->content, 'deep one', 'Content OK' ); } - + # test auto + auto + default { my @expected = qw[ @@ -88,17 +86,17 @@ sub run_tests { TestApp::Controller::Action::Auto->auto TestApp::Controller::Action::Auto::Deep->auto TestApp::Controller::Action::Auto::Deep->default - TestApp->end + TestApp::Controller::Root->end ]; - + my $expected = join( ", ", @expected ); - + ok( my $response = request('http://localhost/action/auto/deep/anything'), 'auto + auto + default' ); is( $response->header('X-Catalyst-Executed'), $expected, 'Executed actions' ); is( $response->content, 'deep default', 'Content OK' ); } - + # test auto + failing auto + local + end { my @expected = qw[ @@ -107,15 +105,15 @@ sub run_tests { TestApp::Controller::Action::Auto::Abort->auto TestApp::Controller::Action::Auto::Abort->end ]; - + my $expected = join( ", ", @expected ); - + ok( my $response = request('http://localhost/action/auto/abort/one'), 'auto + failing auto + local' ); is( $response->header('X-Catalyst-Executed'), $expected, 'Executed actions' ); is( $response->content, 'abort end', 'Content OK' ); } - + # test auto + default (bug on invocation of default twice) { my @expected = qw[ @@ -125,12 +123,69 @@ sub run_tests { TestApp::Controller::Action::Auto::Default->default TestApp::Controller::Action::Auto::Default->end ]; - + my $expected = join( ", ", @expected ); - + ok( my $response = request('http://localhost/action/auto/default/moose'), 'auto + default' ); is( $response->header('X-Catalyst-Executed'), $expected, 'Executed actions' ); is( $response->content, 'default (auto: 1)', 'Content OK' ); } + + # test detach in auto + { + my @expected = qw[ + TestApp::Controller::Action::Auto::Detach->begin + TestApp::Controller::Action::Auto->auto + TestApp::Controller::Action::Auto::Detach->auto + TestApp::Controller::Root->end + ]; + + my $expected = join( ", ", @expected ); + + ok( my $response = request('http://localhost/action/auto/detach'), 'auto with detach' ); + is( $response->header('X-Catalyst-Executed'), + $expected, 'Executed actions' ); + is( $response->content, 'detach auto', 'Content OK' ); + } + + # test detach in auto forward + { + my @expected = qw[ + TestApp::Controller::Action::Auto::Detach->begin + TestApp::Controller::Action::Auto->auto + TestApp::Controller::Action::Auto::Detach->auto + TestApp::Controller::Action::Auto::Detach->with_forward_detach + TestApp::Controller::Root->end + ]; + + my $expected = join( ", ", @expected ); + + ok( my $response = request('http://localhost/action/auto/detach?with_forward_detach=1'), 'auto with_forward_detach' ); + is( $response->header('X-Catalyst-Executed'), + $expected, 'Executed actions' ); + is( $response->content, 'detach with_forward_detach', 'Content OK' ); + } + + # test detach in auto forward detach action + { + my @expected = qw[ + TestApp::Controller::Action::Auto::Detach->begin + TestApp::Controller::Action::Auto->auto + TestApp::Controller::Action::Auto::Detach->auto + TestApp::Controller::Action::Auto::Detach->with_forward_detach + TestApp::Controller::Action::Auto::Detach->detach_action + TestApp::Controller::Root->end + ]; + + my $expected = join( ", ", @expected ); + + ok( my $response = request('http://localhost/action/auto/detach?with_forward_detach=1&detach_to_action=1'), 'auto with_forward_detach to detach_action' ); + is( $response->header('X-Catalyst-Executed'), + $expected, 'Executed actions' ); + is( $response->content, 'detach_action', 'Content OK' ); + } } + +done_testing; +