From: Tomas Doran Date: Thu, 14 May 2009 17:29:55 +0000 (+0000) Subject: Add tests to show that 5.80 broke ->req->parameters when you do on-demand parsing. X-Git-Tag: 5.80004~8 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=commitdiff_plain;h=cb5b55f9dd90d240c4cb08980d12bb29a53431dc Add tests to show that 5.80 broke ->req->parameters when you do on-demand parsing. --- diff --git a/t/aggregate/live_engine_request_body_demand.t b/t/aggregate/live_engine_request_body_demand.t index b4d7889..b032f63 100644 --- a/t/aggregate/live_engine_request_body_demand.t +++ b/t/aggregate/live_engine_request_body_demand.t @@ -6,7 +6,7 @@ use warnings; use FindBin; use lib "$FindBin::Bin/../lib"; -use Test::More tests => 8; +use Test::More tests => 12; use Catalyst::Test 'TestAppOnDemand'; use Catalyst::Request; @@ -18,19 +18,44 @@ use HTTP::Request::Common; SKIP: { if ( $ENV{CATALYST_SERVER} ) { - skip "Using remote server", 8; + skip "Using remote server", 12; } - + + { + my $params; + + my $request = POST( + 'http://localhost/body/query_params?wibble=wobble', + 'Content-Type' => 'application/x-www-form-urlencoded', + 'Content' => 'foo=bar&baz=quux' + ); + + my $expected = { wibble => 'wobble' }; + + ok( my $response = request($request), 'Request' ); + ok( $response->is_success, 'Response Successful 2xx' ); + + { + no strict 'refs'; + ok( + eval '$params = ' . $response->content, + 'Unserialize params' + ); + } + + is_deeply( $params, $expected, 'Catalyst::Request query parameters' ); + } + { my $params; my $request = POST( - 'http://localhost/body/params', + 'http://localhost/body/params?wibble=wobble', 'Content-Type' => 'application/x-www-form-urlencoded', 'Content' => 'foo=bar&baz=quux' ); - my $expected = { foo => 'bar', baz => 'quux' }; + my $expected = { foo => 'bar', baz => 'quux', wibble => 'wobble' }; ok( my $response = request($request), 'Request' ); ok( $response->is_success, 'Response Successful 2xx' ); @@ -43,7 +68,7 @@ SKIP: ); } - is_deeply( $params, $expected, 'Catalyst::Request body parameters' ); + is_deeply( $params, $expected, 'Catalyst::Request body and query parameters' ); } # Test reading chunks of the request body using $c->read diff --git a/t/lib/TestAppOnDemand/Controller/Body.pm b/t/lib/TestAppOnDemand/Controller/Body.pm index 6e9eeae..bbf3c88 100644 --- a/t/lib/TestAppOnDemand/Controller/Body.pm +++ b/t/lib/TestAppOnDemand/Controller/Body.pm @@ -5,12 +5,24 @@ use base 'Catalyst::Controller'; use Data::Dump (); -sub params : Local { +sub body_params : Local { my ( $self, $c ) = @_; $c->res->body( Data::Dump::dump( $c->req->body_parameters ) ); } +sub query_params : Local { + my ( $self, $c ) = @_; + + $c->res->body( Data::Dump::dump( $c->req->query_parameters ) ); +} + +sub params : Local { + my ( $self, $c ) = @_; + + $c->res->body( Data::Dump::dump( $c->req->parameters ) ); +} + sub read : Local { my ( $self, $c ) = @_;