summaryrefslogtreecommitdiff
path: root/ext/standard/tests/http
diff options
context:
space:
mode:
Diffstat (limited to 'ext/standard/tests/http')
-rw-r--r--ext/standard/tests/http/bug38802.phpt2
-rw-r--r--ext/standard/tests/http/bug43510.phpt2
-rw-r--r--ext/standard/tests/http/bug48929.phpt2
-rw-r--r--ext/standard/tests/http/bug53198.phpt113
-rw-r--r--ext/standard/tests/http/bug60570.phpt53
-rw-r--r--ext/standard/tests/http/ignore_errors.phpt2
6 files changed, 118 insertions, 56 deletions
diff --git a/ext/standard/tests/http/bug38802.phpt b/ext/standard/tests/http/bug38802.phpt
index 91fd1cce9..73b41183a 100644
--- a/ext/standard/tests/http/bug38802.phpt
+++ b/ext/standard/tests/http/bug38802.phpt
@@ -1,5 +1,7 @@
--TEST--
Bug #38802 (ignore_errors and max_redirects)
+--INI--
+allow_url_fopen=1
--SKIPIF--
<?php require 'server.inc'; http_server_skipif('tcp://127.0.0.1:12342'); ?>
--FILE--
diff --git a/ext/standard/tests/http/bug43510.phpt b/ext/standard/tests/http/bug43510.phpt
index 7358ee12c..d97361237 100644
--- a/ext/standard/tests/http/bug43510.phpt
+++ b/ext/standard/tests/http/bug43510.phpt
@@ -1,5 +1,7 @@
--TEST--
Bug #43510 (stream_get_meta_data() does not return same mode as used in fopen)
+--INI--
+allow_url_fopen=1
--SKIPIF--
<?php require 'server.inc'; http_server_skipif('tcp://127.0.0.1:12342'); ?>
--FILE--
diff --git a/ext/standard/tests/http/bug48929.phpt b/ext/standard/tests/http/bug48929.phpt
index 035ebb12b..2d1e45917 100644
--- a/ext/standard/tests/http/bug48929.phpt
+++ b/ext/standard/tests/http/bug48929.phpt
@@ -1,5 +1,7 @@
--TEST--
Bug #48929 (duplicate \r\n sent after last header line)
+--INI--
+allow_url_fopen=1
--SKIPIF--
<?php require 'server.inc'; http_server_skipif('tcp://127.0.0.1:12342'); ?>
--FILE--
diff --git a/ext/standard/tests/http/bug53198.phpt b/ext/standard/tests/http/bug53198.phpt
index fe26bc952..3c640fa9c 100644
--- a/ext/standard/tests/http/bug53198.phpt
+++ b/ext/standard/tests/http/bug53198.phpt
@@ -1,56 +1,57 @@
---TEST--
-Bug #53198 (From: header cannot be changed with ini_set)
---SKIPIF--
-<?php require 'server.inc'; http_server_skipif('tcp://127.0.0.1:12342'); ?>
---INI--
-from=teste@teste.pt
---FILE--
-<?php
-require 'server.inc';
-
-function do_test() {
-
- $responses = array(
- "data://text/plain,HTTP/1.0 200 OK\r\n\r\n",
- );
-
- $pid = http_server("tcp://127.0.0.1:12342", $responses, $output);
-
- foreach($responses as $r) {
-
- $fd = fopen('http://127.0.0.1:12342/', 'rb', false);
-
- fseek($output, 0, SEEK_SET);
- var_dump(stream_get_contents($output));
- fseek($output, 0, SEEK_SET);
- }
-
- http_server_kill($pid);
-
-}
-
-echo "-- Test: leave default --\n";
-
-do_test();
-
-echo "-- Test: after ini_set --\n";
-
-ini_set('from', 'junk@junk.com');
-
-do_test();
-
-?>
---EXPECT--
--- Test: leave default --
-string(63) "GET / HTTP/1.0
-From: teste@teste.pt
-Host: 127.0.0.1:12342
-
-"
--- Test: after ini_set --
-string(62) "GET / HTTP/1.0
-From: junk@junk.com
-Host: 127.0.0.1:12342
-
-"
-
+--TEST--
+Bug #53198 (From: header cannot be changed with ini_set)
+--SKIPIF--
+<?php require 'server.inc'; http_server_skipif('tcp://127.0.0.1:12342'); ?>
+--INI--
+allow_url_fopen=1
+from=teste@teste.pt
+--FILE--
+<?php
+require 'server.inc';
+
+function do_test() {
+
+ $responses = array(
+ "data://text/plain,HTTP/1.0 200 OK\r\n\r\n",
+ );
+
+ $pid = http_server("tcp://127.0.0.1:12342", $responses, $output);
+
+ foreach($responses as $r) {
+
+ $fd = fopen('http://127.0.0.1:12342/', 'rb', false);
+
+ fseek($output, 0, SEEK_SET);
+ var_dump(stream_get_contents($output));
+ fseek($output, 0, SEEK_SET);
+ }
+
+ http_server_kill($pid);
+
+}
+
+echo "-- Test: leave default --\n";
+
+do_test();
+
+echo "-- Test: after ini_set --\n";
+
+ini_set('from', 'junk@junk.com');
+
+do_test();
+
+?>
+--EXPECT--
+-- Test: leave default --
+string(63) "GET / HTTP/1.0
+From: teste@teste.pt
+Host: 127.0.0.1:12342
+
+"
+-- Test: after ini_set --
+string(62) "GET / HTTP/1.0
+From: junk@junk.com
+Host: 127.0.0.1:12342
+
+"
+
diff --git a/ext/standard/tests/http/bug60570.phpt b/ext/standard/tests/http/bug60570.phpt
new file mode 100644
index 000000000..d1784b055
--- /dev/null
+++ b/ext/standard/tests/http/bug60570.phpt
@@ -0,0 +1,53 @@
+--TEST--
+Bug #60570 (Stream context leaks when http request fails)
+--SKIPIF--
+<?php require 'server.inc'; http_server_skipif('tcp://127.0.0.1:12342'); ?>
+--INI--
+allow_url_fopen=1
+allow_url_include=1
+--FILE--
+<?php
+require 'server.inc';
+
+function do_test() {
+
+ $responses = array(
+ "data://text/plain,HTTP/1.0 404 Not Found\r\n\r\n",
+ "data://text/plain,HTTP/1.0 404 Not Found\r\n\r\n",
+ "data://text/plain,HTTP/1.0 404 Not Found\r\n\r\n"
+ );
+
+ $pid = http_server("tcp://127.0.0.1:12342", $responses, $output);
+
+ $a = $b = null;
+
+ $i = 3;
+ while ($i--) {
+ $context = stream_context_create(array('http'=>array('timeout'=>1)));
+ file_get_contents('http://127.0.0.1:12342/', 0, $context);
+ unset($context);
+
+ $b = $a;
+ $a = memory_get_usage();
+ }
+
+ http_server_kill($pid);
+
+ echo "leak? penultimate iteration: $b, last one: $a\n";
+ var_dump($a == $b);
+}
+
+do_test();
+
+--EXPECTF--
+Warning: file_get_contents(http://127.0.0.1:12342/): failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found
+ in %s on line %d
+
+Warning: file_get_contents(http://127.0.0.1:12342/): failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found
+ in %s on line %d
+
+Warning: file_get_contents(http://127.0.0.1:12342/): failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found
+ in %s on line %d
+leak? penultimate iteration: %d, last one: %d
+bool(true)
+
diff --git a/ext/standard/tests/http/ignore_errors.phpt b/ext/standard/tests/http/ignore_errors.phpt
index c7e1acbfe..ab5421890 100644
--- a/ext/standard/tests/http/ignore_errors.phpt
+++ b/ext/standard/tests/http/ignore_errors.phpt
@@ -1,5 +1,7 @@
--TEST--
http:// and ignore_errors
+--INI--
+allow_url_fopen=1
--SKIPIF--
<?php require 'server.inc'; http_server_skipif('tcp://127.0.0.1:12342'); ?>
--FILE--