Adding a TemplateTest.php file and all the associated template files along with it
authorRobert Sesek <rsesek@bluestatic.org>
Sun, 19 Aug 2007 08:15:12 +0000 (08:15 +0000)
committerRobert Sesek <rsesek@bluestatic.org>
Sun, 19 Aug 2007 08:15:12 +0000 (08:15 +0000)
12 files changed:
UnitTest/AllTests.php
UnitTest/TemplateTest.php [new file with mode: 0644]
UnitTest/templates/fetch.if.nested.test.tpl [new file with mode: 0644]
UnitTest/templates/fetch.if.noelse.test.tpl [new file with mode: 0644]
UnitTest/templates/fetch.if.test.tpl [new file with mode: 0644]
UnitTest/templates/fetch.lang.indexmissing.test.tpl [new file with mode: 0644]
UnitTest/templates/fetch.lang.invalid.test.tpl [new file with mode: 0644]
UnitTest/templates/fetch.lang.tag.test.tpl [new file with mode: 0644]
UnitTest/templates/fetch.lang.test.tpl [new file with mode: 0644]
UnitTest/templates/fetch.php.nested.test.tpl [new file with mode: 0644]
UnitTest/templates/fetch.php.test.tpl [new file with mode: 0644]
UnitTest/tests.config.php.new

index 063e495e19cd33a60426feace013b3c05fb8c04c..3e4bf63f653f9d627f7f6ea64a18d161e1ea13fe 100644 (file)
@@ -34,6 +34,9 @@ class AllTests
                require_once 'AppTest.php';
                $suite->addTestSuite('AppTest');
                
+               require_once 'TemplateTest.php';
+               $suite->addTestSuite('TemplateTest');
+               
                require_once 'XmlTest.php';
                $suite->addTestSuite('XmlTest');
                
diff --git a/UnitTest/TemplateTest.php b/UnitTest/TemplateTest.php
new file mode 100644 (file)
index 0000000..935c3de
--- /dev/null
@@ -0,0 +1,66 @@
+<?php
+
+require_once 'PHPUnit/Framework.php';
+
+class TemplateTest extends PHPUnit_Framework_TestCase
+{
+       private $fixture;
+       
+       public function setUp()
+       {
+               require_once 'ISSO/App.php';
+               
+               $this->fixture = BSApp::LoadModule('Template');
+               $this->fixture->setTemplateDirectory(TEST_TEMPLATE_PATH);
+               $this->fixture->setExtension('test.tpl');
+       }
+       
+       public function testFetchInvalidTemplate()
+       {
+               try
+               {
+                       $this->fixture->fetch('--invalid--');
+                       $this->fail('exception expected');
+               }
+               catch (Exception $e)
+               {}
+       }
+       
+       public function testFetch()
+       {
+               $result = $this->fixture->fetch('fetch.lang');
+               $this->assertEquals('this is a test of " . gettext(\'language\') . " strings', $result);
+               
+               $result = $this->fixture->fetch('fetch.if');
+               $this->assertEquals('this " . (($a == $b) ? "is cool" : "sucks") . "!', $result);
+               
+               $result = $this->fixture->fetch('fetch.php');
+               $this->assertEquals('this is " . (date(\'Y\', time()) . " today\'s year', $result);
+               
+               // TODO: pass test
+               // $result = $this->fixture->fetch('fetch.php.nested');
+               // $this->assertEquals('this is a " . strpos(\'somestr{\', \'}\') . " nested token', $result);
+               
+               $result = $this->fixture->fetch('fetch.lang.tag');
+               $this->assertEquals('this is a " . sprintf(\'" . gettext(\'a %1$s b %2$s\') . "\', "hello", "there") . " test', $result);
+               
+               $result = $this->fixture->fetch('fetch.if.nested');
+               $this->assertEquals('this " . (($c == $d) ? "foo " . (($e == $f) ? "e" : "f") . "" : "moo " . (($g == $h) ? "g" : "h") . "") . " rules!', $result);
+               
+               $result = $this->fixture->fetch('fetch.if.noelse');
+               $this->assertEquals('this is a test " . (($foo != \'moo\') ? "without else" : "") . "!', $result);
+               
+               try
+               {
+                       $this->fixture->fetch('fetch.lang.invalid');
+                       $this->fail('exception expected');
+               }
+               catch (Exception $e)
+               {}
+               
+               $result = $this->fixture->fetch('fetch.lang.indexmissing');
+               $this->assertEquals('missing " . sprintf(\'" . gettext(\'1 %1$s 2 %2$s 3 %3$s\') . "\', "a", "<strong>[MISSING SUBSTITUTION INDEX: 2]</strong>", "b") . " index', $result);
+       }
+}
+
+?>
\ No newline at end of file
diff --git a/UnitTest/templates/fetch.if.nested.test.tpl b/UnitTest/templates/fetch.if.nested.test.tpl
new file mode 100644 (file)
index 0000000..c887bae
--- /dev/null
@@ -0,0 +1 @@
+this <if condition="$c == $d">foo <if condition="$e == $f">e<else />f</if><else />moo <if condition="$g == $h">g<else />h</if></if> rules!
\ No newline at end of file
diff --git a/UnitTest/templates/fetch.if.noelse.test.tpl b/UnitTest/templates/fetch.if.noelse.test.tpl
new file mode 100644 (file)
index 0000000..ee01881
--- /dev/null
@@ -0,0 +1 @@
+this is a test <if condition="$foo != 'moo'">without else</if>!
\ No newline at end of file
diff --git a/UnitTest/templates/fetch.if.test.tpl b/UnitTest/templates/fetch.if.test.tpl
new file mode 100644 (file)
index 0000000..b67ebf7
--- /dev/null
@@ -0,0 +1 @@
+this <if condition="$a == $b">is cool<else />sucks</if>!
\ No newline at end of file
diff --git a/UnitTest/templates/fetch.lang.indexmissing.test.tpl b/UnitTest/templates/fetch.lang.indexmissing.test.tpl
new file mode 100644 (file)
index 0000000..94e48a7
--- /dev/null
@@ -0,0 +1 @@
+missing <lang 1="a" 3="b">{@"1 %1$s 2 %2$s 3 %3$s"}</lang> index
\ No newline at end of file
diff --git a/UnitTest/templates/fetch.lang.invalid.test.tpl b/UnitTest/templates/fetch.lang.invalid.test.tpl
new file mode 100644 (file)
index 0000000..02bc0cb
--- /dev/null
@@ -0,0 +1 @@
+this is <lang foo="hi">invalid</lang> language
\ No newline at end of file
diff --git a/UnitTest/templates/fetch.lang.tag.test.tpl b/UnitTest/templates/fetch.lang.tag.test.tpl
new file mode 100644 (file)
index 0000000..be9ab16
--- /dev/null
@@ -0,0 +1 @@
+this is a <lang 1="hello" 2="there">{@"a %1$s b %2$s"}</lang> test
\ No newline at end of file
diff --git a/UnitTest/templates/fetch.lang.test.tpl b/UnitTest/templates/fetch.lang.test.tpl
new file mode 100644 (file)
index 0000000..6269352
--- /dev/null
@@ -0,0 +1 @@
+this is a test of {@"language"} strings
\ No newline at end of file
diff --git a/UnitTest/templates/fetch.php.nested.test.tpl b/UnitTest/templates/fetch.php.nested.test.tpl
new file mode 100644 (file)
index 0000000..637d459
--- /dev/null
@@ -0,0 +1 @@
+this is a {strpos('somestr{', '}')} nested token
\ No newline at end of file
diff --git a/UnitTest/templates/fetch.php.test.tpl b/UnitTest/templates/fetch.php.test.tpl
new file mode 100644 (file)
index 0000000..f357940
--- /dev/null
@@ -0,0 +1 @@
+this is {date('Y', time()} today's year
\ No newline at end of file
index f542215f1fbbb347c9d6042d491940daf4e6a70d..5213c2db00df27562c3dab159ab479567ccc9e1f 100644 (file)
@@ -34,6 +34,9 @@ define('TEST_DB_MYSQL_HOST', 'localhost');
 // mysql database to use
 define('TEST_DB_MYSQL_DATABASE', 'issotest');
 
+// path to the ISSO test templates directory
+define('TEST_TEMPLATE_PATH', '/usr/local/apache2/htdocs/isso/UnitTest/templates');
+
 /*=====================================================================*
 || ###################################################################
 || # $HeadURL$