unfold encoding tests
[m6w6/ext-http] / tests / encstream004.phpt
diff --git a/tests/encstream004.phpt b/tests/encstream004.phpt
new file mode 100644 (file)
index 0000000..eb9da0f
--- /dev/null
@@ -0,0 +1,38 @@
+--TEST--
+encoding stream chunked flush
+--SKIPIF--
+<?php
+include "skipif.inc";
+?>
+--FILE--
+<?php
+echo "Test\n";
+
+$dech = new http\Encoding\Stream\Dechunk(http\Encoding\Stream::FLUSH_FULL);
+$file = file(__FILE__);
+$data = "";
+foreach ($file as $i => $line) {
+       $dech = clone $dech;
+       if ($i % 2) {
+               $data .= $dech->update(sprintf("%lx\r\n%s\r\n", strlen($line), $line));
+       } else {
+               $data .= $dech->update(sprintf("%lx\r\n", strlen($line)));
+               $data .= $dech->flush();
+               $data .= $dech->update($line);
+               $data .= $dech->flush();
+               $data .= $dech->update("\r\n");
+       }
+       $dech->flush();
+       $dech->done() and printf("uh-oh done() reported true!\n");
+}
+$data .= $dech->update("0\r\n");
+var_dump($dech->done());
+$data .= $dech->finish();
+var_dump(implode("", $file) === $data);
+?>
+DONE
+--EXPECT--
+Test
+bool(true)
+bool(true)
+DONE