summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--it_url.class2
-rwxr-xr-xtest/it_url.t13
-rw-r--r--test/it_url.testserver.php4
3 files changed, 18 insertions, 1 deletions
diff --git a/it_url.class b/it_url.class
index 59ac212..4135789 100644
--- a/it_url.class
+++ b/it_url.class
@@ -131,7 +131,7 @@ function get($p=null, $timeout=5)
$result = $url->request($p + ['followlocation' => true]);
- if (!$result && $p['retries'] > 0 && $url->result < 400)
+ if (!$result && $p['retries'] > 0 && $url->result < 400 && $url->result != 204)
{
usleep($p['retrysleep']*1000000);
$result = $url->get(array('retries' => $p['retries'] - 1) + $p);
diff --git a/test/it_url.t b/test/it_url.t
index eb36dd6..624b4bf 100755
--- a/test/it_url.t
+++ b/test/it_url.t
@@ -266,6 +266,19 @@ if (!ok(
))
diag($output);
+$output = handle_server(
+ is(
+ it_url::get(U('http://localhost:8000/empty')),
+ '',
+ 'it_url::get() explicit empty result'
+ )
+);
+if (!ok(
+ count(preg_grep('/^Got Request:/', $output)) == 1,
+ 'it_url::get() does not retry on explicity empty page'
+))
+ diag($output);
+
handle_server(
is(
it_url::get(U('http://localhost:8000/get_server_value', array('key' => 'HTTP_HOST'))),
diff --git a/test/it_url.testserver.php b/test/it_url.testserver.php
index 530a505..64e6674 100644
--- a/test/it_url.testserver.php
+++ b/test/it_url.testserver.php
@@ -65,6 +65,10 @@ switch ($_SERVER['PHP_SELF'])
echo $_REQUEST['string'];
break;
+ case "/empty":
+ http_response_code(204);
+ break;
+
default:
http_response_code(404);
fwrite($stderr, "Unknown path '$_SERVER[PHP_SELF]' not handled!\n");