these are stream filters, so put them in a Horde_Stream_Filter package instead of...
authorChuck Hagenbuch <chuck@horde.org>
Thu, 16 Jul 2009 03:39:58 +0000 (23:39 -0400)
committerChuck Hagenbuch <chuck@horde.org>
Thu, 16 Jul 2009 03:39:58 +0000 (23:39 -0400)
framework/Mime/lib/Horde/Mime/Part.php
framework/Stream_Filter/lib/Horde/Stream/Filter/Eol.php [new file with mode: 0644]
framework/Stream_Filter/package.xml [new file with mode: 0644]
framework/Stream_Filter/test/Horde/Stream/Filter/AllTests.php [new file with mode: 0644]
framework/Stream_Filter/test/Horde/Stream/Filter/EolTest.php [new file with mode: 0644]
framework/Util/lib/Horde/Util/Filter/Eol.php [deleted file]
framework/Util/package.xml
framework/Util/test/Horde/Util/eol_filter.phpt [deleted file]

index d659922..e60bd54 100644 (file)
@@ -1155,7 +1155,7 @@ class Horde_Mime_Part
 
         $fp = $this->_writeStream($text);
 
-        stream_filter_register('horde_eol', 'Horde_Util_Filter_Eol');
+        stream_filter_register('horde_eol', 'Horde_Stream_Filter_Eol');
         stream_filter_append($fp, 'horde_eol', STREAM_FILTER_READ, array('eol' => $eol));
 
         return $stream ? $fp : $this->_readStream($fp, true);
diff --git a/framework/Stream_Filter/lib/Horde/Stream/Filter/Eol.php b/framework/Stream_Filter/lib/Horde/Stream/Filter/Eol.php
new file mode 100644 (file)
index 0000000..ee031ad
--- /dev/null
@@ -0,0 +1,56 @@
+<?php
+/**
+ * Stream filter class to convert EOL characters.
+ *
+ * Usage:
+ *   stream_filter_register('horde_eol', 'Horde_Stream_Filter_Eol');
+ *   stream_filter_[app|pre]pend($stream, 'horde_eol', $params);
+ *
+ * $params can contain the following:
+ * <pre>
+ * 'eol' - The EOL string to use.
+ *         DEFAULT: <CR><LF> ("\r\n")
+ * </pre>
+ *
+ * Copyright 2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (LGPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
+ *
+ * @author  Michael Slusarz <slusarz@horde.org>
+ * @package Horde_Stream_Filter
+ */
+class Horde_Stream_Filter_Eol extends php_user_filter
+{
+    protected $_search;
+    protected $_replace;
+
+    public function onCreate()
+    {
+        $eol = isset($this->params['eol']) ? $this->params['eol'] : "\r\n";
+        if (!strlen($eol)) {
+            $this->_search = array("\r", "\n");
+            $this->_replace = '';
+        } elseif (in_array($eol, array("\r", "\n"))) {
+            $this->_search = array("\r\n", ($eol == "\r") ? "\n" : "\r");
+            $this->_replace = $eol;
+        } else {
+            $this->_search = array("\r\n", "\r", "\n");
+            $this->_replace = array("\n", "\n", $eol);
+        }
+
+        return true;
+    }
+
+    public function filter($in, $out, &$consumed, $closing)
+    {
+        while ($bucket = stream_bucket_make_writeable($in)) {
+            $bucket->data = str_replace($this->_search, $this->_replace, $bucket->data);
+            $consumed += $bucket->datalen;
+            stream_bucket_append($out, $bucket);
+        }
+
+        return PSFS_PASS_ON;
+    }
+
+}
diff --git a/framework/Stream_Filter/package.xml b/framework/Stream_Filter/package.xml
new file mode 100644 (file)
index 0000000..f6a208b
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<package packagerversion="1.4.9" version="2.0" xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0
+http://pear.php.net/dtd/tasks-1.0.xsd
+http://pear.php.net/dtd/package-2.0
+http://pear.php.net/dtd/package-2.0.xsd">
+ <name>Stream_Filter</name>
+ <channel>pear.horde.org</channel>
+ <summary>Horde Stream filters</summary>
+ <description>This package provides various stream filters.
+ </description>
+ <lead>
+  <name>Chuck Hagenbuch</name>
+  <user>chuck</user>
+  <email>chuck@horde.org</email>
+  <active>yes</active>
+ </lead>
+ <lead>
+  <name>Jan Schneider</name>
+  <user>jan</user>
+  <email>jan@horde.org</email>
+  <active>yes</active>
+ </lead>
+ <lead>
+  <name>Michael Slusarz</name>
+  <user>slusarz</user>
+  <email>slusarz@horde.org</email>
+  <active>yes</active>
+ </lead>
+ <date>2009-07-08</date>
+ <version>
+  <release>0.1.0</release>
+  <api>0.1.0</api>
+ </version>
+ <stability>
+  <release>beta</release>
+  <api>beta</api>
+ </stability>
+ <license uri="http://www.gnu.org/copyleft/lesser.html">LGPL</license>
+ <notes>* Initial release.
+ </notes>
+ <contents>
+  <dir name="/">
+   <dir name="lib">
+    <dir name="Horde">
+     <dir name="Stream">
+      <dir name="Filter">
+       <file name="Eol.php" role="php" />
+      </dir> <!-- /lib/Horde/Stream/Filter -->
+     </dir> <!-- /lib/Horde/Stream -->
+    </dir> <!-- /lib/Horde -->
+   </dir> <!-- /lib -->
+  </dir> <!-- / -->
+ </contents>
+ <dependencies>
+  <required>
+   <php>
+    <min>5.2.0</min>
+   </php>
+   <pearinstaller>
+    <min>1.7.0</min>
+   </pearinstaller>
+  </required>
+  <optional/>
+ </dependencies>
+ <phprelease>
+  <filelist>
+   <install name="lib/Horde/Stream/Filter/Eol.php" as="Horde/Stream/Filter/Eol.php" />
+  </filelist>
+ </phprelease>
+</package>
diff --git a/framework/Stream_Filter/test/Horde/Stream/Filter/AllTests.php b/framework/Stream_Filter/test/Horde/Stream/Filter/AllTests.php
new file mode 100644 (file)
index 0000000..a004b74
--- /dev/null
@@ -0,0 +1,62 @@
+<?php
+/**
+ * Horde_Stream_Filter test suite
+ *
+ * @category   Horde
+ * @package    Horde_Stream_Filter
+ * @subpackage UnitTests
+ */
+
+if (!defined('PHPUnit_MAIN_METHOD')) {
+    define('PHPUnit_MAIN_METHOD', 'Horde_Stream_Filter_AllTests::main');
+}
+
+require_once 'PHPUnit/Framework/TestSuite.php';
+require_once 'PHPUnit/TextUI/TestRunner.php';
+
+/**
+ * @package    Horde_Stream_Filter
+ * @subpackage UnitTests
+ */
+class Horde_Stream_Filter_AllTests {
+
+    public static function main()
+    {
+        PHPUnit_TextUI_TestRunner::run(self::suite());
+    }
+
+    public static function suite()
+    {
+        // Catch strict standards
+        error_reporting(E_ALL | E_STRICT);
+
+        // Set up autoload
+        set_include_path(dirname(dirname(dirname(dirname(__FILE__)))) . DIRECTORY_SEPARATOR . 'lib' . PATH_SEPARATOR . get_include_path());
+        if (!spl_autoload_functions()) {
+            spl_autoload_register(create_function('$class', '$filename = str_replace(array(\'::\', \'_\'), \'/\', $class); include "$filename.php";'));
+        }
+
+        $suite = new PHPUnit_Framework_TestSuite('Horde Framework - Horde_Stream_Filter');
+
+        $basedir = dirname(__FILE__);
+        $baseregexp = preg_quote($basedir . DIRECTORY_SEPARATOR, '/');
+
+        foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($basedir)) as $file) {
+            if ($file->isFile() && preg_match('/Test.php$/', $file->getFilename())) {
+                $pathname = $file->getPathname();
+                require $pathname;
+
+                $class = str_replace(DIRECTORY_SEPARATOR, '_',
+                                     preg_replace("/^$baseregexp(.*)\.php/", '\\1', $pathname));
+                $suite->addTestSuite('Horde_Stream_Filter_' . $class);
+            }
+        }
+
+        return $suite;
+    }
+
+}
+
+if (PHPUnit_MAIN_METHOD == 'Horde_Stream_Filter_AllTests::main') {
+    Horde_Stream_Filter_AllTests::main();
+}
diff --git a/framework/Stream_Filter/test/Horde/Stream/Filter/EolTest.php b/framework/Stream_Filter/test/Horde/Stream/Filter/EolTest.php
new file mode 100644 (file)
index 0000000..d8acfe4
--- /dev/null
@@ -0,0 +1,66 @@
+/**
+ * @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";
+}
+
+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
+---
diff --git a/framework/Util/lib/Horde/Util/Filter/Eol.php b/framework/Util/lib/Horde/Util/Filter/Eol.php
deleted file mode 100644 (file)
index b2f02f7..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-/**
- * Stream filter class to convert EOL characters.
- *
- * Usage:
- *   stream_filter_register('horde_eol', 'Horde_Util_Filter_Eol');
- *   stream_filter_[app|pre]pend($stream, 'horde_eol', $params);
- *
- * $params can contain the following:
- * <pre>
- * 'eol' - The EOL string to use.
- *         DEFAULT: <CR><LF> ("\r\n")
- * </pre>
- *
- * Copyright 2009 The Horde Project (http://www.horde.org/)
- *
- * See the enclosed file COPYING for license information (LGPL). If you
- * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
- *
- * @author  Michael Slusarz <slusarz@horde.org>
- * @package Horde_Util
- */
-class Horde_Util_Filter_Eol extends php_user_filter
-{
-    protected $_search;
-    protected $_replace;
-
-    public function onCreate()
-    {
-        $eol = isset($this->params['eol']) ? $this->params['eol'] : "\r\n";
-        if (!strlen($eol)) {
-            $this->_search = array("\r", "\n");
-            $this->_replace = '';
-        } elseif (in_array($eol, array("\r", "\n"))) {
-            $this->_search = array("\r\n", ($eol == "\r") ? "\n" : "\r");
-            $this->_replace = $eol;
-        } else {
-            $this->_search = array("\r\n", "\r", "\n");
-            $this->_replace = array("\n", "\n", $eol);
-        }
-
-        return true;
-    }
-
-    public function filter($in, $out, &$consumed, $closing)
-    {
-        while ($bucket = stream_bucket_make_writeable($in)) {
-            $bucket->data = str_replace($this->_search, $this->_replace, $bucket->data);
-            $consumed += $bucket->datalen;
-            stream_bucket_append($out, $bucket);
-        }
-
-        return PSFS_PASS_ON;
-    }
-
-}
index fa2fe8d..595c00e 100644 (file)
@@ -29,7 +29,7 @@ http://pear.php.net/dtd/package-2.0.xsd">
   <api>beta</api>
  </stability>
  <license uri="http://www.gnu.org/copyleft/lesser.html">LGPL</license>
- <notes>* Added Horde_Util_Filter_Eol.
+ <notes>
  * Removed Horde_Array::combine() and Horde_Util::hmac().
  * Initial Horde 4 package.
  </notes>
@@ -42,11 +42,6 @@ http://pear.php.net/dtd/package-2.0.xsd">
        <file name="Helper.php" role="php" />
       </dir> <!-- /lib/Horde/Array/Sort -->
      </dir> <!-- /lib/Horde/Array -->
-     <dir name="Util">
-      <dir name="Filter">
-       <file name="Eol.php" role="php" />
-      </dir> <!-- /lib/Horde/Util/Filter -->
-     </dir> <!-- /lib/Horde/Util -->
      <file name="Array.php" role="php" />
      <file name="String.php" role="php" />
      <file name="Util.php" role="php" />
@@ -61,7 +56,6 @@ http://pear.php.net/dtd/package-2.0.xsd">
       <file name="addParameter.phpt" role="test" />
       <file name="case.phpt" role="test" />
       <file name="case_php6.phpt" role="test" />
-      <file name="eol_filter.phpt" role="test" />
       <file name="length.phpt" role="test" />
       <file name="pad.phpt" role="test" />
       <file name="removeParameter.phpt" role="test" />
@@ -103,7 +97,6 @@ http://pear.php.net/dtd/package-2.0.xsd">
    <install name="lib/Horde/Array/Sort/Helper.php" as="Horde/Array/Sort/Helper.php" />
    <install name="lib/Horde/String.php" as="Horde/String.php" />
    <install name="lib/Horde/Util.php" as="Horde/Util.php" />
-   <install name="lib/Horde/Util/Filter/Eol.php" as="Horde/Util/Filter/Eol.php" />
    <install name="lib/Horde/Variables.php" as="Horde/Variables.php" />
   </filelist>
  </phprelease>
diff --git a/framework/Util/test/Horde/Util/eol_filter.phpt b/framework/Util/test/Horde/Util/eol_filter.phpt
deleted file mode 100644 (file)
index b2f5582..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
---TEST--
-Horde_Util_Filter_Eol:: tests
---FILE--
-<?php
-
-require_once dirname(__FILE__) . '/../../../lib/Horde/Util/Filter/Eol.php';
-
-stream_filter_register('horde_eol', 'Horde_Util_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";
-}
-
-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
----