Return to bug61548.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / http |
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: