Sfoglia il codice sorgente

updated View test to test every available template instead of just the page one

El RIDO 9 anni fa
parent
commit
06496f2ede
1 ha cambiato i file con 47 aggiunte e 38 eliminazioni
  1. 47 38
      tst/ViewTest.php

+ 47 - 38
tst/ViewTest.php

@@ -27,7 +27,7 @@ class ViewTest extends PHPUnit_Framework_TestCase
 
     private static $version = 'Version 1.2.3';
 
-    private $_content;
+    private $_content = array();
 
     public function setUp()
     {
@@ -56,10 +56,17 @@ class ViewTest extends PHPUnit_Framework_TestCase
         $page->assign('EXPIREDEFAULT', self::$expire_default);
         $page->assign('EXPIRECLONE', true);
         $page->assign('URLSHORTENER', '');
-        ob_start();
-        $page->draw('page');
-        $this->_content = ob_get_contents();
-        ob_end_clean();
+
+        $dir = dir(PATH . 'tpl');
+        while (false !== ($file = $dir->read())) {
+            if (substr($file, -4) === '.php') {
+                $template = substr($file, 0, -4);
+                ob_start();
+                $page->draw($template);
+                $this->_content[$template] = ob_get_contents();
+                ob_end_clean();
+            }
+        }
     }
 
     public function tearDown()
@@ -69,39 +76,41 @@ class ViewTest extends PHPUnit_Framework_TestCase
 
     public function testTemplateRendersCorrectly()
     {
-        $this->assertContains(
-            '<div id="cipherdata" class="hidden">' .
-            htmlspecialchars(Helper::getPaste()['data'], ENT_NOQUOTES) .
-            '</div>',
-            $this->_content,
-            'outputs data correctly'
-        );
-        $this->assertRegExp(
-            '#<div[^>]+id="errormessage"[^>]*>.*' . self::$error . '</div>#',
-            $this->_content,
-            'outputs error correctly'
-        );
-        $this->assertRegExp(
-            '#<[^>]+id="password"[^>]*>#',
-            $this->_content,
-            'password available if configured'
-        );
-        $this->assertRegExp(
-            '#<input[^>]+id="opendiscussion"[^>]*checked="checked"[^>]*>#',
-            $this->_content,
-            'checked discussion if configured'
-        );
-        $this->assertRegExp(
-            '#<[^>]+id="opendisc"[^>]*>#',
-            $this->_content,
-            'discussions available if configured'
-        );
-        // testing version number in JS address, since other instances may not be present in different templates
-        $this->assertRegExp(
-            '#<script[^>]+src="js/privatebin.js\\?' . rawurlencode(self::$version) . '"[^>]*>#',
-            $this->_content,
-            'outputs version correctly'
-        );
+        foreach ($this->_content as $template => $content) {
+            $this->assertContains(
+                '<div id="cipherdata" class="hidden">' .
+                htmlspecialchars(Helper::getPaste()['data'], ENT_NOQUOTES) .
+                '</div>',
+                $content,
+                $template . ': outputs data correctly'
+            );
+            $this->assertRegExp(
+                '#<div[^>]+id="errormessage"[^>]*>.*' . self::$error . '</div>#',
+                $content,
+                $template . ': outputs error correctly'
+            );
+            $this->assertRegExp(
+                '#<[^>]+id="password"[^>]*>#',
+                $content,
+                $template . ': password available if configured'
+            );
+            $this->assertRegExp(
+                '#<input[^>]+id="opendiscussion"[^>]*checked="checked"[^>]*>#',
+                $content,
+                $template . ': checked discussion if configured'
+            );
+            $this->assertRegExp(
+                '#<[^>]+id="opendisc"[^>]*>#',
+                $content,
+                $template . ': discussions available if configured'
+            );
+            // testing version number in JS address, since other instances may not be present in different templates
+            $this->assertRegExp(
+                '#<script[^>]+src="js/privatebin.js\\?' . rawurlencode(self::$version) . '"[^>]*>#',
+                $content,
+                $template . ': outputs version correctly'
+            );
+        }
     }
 
     /**