xref: /PHP-5.4/ext/standard/tests/http/bug67430.phpt (revision b51f82f2)
1--TEST--
2Bug #67430 (http:// wrapper doesn't follow 308 redirects)
3--INI--
4allow_url_fopen=1
5--SKIPIF--
6<?php require 'server.inc'; http_server_skipif('tcp://127.0.0.1:12342'); ?>
7--FILE--
8<?php
9require 'server.inc';
10
11function do_test($follow) {
12  $options = [
13    'http' => [
14      'method' => 'POST',
15      'follow_location' => $follow,
16    ],
17  ];
18
19  $ctx = stream_context_create($options);
20
21  $responses = [
22    "data://text/plain,HTTP/1.1 308\r\nLocation: /foo\r\n\r\n",
23    "data://text/plain,HTTP/1.1 200\r\nConnection: close\r\n\r\n",
24  ];
25  $pid = http_server('tcp://127.0.0.1:12342', $responses, $output);
26
27  $fd = fopen('http://127.0.0.1:12342/', 'rb', false, $ctx);
28  fseek($output, 0, SEEK_SET);
29  echo stream_get_contents($output);
30
31  http_server_kill($pid);
32}
33
34do_test(true);
35do_test(false);
36
37?>
38Done
39--EXPECT--
40POST / HTTP/1.0
41Host: 127.0.0.1:12342
42
43GET /foo HTTP/1.0
44Host: 127.0.0.1:12342
45
46POST / HTTP/1.0
47Host: 127.0.0.1:12342
48
49Done
50