+<?php
/**
+ * @category Horde
* @package Horde_Stream_Filter
* @subpackage UnitTests
*/
---TEST--
-Horde_Stream_Filter_Eol:: tests
---FILE--
-<?php
-
-require_once dirname(__FILE__) . '/../../../lib/Horde/Stream/Filter/Eol.php';
-
-stream_filter_register('horde_eol', 'Horde_Stream_Filter_Eol');
-
-$test = fopen('php://temp', 'r+');
-fwrite($test, "A\r\nB\rC\nD\r\n\r\nE\r\rF\n\nG\r\n\n\r\nH\r\n\r\r\nI");
-foreach (array("\r", "\n", "\r\n", "") as $val) {
- $filter = stream_filter_prepend($test, 'horde_eol', STREAM_FILTER_READ, array('eol' => $val));
- rewind($test);
- fpassthru($test);
- stream_filter_remove($filter);
-
- echo "\n---\n";
+/**
+ * @category Horde
+ * @package Horde_Stream_Filter
+ * @subpackage UnitTests
+ */
+class Horde_Stream_Filter_EolTest extends Horde_Test_Case
+{
+ public function setup()
+ {
+ stream_filter_register('horde_eol', 'Horde_Stream_Filter_Eol');
+ $this->fp = fopen('php://temp', 'r+');
+ fwrite($this->fp, "A\r\nB\rC\nD\r\n\r\nE\r\rF\n\nG\r\n\n\r\nH\r\n\r\r\nI");
+ }
+
+ public static function lineEndingProvider()
+ {
+ return array(
+ array("\r", "A\rB\rC\rD\r\rE\r\rF\r\rG\r\r\rH\r\r\rI"),
+ array("\n", "A\nB\nC\nD\n\nE\n\nF\n\nG\n\n\nH\n\n\nI"),
+ array("\r\n", "A\r\nB\r\nC\r\nD\r\n\r\nE\r\n\r\nF\r\n\r\nG\r\n\r\n\r\nH\r\n\r\n\r\nI"),
+ array("", "ABCDEFGHI"),
+ );
+ }
+
+ /**
+ * @dataProvider lineEndingProvider
+ */
+ public function testFilterLineEndings($eol, $expected)
+ {
+ $filter = stream_filter_prepend($this->fp, 'horde_eol', STREAM_FILTER_READ, array('eol' => $eol));
+ rewind($this->fp);
+ $this->assertEquals($expected, stream_get_contents($this->fp));
+ stream_filter_remove($filter);
+ fclose($this->fp);
+ }
}
-
-fclose($test);
-?>
---EXPECT--
-A\rB\rC\rD\r\rE\r\rF\r\rG\r\r\rH\r\r\rI
----
-A
-B
-C
-D
-
-E
-
-F
-
-G
-
-
-H
-
-
-I
----
-A\r
-B\r
-C\r
-D\r
-\r
-E\r
-\r
-F\r
-\r
-G\r
-\r
-\r
-H\r
-\r
-\r
-I
----
-ABCDEFGHI
----