Annotation of embedaddon/php/ext/standard/tests/http/bug61548.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Bug #61548 (content-type must appear at the end of headers)
! 3: --INI--
! 4: allow_url_fopen=1
! 5: --SKIPIF--
! 6: <?php require 'server.inc'; http_server_skipif('tcp://127.0.0.1:12342'); ?>
! 7: --FILE--
! 8: <?php
! 9: require 'server.inc';
! 10:
! 11: function do_test($header) {
! 12: $options = [
! 13: 'http' => [
! 14: 'method' => 'POST',
! 15: 'header' => $header,
! 16: 'follow_location' => true,
! 17: ],
! 18: ];
! 19:
! 20: $ctx = stream_context_create($options);
! 21:
! 22: $responses = [
! 23: "data://text/plain,HTTP/1.1 201\r\nLocation: /foo\r\n\r\n",
! 24: "data://text/plain,HTTP/1.1 200\r\nConnection: close\r\n\r\n",
! 25: ];
! 26: $pid = http_server('tcp://127.0.0.1:12342', $responses, $output);
! 27:
! 28: $fd = fopen('http://127.0.0.1:12342/', 'rb', false, $ctx);
! 29: fseek($output, 0, SEEK_SET);
! 30: echo stream_get_contents($output);
! 31:
! 32: http_server_kill($pid);
! 33: }
! 34:
! 35: do_test("First:1\nSecond:2\nContent-type: text/plain");
! 36: do_test("First:1\nSecond:2\nContent-type: text/plain\n");
! 37: do_test("First:1\nSecond:2\nContent-type: text/plain\nThird:");
! 38: do_test("First:1\nContent-type:text/plain\nSecond:2");
! 39: do_test("First:1\nContent-type:text/plain\nSecond:2\n");
! 40: do_test("First:1\nContent-type:text/plain\nSecond:2\nThird:");
! 41:
! 42: ?>
! 43: Done
! 44: --EXPECT--
! 45: POST / HTTP/1.0
! 46: Host: 127.0.0.1:12342
! 47: First:1
! 48: Second:2
! 49: Content-type: text/plain
! 50:
! 51: GET /foo HTTP/1.0
! 52: Host: 127.0.0.1:12342
! 53: First:1
! 54: Second:2
! 55:
! 56:
! 57: POST / HTTP/1.0
! 58: Host: 127.0.0.1:12342
! 59: First:1
! 60: Second:2
! 61: Content-type: text/plain
! 62:
! 63: GET /foo HTTP/1.0
! 64: Host: 127.0.0.1:12342
! 65: First:1
! 66: Second:2
! 67:
! 68:
! 69: POST / HTTP/1.0
! 70: Host: 127.0.0.1:12342
! 71: First:1
! 72: Second:2
! 73: Content-type: text/plain
! 74: Third:
! 75:
! 76: GET /foo HTTP/1.0
! 77: Host: 127.0.0.1:12342
! 78: First:1
! 79: Second:2
! 80: Third:
! 81:
! 82: POST / HTTP/1.0
! 83: Host: 127.0.0.1:12342
! 84: First:1
! 85: Content-type:text/plain
! 86: Second:2
! 87:
! 88: GET /foo HTTP/1.0
! 89: Host: 127.0.0.1:12342
! 90: First:1
! 91: Second:2
! 92:
! 93: POST / HTTP/1.0
! 94: Host: 127.0.0.1:12342
! 95: First:1
! 96: Content-type:text/plain
! 97: Second:2
! 98:
! 99: GET /foo HTTP/1.0
! 100: Host: 127.0.0.1:12342
! 101: First:1
! 102: Second:2
! 103:
! 104: POST / HTTP/1.0
! 105: Host: 127.0.0.1:12342
! 106: First:1
! 107: Content-type:text/plain
! 108: Second:2
! 109: Third:
! 110:
! 111: GET /foo HTTP/1.0
! 112: Host: 127.0.0.1:12342
! 113: First:1
! 114: Second:2
! 115: Third:
! 116:
! 117: Done
! 118:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>