Convert horde/Template to PHPUnit tests
authorMichael M Slusarz <slusarz@curecanti.org>
Sat, 22 Jan 2011 00:05:30 +0000 (17:05 -0700)
committerMichael M Slusarz <slusarz@curecanti.org>
Tue, 25 Jan 2011 00:29:45 +0000 (17:29 -0700)
18 files changed:
framework/Template/package.xml
framework/Template/test/Horde/Template/AllTests.php [new file with mode: 0644]
framework/Template/test/Horde/Template/Autoload.php [new file with mode: 0644]
framework/Template/test/Horde/Template/TemplateTest.php [new file with mode: 0644]
framework/Template/test/Horde/Template/array_assoc.html [deleted file]
framework/Template/test/Horde/Template/array_assoc.phpt [deleted file]
framework/Template/test/Horde/Template/array_if.html [deleted file]
framework/Template/test/Horde/Template/array_if.phpt [deleted file]
framework/Template/test/Horde/Template/array_nested.html [deleted file]
framework/Template/test/Horde/Template/array_nested.phpt [deleted file]
framework/Template/test/Horde/Template/array_simple.html [deleted file]
framework/Template/test/Horde/Template/array_simple.phpt [deleted file]
framework/Template/test/Horde/Template/divider.phpt [deleted file]
framework/Template/test/Horde/Template/if.html [deleted file]
framework/Template/test/Horde/Template/if.phpt [deleted file]
framework/Template/test/Horde/Template/iterator.phpt [deleted file]
framework/Template/test/Horde/Template/scalar.html [deleted file]
framework/Template/test/Horde/Template/scalar.phpt [deleted file]

index f960795..b40a78f 100644 (file)
@@ -1,13 +1,9 @@
 <?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">
+<package packagerversion="1.9.1" 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>Template</name>
  <channel>pear.horde.org</channel>
  <summary>Horde Template System</summary>
- <description>Horde Template system. Adapted from bTemplate, by Brian Lozier &lt;brian@massassi.net&gt;.
- </description>
+ <description>Horde Template system. Adapted from bTemplate, by Brian Lozier &lt;brian@massassi.net&gt;.</description>
  <lead>
   <name>Chuck Hagenbuch</name>
   <user>chuck</user>
@@ -20,7 +16,8 @@ http://pear.php.net/dtd/package-2.0.xsd">
   <email>slusarz@horde.org</email>
   <active>yes</active>
  </lead>
- <date>2009-06-10</date>
+ <date>2011-01-24</date>
+ <time>17:28:58</time>
  <version>
   <release>0.1.0</release>
   <api>0.1.0</api>
@@ -30,11 +27,12 @@ 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>* Remove dependency on Horde_Core.
+ <notes>
+* Remove dependency on Horde_Core.
  * Initial Horde 4 package.
  </notes>
  <contents>
-  <dir name="/">
+  <dir baseinstalldir="/" name="/">
    <dir name="lib">
     <dir name="Horde">
      <file name="Template.php" role="php" />
@@ -43,20 +41,9 @@ http://pear.php.net/dtd/package-2.0.xsd">
    <dir name="test">
     <dir name="Horde">
      <dir name="Template">
-      <file name="array_assoc.html" role="test" />
-      <file name="array_assoc.phpt" role="test" />
-      <file name="array_if.html" role="test" />
-      <file name="array_if.phpt" role="test" />
-      <file name="array_nested.html" role="test" />
-      <file name="array_nested.phpt" role="test" />
-      <file name="array_simple.html" role="test" />
-      <file name="array_simple.phpt" role="test" />
-      <file name="divider.phpt" role="test" />
-      <file name="if.html" role="test" />
-      <file name="if.phpt" role="test" />
-      <file name="iterator.phpt" role="test" />
-      <file name="scalar.html" role="test" />
-      <file name="scalar.phpt" role="test" />
+      <file name="AllTests.php" role="test" />
+      <file name="Autoload.php" role="test" />
+      <file name="TemplateTest.php" role="test" />
      </dir> <!-- /test/Horde/Template -->
     </dir> <!-- /test/Horde -->
    </dir> <!-- /test -->
@@ -83,11 +70,29 @@ http://pear.php.net/dtd/package-2.0.xsd">
  </dependencies>
  <phprelease>
   <filelist>
-   <install name="lib/Horde/Template.php" as="Horde/Template.php" />
+   <install as="Horde/Template.php" name="lib/Horde/Template.php" />
+   <install as="Horde/Template/AllTests.php" name="test/Horde/Template/AllTests.php" />
+   <install as="Horde/Template/Autoload.php" name="test/Horde/Template/Autoload.php" />
+   <install as="Horde/Template/TemplateTest.php" name="test/Horde/Template/TemplateTest.php" />
   </filelist>
  </phprelease>
  <changelog>
   <release>
+   <version>
+    <release>0.0.1</release>
+    <api>0.0.1</api>
+   </version>
+   <stability>
+    <release>alpha</release>
+    <api>alpha</api>
+   </stability>
+   <date>2003-07-05</date>
+   <license uri="http://www.gnu.org/copyleft/lesser.html">LGPL</license>
+   <notes>
+Initial release as a PEAR package
+   </notes>
+  </release>
+  <release>
    <date>2006-05-08</date>
    <time>23:32:28</time>
    <version>
@@ -100,22 +105,24 @@ http://pear.php.net/dtd/package-2.0.xsd">
    </stability>
    <license uri="http://www.gnu.org/copyleft/lesser.html">LGPL</license>
    <notes>
-   - Converted to package.xml 2.0 for pear.horde.org
-   - Remove numeric array key constraint (Request #4413).
+- Converted to package.xml 2.0 for pear.horde.org
+- Remove numeric array key constraint (Request #4413).
    </notes>
   </release>
   <release>
    <version>
-    <release>0.0.1</release>
-    <api>0.0.1</api>
+    <release>0.1.0</release>
+    <api>0.1.0</api>
    </version>
    <stability>
-    <release>alpha</release>
-    <api>alpha</api>
+    <release>beta</release>
+    <api>beta</api>
    </stability>
-   <date>2003-07-05</date>
+   <date>2011-01-24</date>
    <license uri="http://www.gnu.org/copyleft/lesser.html">LGPL</license>
-   <notes>Initial release as a PEAR package
+   <notes>
+* Remove dependency on Horde_Core.
+ * Initial Horde 4 package.
    </notes>
   </release>
  </changelog>
diff --git a/framework/Template/test/Horde/Template/AllTests.php b/framework/Template/test/Horde/Template/AllTests.php
new file mode 100644 (file)
index 0000000..140d679
--- /dev/null
@@ -0,0 +1,38 @@
+<?php
+/**
+ * Tests for the horde/Template package.
+ *
+ * @author     Michael Slusarz <slusarz@horde.org>
+ * @category   Horde
+ * @license    http://www.fsf.org/copyleft/lgpl.html LGPL
+ * @link       http://pear.horde.org/index.php?package=Template
+ * @package    Template
+ * @subpackage UnitTests
+ */
+
+/**
+ * Define the main method
+ */
+if (!defined('PHPUnit_MAIN_METHOD')) {
+    define('PHPUnit_MAIN_METHOD', 'Horde_Template_AllTests::main');
+}
+
+/**
+ * Prepare the test setup.
+ */
+require_once 'Horde/Test/AllTests.php';
+
+/**
+ * @category   Horde
+ * @package    Template
+ * @subpackage UnitTests
+ */
+class Horde_Template_AllTests extends Horde_Test_AllTests
+{
+}
+
+Horde_Template_AllTests::init('Horde_Template', __FILE__);
+
+if (PHPUnit_MAIN_METHOD == 'Horde_Template_AllTests::main') {
+    Horde_Template_AllTests::main();
+}
diff --git a/framework/Template/test/Horde/Template/Autoload.php b/framework/Template/test/Horde/Template/Autoload.php
new file mode 100644 (file)
index 0000000..44516d3
--- /dev/null
@@ -0,0 +1,28 @@
+<?php
+/**
+ * Setup autoloading for the tests.
+ *
+ * PHP version 5
+ *
+ * @category Horde
+ * @package  Template
+ * @author   Gunnar Wrobel <wrobel@pardus.de>
+ * @license  http://www.fsf.org/copyleft/lgpl.html LGPL
+ * @link     http://pear.horde.org/index.php?package=Template
+ */
+
+if (!spl_autoload_functions()) {
+    spl_autoload_register(
+        create_function(
+            '$class',
+            '$filename = str_replace(array(\'::\', \'_\'), \'/\', $class);'
+            . '$err_mask = E_ALL ^ E_WARNING;'
+            . '$oldErrorReporting = error_reporting($err_mask);'
+            . 'include "$filename.php";'
+            . 'error_reporting($oldErrorReporting);'
+        )
+    );
+}
+
+/** Catch strict standards */
+error_reporting(E_ALL | E_STRICT);
diff --git a/framework/Template/test/Horde/Template/TemplateTest.php b/framework/Template/test/Horde/Template/TemplateTest.php
new file mode 100644 (file)
index 0000000..24b8bda
--- /dev/null
@@ -0,0 +1,116 @@
+<?php
+/**
+ * Json serialization tests.
+ *
+ * @author     Michael Slusarz <slusarz@horde.org>
+ * @category   Horde
+ * @license    http://www.fsf.org/copyleft/lgpl.html LGPL
+ * @package    Template
+ * @subpackage UnitTests
+ */
+
+class Horde_Template_TemplateTest extends PHPUnit_Framework_TestCase
+{
+    // Associative Array Test
+    public function testAssociativeArray()
+    {
+        $template = new Horde_Template();
+
+        $template->set('foo', array('one' => 'one', 'two' => 2));
+
+        $this->assertEquals(
+            'one 2 ',
+            $template->parse('<tag:foo.one /> <tag:foo.two /> <tag:foo />')
+        );
+    }
+
+    // If Array Test
+    public function testIfArray()
+    {
+        $template = new Horde_Template();
+
+        $template->set('foo', array('one', 'two', 'three'), true);
+        $template->set('bar', array(), true);
+
+        $this->assertEquals(
+            "one two three \nelse",
+            $template->parse("<if:foo><loop:foo><tag:foo /> </loop:foo></if:foo>\n<if:bar><loop:bar><tag:bar /></loop:bar><else:bar>else</else:bar></if:bar>")
+        );
+    }
+
+    // Simple Array Test
+    public function testSimpleArray()
+    {
+        $template = new Horde_Template();
+
+        $template->set('string', array('one', 'two', 'three'));
+        $template->set('int', array(1, 2, 3));
+
+        $this->assertEquals(
+            "one two three \n1 2 3 ",
+            $template->parse("<loop:string><tag:string /> </loop:string>\n<loop:int><tag:int /> </loop:int>")
+        );
+    }
+
+    // Divider Test
+    public function testDivider()
+    {
+        $template = new Horde_Template();
+
+        $template->set('a', array('a', 'b', 'c', 'd'));
+
+        $this->assertEquals(
+            'a,b,c,d',
+            $template->parse("<loop:a><divider:a>,</divider:a><tag:a /></loop:a>")
+        );
+    }
+
+    // If/Else Test
+    public function testIfElse()
+    {
+        $template = new Horde_Template();
+
+        $template->set('foo', true, true);
+        $template->set('bar', false, true);
+        $template->set('baz', 'baz', true);
+
+        $this->assertEquals(
+            "foo\n\nfalse\nbaz",
+            $template->parse("<if:foo>foo</if:foo>\n<if:bar>bar</if:bar>\n<if:bar>true<else:bar>false</else:bar></if:bar>\n<if:baz><tag:baz /></if:baz>")
+        );
+    }
+
+    // Iterator Test
+    public function testIterator()
+    {
+        $template = new Horde_Template();
+
+        $s = array('one', 'two', 'three');
+        $i = array(1, 2, 3);
+        $a = array('one' => 'one', 'two' => 2);
+
+        $template->set('s', $s);
+        $template->set('i', $i);
+        $template->set('a', $a);
+
+        $this->assertEquals(
+            "one,two,three,\n1,2,3,\none,2,",
+            $template->parse("<loop:s><tag:s />,</loop:s>\n<loop:i><tag:i />,</loop:i>\n<tag:a.one />,<tag:a.two />,<tag:a />")
+        );
+    }
+
+    // Scalar Test
+    public function testScalar()
+    {
+        $template = new Horde_Template();
+
+        $template->set('one', 'one');
+        $template->set('two', 2);
+
+        $this->assertEquals(
+            "one\n2",
+            $template->parse("<tag:one />\n<tag:two />")
+        );
+    }
+
+}
diff --git a/framework/Template/test/Horde/Template/array_assoc.html b/framework/Template/test/Horde/Template/array_assoc.html
deleted file mode 100644 (file)
index f3e92af..0000000
+++ /dev/null
@@ -1 +0,0 @@
-<tag:foo.one /> <tag:foo.two /> <tag:foo />
\ No newline at end of file
diff --git a/framework/Template/test/Horde/Template/array_assoc.phpt b/framework/Template/test/Horde/Template/array_assoc.phpt
deleted file mode 100644 (file)
index 797b0cc..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
---TEST--
-Associative Array Test
---FILE--
-<?php
-
-if (defined('E_DEPRECATED')) {
-    error_reporting(error_reporting() & ~E_DEPRECATED);
-}
-
-require dirname(__FILE__) . '/../../../lib/Horde/Template.php';
-$template = new Horde_Template(array('basepath' => dirname(__FILE__)));
-$template->set('foo', array('one' => 'one', 'two' => 2));
-echo $template->fetch('/array_assoc.html');
-
-?>
---EXPECT--
-one 2 <tag:foo />
diff --git a/framework/Template/test/Horde/Template/array_if.html b/framework/Template/test/Horde/Template/array_if.html
deleted file mode 100644 (file)
index b54f004..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-<if:foo><loop:foo>
-<tag:foo />
-</loop:foo></if:foo>
-<if:bar><loop:bar>
-<tag:bar />
-</loop:bar><else:bar>
-else
-</else:bar></if:bar>
diff --git a/framework/Template/test/Horde/Template/array_if.phpt b/framework/Template/test/Horde/Template/array_if.phpt
deleted file mode 100644 (file)
index 23a4e6c..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
---TEST--
-If Array Test
---FILE--
-<?php
-
-if (defined('E_DEPRECATED')) {
-    error_reporting(error_reporting() & ~E_DEPRECATED);
-}
-
-require dirname(__FILE__) . '/../../../lib/Horde/Template.php';
-$template = new Horde_Template(array('basepath' => dirname(__FILE__)));
-$template->set('foo', array('one', 'two', 'three'), true);
-$template->set('bar', array(), true);
-echo $template->fetch('/array_if.html');
-
-?>
---EXPECT--
-one
-two
-three
-
-else
diff --git a/framework/Template/test/Horde/Template/array_nested.html b/framework/Template/test/Horde/Template/array_nested.html
deleted file mode 100644 (file)
index 7401e48..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-<loop:categories>
-<tag:categories /><loop:subcat_<tag:categories />>
-    <tag:subcat_<tag:categories /> />
-</loop:subcat_<tag:categories />>
-</loop:categories>
-<loop:keyed><tag:keyed />
-    <tag:keyed.key1 />
-    <tag:keyed.key2 />
-    <tag:keyed.key3 />
-</loop:keyed>
diff --git a/framework/Template/test/Horde/Template/array_nested.phpt b/framework/Template/test/Horde/Template/array_nested.phpt
deleted file mode 100644 (file)
index a22e8c3..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
---TEST--
-Nested Array Test
---FILE--
-<?php
-
-if (defined('E_DEPRECATED')) {
-    error_reporting(error_reporting() & ~E_DEPRECATED);
-}
-
-require dirname(__FILE__) . '/../../../lib/Horde/Template.php';
-$template = new Horde_Template(array('basepath' => dirname(__FILE__)));
-$categories = array('fruit', 'veggie', 'thing');
-$subcats = array('fruit' => array('apple', 'pear'),
-                 'veggie' => array('tomato', 'potato', 'carrot', 'onion'),
-                 'thing' => array('spoon', 'paperbag', 'tool'));
-$template->set('categories', $categories);
-foreach ($categories as $c) {
-    $template->set('subcat_' . $c, $subcats[$c]);
-}
-$template->set('keyed', array('widgets' => array(
-     'key1' => 'zipit',
-     'key2' => 'twisty',
-     'key3' => 'doowhopper'
-)));
-echo $template->fetch('/array_nested.html');
-
-?>
---EXPECT--
-fruit
-    apple
-    pear
-veggie
-    tomato
-    potato
-    carrot
-    onion
-thing
-    spoon
-    paperbag
-    tool
-widgets
-    zipit
-    twisty
-    doowhopper
diff --git a/framework/Template/test/Horde/Template/array_simple.html b/framework/Template/test/Horde/Template/array_simple.html
deleted file mode 100644 (file)
index c3c3e63..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-<loop:string>
-<tag:string />
-</loop:string>
-<loop:int>
-<tag:int />
-</loop:int>
diff --git a/framework/Template/test/Horde/Template/array_simple.phpt b/framework/Template/test/Horde/Template/array_simple.phpt
deleted file mode 100644 (file)
index 5bbd970..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
---TEST--
-Simple Array Test
---FILE--
-<?php
-
-if (defined('E_DEPRECATED')) {
-    error_reporting(error_reporting() & ~E_DEPRECATED);
-}
-
-require dirname(__FILE__) . '/../../../lib/Horde/Template.php';
-$template = new Horde_Template(array('basepath' => dirname(__FILE__)));
-$template->set('string', array('one', 'two', 'three'));
-$template->set('int', array(1, 2, 3));
-echo $template->fetch('/array_simple.html');
-
-?>
---EXPECT--
-one
-two
-three
-
-1
-2
-3
diff --git a/framework/Template/test/Horde/Template/divider.phpt b/framework/Template/test/Horde/Template/divider.phpt
deleted file mode 100644 (file)
index a01c0c4..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
---TEST--
-Divider Test
---FILE--
-<?php
-
-require dirname(__FILE__) . '/../../../lib/Horde/Template.php';
-$template = new Horde_Template();
-$template->set('a', array('a', 'b', 'c', 'd'));
-echo $template->parse("<loop:a><divider:a>,</divider:a><tag:a /></loop:a>");
-
-?>
---EXPECT--
-a,b,c,d
diff --git a/framework/Template/test/Horde/Template/if.html b/framework/Template/test/Horde/Template/if.html
deleted file mode 100644 (file)
index 853d01f..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<if:foo>foo</if:foo>
-<if:bar>bar</if:bar>
-<if:bar>true<else:bar>false</else:bar>void</if:bar>
-<if:baz><tag:baz /></if:baz>
diff --git a/framework/Template/test/Horde/Template/if.phpt b/framework/Template/test/Horde/Template/if.phpt
deleted file mode 100644 (file)
index 56e5b54..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
---TEST--
-If/Else Test
---FILE--
-<?php
-
-if (defined('E_DEPRECATED')) {
-    error_reporting(error_reporting() & ~E_DEPRECATED);
-}
-
-require dirname(__FILE__) . '/../../../lib/Horde/Template.php';
-$template = new Horde_Template(array('basepath' => dirname(__FILE__)));
-$template->set('foo', true, true);
-$template->set('bar', false, true);
-$template->set('baz', 'baz', true);
-echo $template->fetch('/if.html');
-
-?>
---EXPECT--
-foo
-
-false
-baz
diff --git a/framework/Template/test/Horde/Template/iterator.phpt b/framework/Template/test/Horde/Template/iterator.phpt
deleted file mode 100644 (file)
index 25d6ad5..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
---TEST--
-Iterator Test
---FILE--
-<?php
-
-$s = new ArrayObject(array('one', 'two', 'three'));
-$i = new ArrayObject(array(1, 2, 3));
-$a = new ArrayObject(array('one' => 'one', 'two' => 2));
-
-require dirname(__FILE__) . '/../../../lib/Horde/Template.php';
-$template = new Horde_Template(array('basepath' => dirname(__FILE__)));
-$template->set('s', $s);
-$template->set('i', $i);
-$template->set('a', $a);
-echo $template->parse("<loop:s><tag:s />,</loop:s>\n<loop:i><tag:i />,</loop:i>\n<tag:a.one />,<tag:a.two />,<tag:a />");
-
-?>
---EXPECT--
-one,two,three,
-1,2,3,
-one,2,<tag:a />
diff --git a/framework/Template/test/Horde/Template/scalar.html b/framework/Template/test/Horde/Template/scalar.html
deleted file mode 100644 (file)
index 439cfcb..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-<tag:one />
-<tag:two />
diff --git a/framework/Template/test/Horde/Template/scalar.phpt b/framework/Template/test/Horde/Template/scalar.phpt
deleted file mode 100644 (file)
index 83989f3..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
---TEST--
-Scalar Test
---FILE--
-<?php
-
-if (defined('E_DEPRECATED')) {
-    error_reporting(error_reporting() & ~E_DEPRECATED);
-}
-
-require dirname(__FILE__) . '/../../../lib/Horde/Template.php';
-$template = new Horde_Template(array('basepath' => dirname(__FILE__)));
-$template->set('one', 'one');
-$template->set('two', 2);
-echo $template->fetch('/scalar.html');
-
-?>
---EXPECT--
-one
-2