X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Flive_component_controller_action_chained.t;h=b9367a21e8c8469b1d68762455c300d78b6d21fd;hb=1b04b972e18d9681ab30d07a267bb2896ea9f7d2;hp=d51ba0f86ecec35baba96b3bd8708b5c668e8476;hpb=2349aeea36e187c7d285017b1a6f7dfb0695aa9b;p=catagits%2FCatalyst-Runtime.git diff --git a/t/live_component_controller_action_chained.t b/t/live_component_controller_action_chained.t index d51ba0f..b9367a2 100644 --- a/t/live_component_controller_action_chained.t +++ b/t/live_component_controller_action_chained.t @@ -10,7 +10,7 @@ our $iters; BEGIN { $iters = $ENV{CAT_BENCH_ITERS} || 2; } -use Test::More tests => 96*$iters; +use Test::More tests => 99*$iters; use Catalyst::Test 'TestApp'; if ( $ENV{CAT_BENCHMARK} ) { @@ -120,7 +120,7 @@ sub run_tests { # # The first three-chain test tries to call the action with :Args(1) - # specification. There's also a one action with a :Captures(1) + # specification. There's also a one action with a :CaptureArgs(1) # attribute, that should not be dispatched to. # { @@ -142,7 +142,7 @@ sub run_tests { # # This is the second three-chain test, it goes for the action that # handles "/one/$cap/two/$arg1/$arg2" paths. Should be the two action - # having :Args(2), not the one having :Captures(2). + # having :Args(2), not the one having :CaptureArgs(2). # { my @expected = qw[ @@ -162,9 +162,9 @@ sub run_tests { } # - # Last of the three-chain tests. Has no concurrent action with :Captures + # Last of the three-chain tests. Has no concurrent action with :CaptureArgs # and is more thought to simply test the chain as a whole and the 'two' - # action specifying :Captures. + # action specifying :CaptureArgs. # { my @expected = qw[ @@ -364,6 +364,27 @@ sub run_tests { } # + # This belongs to the former test but tests if two chained actions have + # priority over an action with one child action not having the Args() attr set. + # + { + my @expected = qw[ + TestApp::Controller::Action::Chained->begin + TestApp::Controller::Action::Chained->priority_c1 + TestApp::Controller::Action::Chained->priority_c2_xyz + TestApp::Controller::Action::Chained->end + ]; + + my $expected = join( ", ", @expected ); + + ok( my $response = request('http://localhost/chained/priority_c/1/xyz/'), + 'priority - no Args() order mismatch' ); + is( $response->header('X-Catalyst-Executed'), + $expected, 'Executed actions' ); + is( $response->content, '1; ', 'Content OK' ); + } + + # # Test dispatching between two controllers that are on the same level and # therefor have no parent/child relationship. #