pollita Tue Apr 1 19:41:09 2003 EDT Modified files: /php4/ext/standard/tests/file userfilters.phpt Log: New test for userfilters rewrite Index: php4/ext/standard/tests/file/userfilters.phpt diff -u php4/ext/standard/tests/file/userfilters.phpt:1.3 php4/ext/standard/tests/file/userfilters.phpt:1.4 --- php4/ext/standard/tests/file/userfilters.phpt:1.3 Mon Jan 6 09:04:23 2003 +++ php4/ext/standard/tests/file/userfilters.phpt Tue Apr 1 19:41:09 2003 @@ -1,60 +1,37 @@ --TEST-- -User-space filters +stream userfilter test --FILE-- <?php # vim600:syn=php: +class testfilter extends php_user_filter { + function filter($in, $out, &$consumed, $closing) { + while ($bucket = stream_bucket_make_writeable($in)) { + $bucket->data = strtoupper($bucket->data); + $consumed += strlen($bucket->data); + stream_bucket_append($out, $bucket); + } + return PSFS_PASS_ON; + } + + function oncreate() { + echo "params: {$this->params}\n"; + } +} -class UpperCaseFilter extends php_user_filter { - function oncreate() - { - echo "oncreate:\n"; - var_dump($this->filtername); - var_dump($this->params); - } - - function flush($closing) - { - echo "flush:\n"; - } - - function onclose() - { - echo "onclose:\n"; - } - - function write($data) - { - echo "write:\n"; - $x = parent::write($data); - return strlen($data); - } - - function read($bytes) - { - echo "read:\n"; - $x = parent::read($bytes); - return strtoupper($x); - } -}; +stream_register_filter('testfilter','testfilter'); + +$text = "Hello There!"; -var_dump(stream_register_filter("string.uppercase", "UpperCaseFilter")); $fp = tmpfile(); +fwrite($fp, $text); -fwrite($fp, "hello there"); rewind($fp); +stream_filter_append($fp, 'testfilter', STREAM_FILTER_READ, 'testuserfilter'); -var_dump(stream_filter_prepend($fp, "string.uppercase")); var_dump(fgets($fp)); fclose($fp); + ?> --EXPECT-- -bool(true) -oncreate: -string(16) "string.uppercase" -NULL -bool(true) -read: -read: -string(11) "HELLO THERE" -flush: -onclose: +params: testuserfilter +string(12) "HELLO THERE!"
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php