summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStanislav Malyshev <stas@php.net>2013-06-16 16:34:34 -0700
committerStanislav Malyshev <stas@php.net>2013-06-16 16:34:34 -0700
commit7bb052ee3e93790f4d9654958ab11d90f6e4734d (patch)
treed766dab77f0bd2d562385886fc937d47b91380c2
parent0dc98208ee0c7b372c8c81e5d2d833974e001f83 (diff)
downloadphp-git-7bb052ee3e93790f4d9654958ab11d90f6e4734d.tar.gz
add more tests for bug #64166
-rw-r--r--ext/standard/tests/streams/bug64166_2.phpt50
-rw-r--r--ext/standard/tests/streams/bug64166_3.phpt48
2 files changed, 98 insertions, 0 deletions
diff --git a/ext/standard/tests/streams/bug64166_2.phpt b/ext/standard/tests/streams/bug64166_2.phpt
new file mode 100644
index 0000000000..9d6655d5c1
--- /dev/null
+++ b/ext/standard/tests/streams/bug64166_2.phpt
@@ -0,0 +1,50 @@
+--TEST--
+Bug #64166: quoted-printable-encode stream filter incorrectly discarding whitespace - split reads
+--FILE--
+<?php
+
+function test_64166($data) {
+ $fd = fopen('php://temp', 'w+');
+ fwrite($fd, $data);
+ rewind($fd);
+
+ $res = stream_filter_append($fd, 'convert.quoted-printable-encode', STREAM_FILTER_READ, array(
+ 'line-break-chars' => "\n",
+ 'line-length' => 74
+ ));
+ $str = "";
+ while(($c = fread($fd, 1))!= "") $str .= $c;
+ var_dump($str);
+
+ stream_filter_remove($res);
+
+ rewind($fd);
+ stream_filter_append($fd, 'convert.quoted-printable-encode', STREAM_FILTER_READ, array(
+ 'line-break-chars' => "\n",
+ 'line-length' => 6
+ ));
+ $str = "";
+ while(($c = fread($fd, 1))!= "") $str .= $c;
+ var_dump($str);
+
+ fclose($fd);
+}
+
+test_64166("FIRST \nSECOND");
+test_64166("FIRST \nSECOND");
+
+?>
+--EXPECT--
+string(15) "FIRST=20
+SECOND"
+string(19) "FIRST=
+=20
+SECON=
+D"
+string(18) "FIRST=20=20
+SECOND"
+string(24) "FIRST=
+=20=
+=20
+SECON=
+D"
diff --git a/ext/standard/tests/streams/bug64166_3.phpt b/ext/standard/tests/streams/bug64166_3.phpt
new file mode 100644
index 0000000000..d896ba800c
--- /dev/null
+++ b/ext/standard/tests/streams/bug64166_3.phpt
@@ -0,0 +1,48 @@
+--TEST--
+Bug #64166: quoted-printable-encode stream filter incorrectly discarding whitespace - writes
+--FILE--
+<?php
+
+function test_64166($data) {
+ $fd = fopen('php://temp', 'w+');
+ $res = stream_filter_append($fd, 'convert.quoted-printable-encode', STREAM_FILTER_WRITE, array(
+ 'line-break-chars' => "\n",
+ 'line-length' => 74
+ ));
+ fwrite($fd, $data);
+ rewind($fd);
+
+ var_dump(stream_get_contents($fd, -1, 0));
+
+ stream_filter_remove($res);
+
+ rewind($fd);
+ stream_filter_append($fd, 'convert.quoted-printable-encode', STREAM_FILTER_WRITE, array(
+ 'line-break-chars' => "\n",
+ 'line-length' => 6
+ ));
+ fwrite($fd, $data);
+ rewind($fd);
+ var_dump(stream_get_contents($fd, -1, 0));
+
+ fclose($fd);
+}
+
+test_64166("FIRST \nSECOND");
+test_64166("FIRST \nSECOND");
+
+?>
+--EXPECT--
+string(15) "FIRST=20
+SECOND"
+string(19) "FIRST=
+=20
+SECON=
+D"
+string(18) "FIRST=20=20
+SECOND"
+string(24) "FIRST=
+=20=
+=20
+SECON=
+D"