use IO::Socket;\r
use Test::More;\r
use Time::HiRes qw/sleep/;\r
-eval "use File::Copy::Recursive";\r
+eval "use Catalyst::Devel 1.0;";\r
\r
plan skip_all => 'set TEST_HTTP to enable this test' unless $ENV{TEST_HTTP};\r
+plan skip_all => 'Catalyst::Devel required' if $@;\r
+eval "use File::Copy::Recursive";\r
plan skip_all => 'File::Copy::Recursive required' if $@;\r
\r
plan tests => 40;\r
\r
# clean up\r
-rmtree "$FindBin::Bin/../../t/tmp" if -d "$FindBin::Bin/../../t/tmp";\r
+rmtree "$FindBin::Bin/../t/tmp" if -d "$FindBin::Bin/../t/tmp";\r
\r
# create a TestApp and copy the test libs into it\r
-mkdir "$FindBin::Bin/../../t/tmp";\r
-chdir "$FindBin::Bin/../../t/tmp";\r
-system "perl -I$FindBin::Bin/../../lib $FindBin::Bin/../../script/catalyst.pl TestApp";\r
-chdir "$FindBin::Bin/../..";\r
-File::Copy::Recursive::dircopy( 't/live/lib', 't/tmp/TestApp/lib' );\r
+mkdir "$FindBin::Bin/../t/tmp";\r
+chdir "$FindBin::Bin/../t/tmp";\r
+system\r
+ "perl -I$FindBin::Bin/../lib $FindBin::Bin/../script/catalyst.pl TestApp";\r
+chdir "$FindBin::Bin/..";\r
+File::Copy::Recursive::dircopy( 't/lib', 't/tmp/TestApp/lib' );\r
\r
# remove TestApp's tests\r
rmtree 't/tmp/TestApp/t';\r
\r
# spawn the standalone HTTP server\r
-my $port = 30000 + int rand(1 + 10000);\r
-my $pid = open my $server, \r
- "perl -I$FindBin::Bin/../../lib $FindBin::Bin/../../t/tmp/TestApp/script/testapp_server.pl -port $port -restart 2>&1 |"\r
- or die "Unable to spawn standalone HTTP server: $!";\r
+my $port = 30000 + int rand( 1 + 10000 );\r
+my $pid = open my $server,\r
+"perl -I$FindBin::Bin/../lib $FindBin::Bin/../t/tmp/TestApp/script/testapp_server.pl -port $port -restart 2>&1 |"\r
+ or die "Unable to spawn standalone HTTP server: $!";\r
\r
# wait for it to start\r
print "Waiting for server to start...\n";\r
\r
# change various files\r
my @files = (\r
- "$FindBin::Bin/../../t/tmp/TestApp/lib/TestApp.pm",\r
- "$FindBin::Bin/../../t/tmp/TestApp/lib/TestApp/Controller/Action/Begin.pm",\r
- "$FindBin::Bin/../../t/tmp/TestApp/lib/TestApp/Controller/Engine/Request/URI.pm",\r
+ "$FindBin::Bin/../t/tmp/TestApp/lib/TestApp.pm",\r
+ "$FindBin::Bin/../t/tmp/TestApp/lib/TestApp/Controller/Action/Begin.pm",\r
+"$FindBin::Bin/../t/tmp/TestApp/lib/TestApp/Controller/Engine/Request/URI.pm",\r
);\r
\r
# change some files and make sure the server restarts itself\r
-for ( 1..20 ) {\r
+for ( 1 .. 20 ) {\r
my $index = rand @files;\r
open my $pm, '>>', $files[$index]\r
- or die "Unable to open $files[$index] for writing: $!";\r
+ or die "Unable to open $files[$index] for writing: $!";\r
print $pm "\n";\r
close $pm;\r
- \r
+\r
# give the server time to notice the change and restart\r
my $count = 0;\r
sleep 1;\r
while ( check_port( 'localhost', $port ) != 1 ) {\r
+\r
# wait for it to restart\r
sleep 0.1;\r
die "Server appears to have died" if $count++ > 50;\r
}\r
my $response = get("http://localhost:$port/action/default");\r
like( $response, qr/Catalyst::Request/, 'Non-error restart, request OK' );\r
- \r
+\r
#print $server->getline;\r
}\r
\r
# add errors to the file and make sure server does not die or restart\r
-for ( 1..20 ) {\r
+for ( 1 .. 20 ) {\r
my $index = rand @files;\r
open my $pm, '>>', $files[$index]\r
- or die "Unable to open $files[$index] for writing: $!";\r
+ or die "Unable to open $files[$index] for writing: $!";\r
print $pm "bleh";\r
close $pm;\r
- \r
+\r
# give the server time to notice the change\r
sleep 1;\r
if ( check_port( 'localhost', $port ) != 1 ) {\r
die "Server appears to have died";\r
}\r
my $response = get("http://localhost:$port/action/default");\r
- like( $response, qr/Catalyst::Request/, 'Syntax error, no restart, request OK' );\r
- \r
+ like( $response, qr/Catalyst::Request/,\r
+ 'Syntax error, no restart, request OK' );\r
+\r
#print $server->getline;\r
}\r
\r
close $server;\r
\r
# clean up\r
-rmtree "$FindBin::Bin/../../t/tmp" if -d "$FindBin::Bin/../../t/tmp";\r
+rmtree "$FindBin::Bin/../t/tmp" if -d "$FindBin::Bin/../t/tmp";\r
\r
sub check_port {\r
my ( $host, $port ) = @_;\r