Annotation of embedaddon/php/ext/standard/tests/http/bug61548.phpt, revision 1.1.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>