]> granicus.if.org Git - php/commitdiff
Add $http_response_header tests
authorNikita Popov <nikic@php.net>
Fri, 6 May 2016 10:36:07 +0000 (12:36 +0200)
committerNikita Popov <nikic@php.net>
Fri, 6 May 2016 10:37:21 +0000 (12:37 +0200)
Looks like we didn't have a single test for this functionality :/

ext/standard/tests/http/http_response_header_01.phpt [new file with mode: 0644]
ext/standard/tests/http/http_response_header_02.phpt [new file with mode: 0644]
ext/standard/tests/http/http_response_header_03.phpt [new file with mode: 0644]

diff --git a/ext/standard/tests/http/http_response_header_01.phpt b/ext/standard/tests/http/http_response_header_01.phpt
new file mode 100644 (file)
index 0000000..2facf4f
--- /dev/null
@@ -0,0 +1,38 @@
+--TEST--
+$http_reponse_header (no redirect)
+--SKIPIF--
+<?php require 'server.inc'; http_server_skipif('tcp://127.0.0.1:22346'); ?>
+--INI--
+allow_url_fopen=1
+allow_url_include=1
+--FILE--
+<?php
+require 'server.inc';
+
+$responses = array(
+       "data://text/plain,HTTP/1.0 200 Ok\r\nSome: Header\r\nSome: Header\r\n\r\nBody",
+);
+
+$pid = http_server("tcp://127.0.0.1:22346", $responses, $output);
+
+function test() {
+    $f = file_get_contents('http://127.0.0.1:22346/');
+    var_dump($f);
+    var_dump($http_response_header);
+}
+test();
+
+http_server_kill($pid);
+?>
+==DONE==
+--EXPECT--
+string(4) "Body"
+array(3) {
+  [0]=>
+  string(15) "HTTP/1.0 200 Ok"
+  [1]=>
+  string(12) "Some: Header"
+  [2]=>
+  string(12) "Some: Header"
+}
+==DONE==
diff --git a/ext/standard/tests/http/http_response_header_02.phpt b/ext/standard/tests/http/http_response_header_02.phpt
new file mode 100644 (file)
index 0000000..0d4da1a
--- /dev/null
@@ -0,0 +1,44 @@
+--TEST--
+$http_reponse_header (redirect)
+--SKIPIF--
+<?php require 'server.inc'; http_server_skipif('tcp://127.0.0.1:22347'); ?>
+--INI--
+allow_url_fopen=1
+allow_url_include=1
+--FILE--
+<?php
+require 'server.inc';
+
+$responses = array(
+       "data://text/plain,HTTP/1.0 302 Found\r\n"
+    . "Some: Header\r\nLocation: http://127.0.0.1:22347/try-again\r\n\r\n",
+    "data://test/plain,HTTP/1.0 200 Ok\r\nSome: Header\r\n\r\nBody",
+);
+
+$pid = http_server("tcp://127.0.0.1:22347", $responses, $output);
+
+function test() {
+    $f = file_get_contents('http://127.0.0.1:22347/');
+    var_dump($f);
+    var_dump($http_response_header);
+}
+test();
+
+http_server_kill($pid);
+?>
+==DONE==
+--EXPECT--
+string(4) "Body"
+array(5) {
+  [0]=>
+  string(18) "HTTP/1.0 302 Found"
+  [1]=>
+  string(12) "Some: Header"
+  [2]=>
+  string(42) "Location: http://127.0.0.1:22347/try-again"
+  [3]=>
+  string(15) "HTTP/1.0 200 Ok"
+  [4]=>
+  string(12) "Some: Header"
+}
+==DONE==
diff --git a/ext/standard/tests/http/http_response_header_03.phpt b/ext/standard/tests/http/http_response_header_03.phpt
new file mode 100644 (file)
index 0000000..866a9b3
--- /dev/null
@@ -0,0 +1,45 @@
+--TEST--
+$http_reponse_header (redirect + not found)
+--SKIPIF--
+<?php require 'server.inc'; http_server_skipif('tcp://127.0.0.1:22348'); ?>
+--INI--
+allow_url_fopen=1
+allow_url_include=1
+--FILE--
+<?php
+require 'server.inc';
+
+$responses = array(
+       "data://text/plain,HTTP/1.0 302 Found\r\n"
+    . "Some: Header\r\nLocation: http://127.0.0.1:22348/try-again\r\n\r\n",
+    "data://test/plain,HTTP/1.0 404 Not Found\r\nSome: Header\r\n\r\nBody",
+);
+
+$pid = http_server("tcp://127.0.0.1:22348", $responses, $output);
+
+function test() {
+    $f = file_get_contents('http://127.0.0.1:22348/');
+    var_dump($f);
+    var_dump($http_response_header);
+}
+test();
+
+http_server_kill($pid);
+?>
+==DONE==
+--EXPECTF--
+Warning: file_get_contents(http://127.0.0.1:22348/): failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found%a
+bool(false)
+array(5) {
+  [0]=>
+  string(18) "HTTP/1.0 302 Found"
+  [1]=>
+  string(12) "Some: Header"
+  [2]=>
+  string(42) "Location: http://127.0.0.1:22348/try-again"
+  [3]=>
+  string(22) "HTTP/1.0 404 Not Found"
+  [4]=>
+  string(12) "Some: Header"
+}
+==DONE==