X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fmulti_content_type.t;h=f0bf615d141fb07512c374a10e435ec9e18be73b;hb=6435acdcab63d866a5eba6d434b356cadba89588;hp=081a47ec4d76ccc9635bf5d84a113c6cf86c4b31;hpb=cfd812d6df038fa098c69af4e8a80e0342e7b1ce;p=catagits%2FTest-WWW-Mechanize-Catalyst.git diff --git a/t/multi_content_type.t b/t/multi_content_type.t index 081a47e..f0bf615 100644 --- a/t/multi_content_type.t +++ b/t/multi_content_type.t @@ -7,10 +7,9 @@ my $PORT; BEGIN { $PORT = $ENV{TWMC_TEST_PORT} || 7357; - $ENV{CATALYST_SERVER} ||= "http://localhost:$PORT"; } -use Test::More tests => 6; +use Test::More tests => 9; use Test::Exception; BEGIN { @@ -27,7 +26,9 @@ BEGIN { $SIG{INT} = sub { warn "INT:$$"; exit }; use_ok 'ExternalCatty'; -my $pid = ExternalCatty->background($PORT); +my $pid; +($pid, $PORT) = ExternalCatty->background($PORT); +$ENV{CATALYST_SERVER} ||= "http://localhost:$PORT"; use Test::WWW::Mechanize::Catalyst; my $m = Test::WWW::Mechanize::Catalyst->new; @@ -36,23 +37,31 @@ my $skip = 0; TRY_CONNECT: { eval { $m->get('/') }; - if ($@ || $m->content =~ /\(connect: Connection refused\)/) { + if ($@ || $m->content =~ /Can't connect to \w+:$PORT/) { $skip = $@ || $m->content; } } SKIP: { - skip $skip, 5 if $skip; + skip $skip, 8 if $skip; lives_ok { $m->get_ok( '/', 'Get a multi Content-Type response' ) } 'Survive to a multi Content-Type sting'; is( $m->ct, 'text/html', 'Multi Content-Type Content-Type' ); $m->title_is( 'Root', 'Multi Content-Type title' ); $m->content_contains( "Hello, test \x{263A}!", 'Multi Content-Type body' ); + + # Test a redirect with a remote server now too. + $m->get_ok( '/hello' ); + is($m->uri, "$ENV{CATALYST_SERVER}/"); + + $m->get_ok( '/host' ); + $m->content_contains('Host: localhost:$PORT') or diag $m->content; + } END { - if ( $pid && $pid > 0 ) { + if ( $pid && $pid != 0 ) { kill 9, $pid; } }