Merge branch 'master' of git.php.net:/pecl/http/pecl_http
[m6w6/ext-http] / tests / headerparser003.phpt
diff --git a/tests/headerparser003.phpt b/tests/headerparser003.phpt
new file mode 100644 (file)
index 0000000..1216fac
--- /dev/null
@@ -0,0 +1,54 @@
+--TEST--
+header parser with nonblocking stream
+--SKIPIF--
+<?php 
+include "skipif.inc";
+?>
+--FILE--
+<?php
+echo "Test\n";
+
+$parser = new http\Header\Parser;
+$socket = stream_socket_pair(STREAM_PF_UNIX, STREAM_SOCK_STREAM, STREAM_IPPROTO_IP);
+stream_set_blocking($socket[0], 0);
+
+$headers = array(
+"GET / HTTP/1.1\n",
+"Host: localhost","\n",
+"Content","-length: 3\n",
+"\n",
+);
+
+while ($headers) {
+       $line = array_shift($headers);
+       $parser->stream($socket[0], 0, $hdrs);
+       fwrite($socket[1], $line);
+       var_dump($parser->getState());
+       var_dump($parser->stream($socket[0], 0, $hdrs));
+}
+
+var_dump($hdrs);
+
+?>
+DONE
+--EXPECT--
+Test
+int(0)
+int(1)
+int(1)
+int(2)
+int(2)
+int(3)
+int(3)
+int(1)
+int(1)
+int(3)
+int(3)
+int(5)
+array(2) {
+  ["Host"]=>
+  string(9) "localhost"
+  ["Content-Length"]=>
+  string(1) "3"
+}
+DONE