scanning for open port after failing to open server on the default test port
[catagits/Test-WWW-Mechanize-Catalyst.git] / t / multi_content_type.t
index 71ac228..f0bf615 100644 (file)
@@ -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,19 +37,27 @@ my $skip = 0;
 TRY_CONNECT: {
   eval { $m->get('/') };
 
-  if ($@ || $m->content =~ /Can't connect to localhost:$PORT/) {
+  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 {