X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Flive_engine_request_uri.t;h=39e33450b9f09f0567748dc78b1242eea0207895;hb=f04fdedae056296d0fa97fbdcaa85b9811ca6a5b;hp=cecab6cef7fc77bb86fcf1071688dcad6286c4d0;hpb=4668cab5842b8d1003530f5c7af1dee81153d51b;p=catagits%2FCatalyst-Runtime.git diff --git a/t/live_engine_request_uri.t b/t/live_engine_request_uri.t index cecab6c..39e3345 100644 --- a/t/live_engine_request_uri.t +++ b/t/live_engine_request_uri.t @@ -1,12 +1,10 @@ -#!perl - use strict; use warnings; use FindBin; use lib "$FindBin::Bin/lib"; -use Test::More tests => 49; +use Test::More tests => 66; use Catalyst::Test 'TestApp'; use Catalyst::Request; @@ -120,3 +118,40 @@ SKIP: is( $response->header( 'X-Catalyst-warnings' ), 0, 'no warnings emitted' ); } +# more tests with undef - should be ignored +{ + my $uri = "http://localhost/engine/request/uri/uri_with_undef_only"; + my ($check) = $uri =~ m{^http://localhost(.+)}; # needed to work with remote servers + ok( my $response = request($uri), 'Request' ); + ok( $response->is_success, 'Response Successful 2xx' ); + like( $response->header( 'X-Catalyst-uri-with' ), qr/$check$/, 'uri_with ok' ); + + # try with existing param + $uri = "$uri?x=1"; + ($check) = $uri =~ m{^http://localhost(.+)}; # needed to work with remote servers + $check =~ s/\?/\\\?/g; + ok( $response = request($uri), 'Request' ); + ok( $response->is_success, 'Response Successful 2xx' ); + like( $response->header( 'X-Catalyst-uri-with' ), qr/$check$/, 'uri_with ok' ); +} + +{ + my $uri = "http://localhost/engine/request/uri/uri_with_undef_ignore"; + my ($check) = $uri =~ m{^http://localhost(.+)}; # needed to work with remote servers + ok( my $response = request($uri), 'Request' ); + ok( $response->is_success, 'Response Successful 2xx' ); + like( $response->header( 'X-Catalyst-uri-with' ), qr/$check\?a=1/, 'uri_with ok' ); + + # remove an existing param + ok( $response = request("${uri}?b=1"), 'Request' ); + ok( $response->is_success, 'Response Successful 2xx' ); + like( $response->header( 'X-Catalyst-uri-with' ), qr/$check\?a=1/, 'uri_with ok' ); + + # remove an existing param, leave one, and add a new one + ok( $response = request("${uri}?b=1&c=1"), 'Request' ); + ok( $response->is_success, 'Response Successful 2xx' ); + is( $response->header( 'X-Catalyst-Param-a' ), '1', 'param "a" ok' ); + ok( !defined $response->header( 'X-Catalyst-Param-b' ),'param "b" ok' ); + is( $response->header( 'X-Catalyst-Param-c' ), '1', 'param "c" ok' ); +} +