X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FTest-WWW-Mechanize-Catalyst.git;a=blobdiff_plain;f=t%2Fredirect.t;h=a1a1603fd8d4921a8950d58c5069e2dfd603e44c;hp=34ee3116704a812a4152b15053bebbcd4a592145;hb=60f2b4d9f5424b3b73780eada1bbfd64a006e625;hpb=182c043a06d347ba87a5a5de87f8c33de8e3b5fd diff --git a/t/redirect.t b/t/redirect.t index 34ee311..a1a1603 100644 --- a/t/redirect.t +++ b/t/redirect.t @@ -2,7 +2,7 @@ use strict; use warnings; use lib 'lib'; -use Test::More tests => 30; +use Test::More; use lib 't/lib'; use Test::WWW::Mechanize::Catalyst 'Catty'; use HTTP::Request::Common; @@ -42,3 +42,34 @@ my $loc = $m->_do_catalyst_request($req)->header('Location'); my $uri = URI->new_abs( $loc, $req->uri )->as_string; is_sane_utf8($uri); isnt_flagged_utf8($uri); + +# Check for max_redirects support +{ + $m = Test::WWW::Mechanize::Catalyst->new(max_redirect => 1); + is( $m->max_redirect, 1, 'max_redirect set' ); + + $m->get( "$root/bonjour" ); + ok( !$m->success, "get /bonjour with max_redirect=1 is not a success" ); + is( $m->response->redirects, 1, 'redirects only once' ); + like( $m->response->header('Client-Warning'), qr/Redirect loop detected/i, + 'sets Client-Warning header' ); +} + +# Make sure we can handle max_redirects=0 +{ + $m = Test::WWW::Mechanize::Catalyst->new(max_redirect => 0); + $m->get( "$root/hello" ); + ok( $m->success, "get /hello with max_redirect=0 succeeds" ); + is( $m->response->redirects, 0, 'no redirects' ); + ok( !$m->response->header('Client-Warning'), 'no Client-Warning header' ); + + # shouldn't be redirected if max_redirect == 0 + $m->get( "$root/bonjour" ); + ok( !$m->success, "get /bonjour with max_redirect=0 is not a success" ); + is( $m->response->redirects, 0, 'no redirects' ); + like( $m->response->header('Client-Warning'), qr/Redirect loop detected/i, + 'sets Client-Warning header' ); +} + +done_testing; +