summaryrefslogtreecommitdiffstats
path: root/plugins/tests
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/tests')
-rwxr-xr-xplugins/tests/check_http.t48
1 files changed, 36 insertions, 12 deletions
diff --git a/plugins/tests/check_http.t b/plugins/tests/check_http.t
index b0df960..88b77d3 100755
--- a/plugins/tests/check_http.t
+++ b/plugins/tests/check_http.t
@@ -125,11 +125,11 @@ sub run_server {
125 } elsif ($r->url->path eq "/redirect") { 125 } elsif ($r->url->path eq "/redirect") {
126 $c->send_redirect( "/redirect2" ); 126 $c->send_redirect( "/redirect2" );
127 } elsif ($r->url->path eq "/redir_external") { 127 } elsif ($r->url->path eq "/redir_external") {
128 $c->send_redirect( "http://169.254.169.254/redirect2" ); 128 $c->send_redirect(($d->isa('HTTP::Daemon::SSL') ? "https" : "http") . "://169.254.169.254/redirect2" );
129 } elsif ($r->url->path eq "/redirect2") { 129 } elsif ($r->url->path eq "/redirect2") {
130 $c->send_basic_header; 130 $c->send_basic_header;
131 $c->send_crlf; 131 $c->send_crlf;
132 $c->send_response("redirected"); 132 $c->send_response(HTTP::Response->new( 200, 'OK', undef, 'redirected' ));
133 } elsif ($r->url->path eq "/redir_timeout") { 133 } elsif ($r->url->path eq "/redir_timeout") {
134 $c->send_redirect( "/timeout" ); 134 $c->send_redirect( "/timeout" );
135 } elsif ($r->url->path eq "/timeout") { 135 } elsif ($r->url->path eq "/timeout") {
@@ -157,7 +157,7 @@ if ($ARGV[0] && $ARGV[0] eq "-d") {
157 } 157 }
158} 158}
159 159
160my $common_tests = 55; 160my $common_tests = 62;
161my $ssl_only_tests = 6; 161my $ssl_only_tests = 6;
162if (-x "./check_http") { 162if (-x "./check_http") {
163 plan tests => $common_tests * 2 + $ssl_only_tests; 163 plan tests => $common_tests * 2 + $ssl_only_tests;
@@ -181,7 +181,6 @@ SKIP: {
181 is( $result->return_code, 1, "$command -p $port_https -S -C 14000" ); 181 is( $result->return_code, 1, "$command -p $port_https -S -C 14000" );
182 like( $result->output, '/WARNING - Certificate expires in \d+ day\(s\) \(03/03/2019 21:41\)./', "output ok" ); 182 like( $result->output, '/WARNING - Certificate expires in \d+ day\(s\) \(03/03/2019 21:41\)./', "output ok" );
183 183
184
185 # Expired cert tests 184 # Expired cert tests
186 $result = NPTest->testCmd( "$command -p $port_https_expired -S -C 7" ); 185 $result = NPTest->testCmd( "$command -p $port_https_expired -S -C 7" );
187 is( $result->return_code, 2, "$command -p $port_https_expired -S -C 7" ); 186 is( $result->return_code, 2, "$command -p $port_https_expired -S -C 7" );
@@ -316,7 +315,6 @@ sub run_common_tests {
316 is( $result->return_code, 0, $cmd); 315 is( $result->return_code, 0, $cmd);
317 like( $result->output, '/^HTTP OK: HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second/', "Output correct: ".$result->output ); 316 like( $result->output, '/^HTTP OK: HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second/', "Output correct: ".$result->output );
318 317
319
320 $cmd = "$command -u /redirect -k 'follow: me'"; 318 $cmd = "$command -u /redirect -k 'follow: me'";
321 $result = NPTest->testCmd( $cmd ); 319 $result = NPTest->testCmd( $cmd );
322 is( $result->return_code, 0, $cmd); 320 is( $result->return_code, 0, $cmd);
@@ -327,25 +325,50 @@ sub run_common_tests {
327 is( $result->return_code, 0, $cmd); 325 is( $result->return_code, 0, $cmd);
328 like( $result->output, '/^HTTP OK: HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second/', "Output correct: ".$result->output ); 326 like( $result->output, '/^HTTP OK: HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second/', "Output correct: ".$result->output );
329 327
328 $cmd = "$command -f sticky -u /redirect -k 'follow: me'";
329 $result = NPTest->testCmd( $cmd );
330 is( $result->return_code, 0, $cmd);
331 like( $result->output, '/^HTTP OK: HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second/', "Output correct: ".$result->output );
332
333 $cmd = "$command -f stickyport -u /redirect -k 'follow: me'";
334 $result = NPTest->testCmd( $cmd );
335 is( $result->return_code, 0, $cmd);
336 like( $result->output, '/^HTTP OK: HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second/', "Output correct: ".$result->output );
337
330 # These tests may block 338 # These tests may block
331 print "ALRM\n"; 339 print "ALRM\n";
332 340
333 $cmd = "$command -f sticky -u /redir_external -t 5"; 341 # stickyport - on full urlS port is set back to 80 otherwise
342 $cmd = "$command -f stickyport -u /redir_external -t 5 -s redirected";
334 eval { 343 eval {
335 local $SIG{ALRM} = sub { die "alarm\n" }; 344 local $SIG{ALRM} = sub { die "alarm\n" };
336 alarm(2); 345 alarm(2);
337 $result = NPTest->testCmd( $cmd ); 346 $result = NPTest->testCmd( $cmd );
338 alarm(0); }; 347 alarm(0); };
339 isnt( $@, "alarm\n", $cmd); 348 isnt( $@, "alarm\n", $cmd );
349 is( $result->return_code, 0, $cmd );
340 350
341 # Will this one work everywhere??? 351 # Let's hope there won't be any web server on :80 returning "redirected"!
342 $cmd = "$command -f follow -u /redir_external -t 5"; 352 $cmd = "$command -f sticky -u /redir_external -t 5 -s redirected";
343 eval { 353 eval {
344 local $SIG{ALRM} = sub { die "alarm\n" }; 354 local $SIG{ALRM} = sub { die "alarm\n" };
345 alarm(2); 355 alarm(2);
346 $result = NPTest->testCmd( $cmd ); 356 $result = NPTest->testCmd( $cmd );
347 alarm(0); }; 357 alarm(0); };
348 is( $@, "alarm\n", $cmd); 358 isnt( $@, "alarm\n", $cmd );
359 isnt( $result->return_code, 0, $cmd );
360
361 # Test an external address - timeout
362 SKIP: {
363 skip "This doesn't seems to work all the time", 1 unless ($ENV{HTTP_EXTERNAL});
364 $cmd = "$command -f follow -u /redir_external -t 5";
365 eval {
366 local $SIG{ALRM} = sub { die "alarm\n" };
367 alarm(2);
368 $result = NPTest->testCmd( $cmd );
369 alarm(0); };
370 is( $@, "alarm\n", $cmd );
371 }
349 372
350 $cmd = "$command -u /timeout -t 5"; 373 $cmd = "$command -u /timeout -t 5";
351 eval { 374 eval {
@@ -353,7 +376,7 @@ sub run_common_tests {
353 alarm(2); 376 alarm(2);
354 $result = NPTest->testCmd( $cmd ); 377 $result = NPTest->testCmd( $cmd );
355 alarm(0); }; 378 alarm(0); };
356 is( $@, "alarm\n", $cmd); 379 is( $@, "alarm\n", $cmd );
357 380
358 $cmd = "$command -f follow -u /redir_timeout -t 2"; 381 $cmd = "$command -f follow -u /redir_timeout -t 2";
359 eval { 382 eval {
@@ -361,6 +384,7 @@ sub run_common_tests {
361 alarm(5); 384 alarm(5);
362 $result = NPTest->testCmd( $cmd ); 385 $result = NPTest->testCmd( $cmd );
363 alarm(0); }; 386 alarm(0); };
364 isnt( $@, "alarm\n", $cmd); 387 isnt( $@, "alarm\n", $cmd );
365 388
366} 389}
390