From: Tomas Doran Date: Wed, 4 Mar 2009 23:19:20 +0000 (+0000) Subject: Backport failing test into 5.70 trunk X-Git-Tag: 5.71001~11 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=commitdiff_plain;h=63b6bc2ae4f28f60fb0a9f3f731a1f3f24cf18e2 Backport failing test into 5.70 trunk --- diff --git a/Changes b/Changes index 70938c5..65da53e 100644 --- a/Changes +++ b/Changes @@ -1,6 +1,8 @@ # This file documents the revision history for Perl extension Catalyst. 5.71000_01 UNRELEASED + - Add failing test for passing arguments to visited chained + actions (Radoslaw Zielinski) - Support Moose components so that attribute defaults work and BUILD methods are correctly called (t0m) - Add tests for this (Florian Ragwitz) diff --git a/t/lib/TestApp/Controller/Action/Chained.pm b/t/lib/TestApp/Controller/Action/Chained.pm index 90b1efe..030f22d 100644 --- a/t/lib/TestApp/Controller/Action/Chained.pm +++ b/t/lib/TestApp/Controller/Action/Chained.pm @@ -15,7 +15,11 @@ sub begin :Private { } # # Simple parent/child action test # -sub foo :PathPart('chained/foo') :CaptureArgs(1) :Chained('/') { } +sub foo :PathPart('chained/foo') :CaptureArgs(1) :Chained('/') { + my ( $self, $c, @args ) = @_; + die "missing argument" unless @args; + die "more than 1 argument" if @args > 1; +} sub endpoint :PathPart('end') :Chained('/action/chained/foo') :Args(1) { } # diff --git a/t/lib/TestApp/Controller/Action/Visit.pm b/t/lib/TestApp/Controller/Action/Visit.pm index 3011a75..0447d34 100644 --- a/t/lib/TestApp/Controller/Action/Visit.pm +++ b/t/lib/TestApp/Controller/Action/Visit.pm @@ -62,7 +62,9 @@ sub visit_die : Local { sub visit_chained : Local { my ( $self, $c, $val ) = @_; - $c->visit('/action/chained/foo/spoon',[1]); + $val eq 1 ? $c->visit( '/action/chained/foo/spoon', [$val] ) + : $val eq 2 ? $c->visit( qw/ Action::Chained::Foo spoon /, [$val] ) + : $c->visit( $c->controller('Action::Chained::Foo')->action_for('spoon'), [$val] ) } sub view : Local { diff --git a/t/live_component_controller_action_visit.t b/t/live_component_controller_action_visit.t index 62d6766..6ce6706 100644 --- a/t/live_component_controller_action_visit.t +++ b/t/live_component_controller_action_visit.t @@ -10,7 +10,7 @@ our $iters; BEGIN { $iters = $ENV{CAT_BENCH_ITERS} || 1; } -use Test::More tests => 54 * $iters; +use Test::More tests => 60 * $iters; use Catalyst::Test 'TestApp'; if ( $ENV{CAT_BENCHMARK} ) { @@ -271,10 +271,13 @@ sub run_tests { my $expected = join( ", ", @expected ); - ok( my $response = request('http://localhost/action/visit/visit_chained'), 'visit to chained + subcontroller endpoint' ); - is( $response->header('X-Catalyst-Executed'), - $expected, 'Executed actions' ); - is( $response->content, '; 1', 'Content OK' ); + for my $i ( 1..3 ) { + ok( my $response = request("http://localhost/action/visit/visit_chained/$i"), + "visit to chained + subcontroller endpoint for $i" ); + is( $response->header('X-Catalyst-Executed'), + $expected, "Executed actions for $i" ); + is( $response->content, "; $i", "Content OK for $i" ); + } } }