5 use Test::More tests => 30;
7 use Test::WWW::Mechanize::Catalyst 'Catty';
8 use HTTP::Request::Common;
12 my $root = "http://localhost";
15 foreach my $where (qw{hi greetings bonjour}) {
16 $m = Test::WWW::Mechanize::Catalyst->new;
17 $m->get_ok( "$root/$where", "got something when we $where" );
19 is( $m->base, "http://localhost/hello", "check got to hello 1/4" );
20 is( $m->ct, "text/html", "check got to hello 2/4" );
21 $m->title_is( "Hello",, "check got to hello 3/4" );
22 $m->content_contains( "Hi there",, "check got to hello 4/4" );
24 # check that the previous response is still there
25 my $prev = $m->response->previous;
26 ok( $prev, "have a previous" );
27 is( $prev->code, 302, "was a redirect" );
28 like( $prev->header('Location'), '/hello$/', "to the right place" );
31 # extra checks for bonjour (which is a double redirect)
32 my $prev = $m->response->previous->previous;
33 ok( $prev, "have a previous previous" );
34 is( $prev->code, 302, "was a redirect" );
35 like( $prev->header('Location'), '/hi$/', "to the right place" );
37 $m->get("$root/redirect_with_500");
38 is ($m->status, 500, "Redirect not followed on 500");
40 my $req = GET "$root/redirect_to_utf8_upgraded_string";
41 my $loc = $m->_do_catalyst_request($req)->header('Location');
42 my $uri = URI->new_abs( $loc, $req->uri )->as_string;
44 isnt_flagged_utf8($uri);