9 $PORT = $ENV{TWMC_TEST_PORT} || 7357;
12 use Test::More tests => 9;
17 "\n###################################################################\n",
18 "Starting an external Catalyst HTTP server on port $PORT\n",
19 "To change the port, please set the TWMC_TEST_PORT env variable.\n",
20 "(The server will be automatically shut-down right after the tests).\n",
21 "###################################################################\n"
25 # Let's catch interrupts to force the END block execution.
26 $SIG{INT} = sub { warn "INT:$$"; exit };
28 use_ok 'ExternalCatty';
30 ($pid, $PORT) = ExternalCatty->background($PORT);
31 $ENV{CATALYST_SERVER} ||= "http://localhost:$PORT";
33 use Test::WWW::Mechanize::Catalyst;
34 my $m = Test::WWW::Mechanize::Catalyst->new;
38 eval { $m->get('/') };
40 if ($@ || $m->content =~ /Can't connect to \w+:$PORT/) {
41 $skip = $@ || $m->content;
46 skip $skip, 8 if $skip;
47 lives_ok { $m->get_ok( '/', 'Get a multi Content-Type response' ) }
48 'Survive to a multi Content-Type sting';
50 is( $m->ct, 'text/html', 'Multi Content-Type Content-Type' );
51 $m->title_is( 'Root', 'Multi Content-Type title' );
52 $m->content_contains( "Hello, test \x{263A}!", 'Multi Content-Type body' );
54 # Test a redirect with a remote server now too.
55 $m->get_ok( '/hello' );
56 is($m->uri, "$ENV{CATALYST_SERVER}/");
58 $m->get_ok( '/host' );
59 $m->content_contains('Host: localhost:$PORT') or diag $m->content;
64 if ( $pid && $pid != 0 ) {