Преглед изворни кода

Added Unit tests for Zend_Pdf

Unit tests include:
- Zend_Pdf::getJavascript()
- Zend_Pdf::setJavascript()
- Zend_Pdf::resetJavascript()
- Zend_Pdf::addJavascript()

Added Zend_PdfTest test suite to AllTests.php
Muhammad Adeel Nawaz пре 11 година
родитељ
комит
cce1d9527e
2 измењених фајлова са 161 додато и 0 уклоњено
  1. 2 0
      tests/Zend/AllTests.php
  2. 159 0
      tests/Zend/PdfTest.php

+ 2 - 0
tests/Zend/AllTests.php

@@ -76,6 +76,7 @@ require_once 'Zend/Oauth/AllTests.php';
 require_once 'Zend/OpenIdTest.php';
 require_once 'Zend/OpenId/AllTests.php';
 require_once 'Zend/Paginator/AllTests.php';
+require_once 'Zend/PdfTest.php';
 require_once 'Zend/Pdf/AllTests.php';
 require_once 'Zend/ProgressBar/AllTests.php';
 require_once 'Zend/Reflection/AllTests.php';
@@ -215,6 +216,7 @@ class Zend_AllTests
         $suite->addTest(Zend_Navigation_AllTests::suite());
         $suite->addTest(Zend_Oauth_AllTests::suite());
         $suite->addTest(Zend_Paginator_AllTests::suite());
+        $suite->addTestSuite('Zend_PdfTest');
         $suite->addTest(Zend_Pdf_AllTests::suite());
         $suite->addTest(Zend_ProgressBar_AllTests::suite());
         $suite->addTestSuite('Zend_RegistryTest');

+ 159 - 0
tests/Zend/PdfTest.php

@@ -0,0 +1,159 @@
+<?php
+
+/**
+ * Zend Framework
+ *
+ * LICENSE
+ *
+ * This source file is subject to the new BSD license that is bundled
+ * with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://framework.zend.com/license/new-bsd
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@zend.com so we can send you a copy immediately.
+ *
+ * @category   Zend
+ * @package    Zend_Pdf
+ * @subpackage UnitTests
+ * @copyright  Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)
+ * @license    http://framework.zend.com/license/new-bsd     New BSD License
+ * @version    $Id$
+ */
+/**
+ * @see Zend_Pdf
+ */
+require_once 'Zend/Pdf.php';
+/**
+ * @see Zend_Pdf_Exception
+ */
+require_once 'Zend/Pdf/Exception.php';
+
+/**
+ * @category   Zend
+ * @package    Zend_Pdf
+ * @subpackage UnitTests
+ * @copyright  Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)
+ * @license    http://framework.zend.com/license/new-bsd     New BSD License
+ * @group      Zend_Pdf
+ */
+class Zend_PdfTest extends PHPUnit_Framework_TestCase
+{
+
+    public function testGetJavasriptNull()
+    {
+        // getting JavaScript without setting it returns NULL
+        $pdf = new Zend_Pdf();
+        $this->assertNull($pdf->getJavaScript());
+    }
+
+    public function testSetAndGetJavasriptArray()
+    {
+        // getting JavaScript after setting it returns array
+        $pdf = new Zend_Pdf();
+        $pdf->setJavascript('print();');
+        $this->assertTrue(is_array($pdf->getJavaScript()));
+    }
+
+    public function testSetJavascriptString()
+    {
+        // setting string value is possible
+        $pdf = new Zend_Pdf();
+        $javaScriptString = 'print();';
+        $pdf->setJavaScript($javaScriptString);
+        $javaScript = $pdf->getJavaScript();
+        $this->assertEquals($javaScriptString, $javaScript[0]);
+    }
+
+    public function testSetJavascriptArray()
+    {
+        // setting string value is possible
+        $pdf = new Zend_Pdf();
+        $javaScriptArray = array('print();', 'alert();');
+        $pdf->setJavaScript($javaScriptArray);
+        $this->assertEquals($javaScriptArray, $pdf->getJavaScript());
+    }
+
+    public function testResetJavascript()
+    {
+        // reset removes the added JavaScript
+        $pdf = new Zend_Pdf();
+        $pdf->setJavaScript('print();');
+        $pdf->resetJavaScript();
+        $this->assertNull($pdf->getJavaScript());
+    }
+
+    public function testAddJavascript()
+    {
+        // adding JavaScript appends previously added JavaScript
+        $pdf = new Zend_Pdf();
+        $javaScriptArray = array('print();', 'alert();');
+        $pdf->addJavaScript($javaScriptArray[0]);
+        $pdf->addJavaScript($javaScriptArray[1]);
+        $this->assertEquals($javaScriptArray, $pdf->getJavaScript());
+    }
+
+    public function testSetJavascriptEmptyString()
+    {
+        // setting empty JavaScript string throws exception
+        $pdf = new Zend_Pdf();
+        try {
+            $pdf->setJavaScript('');
+            $this->fail('Expected exception when trying to set empty string.');
+        } catch (Zend_Pdf_Exception $e) {
+            $this->assertContains('JavaScript must be a non empty string or array of strings', $e->getMessage());
+        }
+    }
+
+    public function testSetJavascriptEmptyArray()
+    {
+        // setting empty JavaScript string throws exception
+        $pdf = new Zend_Pdf();
+        try {
+            $pdf->setJavaScript(array());
+            $this->fail('Expected exception when trying to set empty array.');
+        } catch (Zend_Pdf_Exception $e) {
+            $this->assertContains('JavaScript must be a non empty string or array of strings', $e->getMessage());
+        }
+    }
+
+    public function testSetAndSaveLoadAndGetJavascript()
+    {
+        $tempFile = tempnam(sys_get_temp_dir(), 'PdfUnitFile');
+        $javaScript = array('print();', 'alert();');
+
+        $pdf = new Zend_Pdf();
+        $pdf->setJavaScript($javaScript);
+        $pdf->save($tempFile);
+        unset($pdf);
+
+        $pdf = Zend_Pdf::load($tempFile);
+        unlink($tempFile);
+
+        $this->assertEquals($javaScript, $pdf->getJavaScript());
+    }
+
+    public function testSetAndSaveLoadAndResetAndSaveLoadAndGetJavascript()
+    {
+        $tempFile = tempnam(sys_get_temp_dir(), 'PdfUnitFile');
+        $javaScript = array('print();', 'alert();');
+
+        $pdf = new Zend_Pdf();
+        $pdf->setJavaScript($javaScript);
+        $pdf->save($tempFile);
+        unset($pdf);
+
+        $pdf = Zend_Pdf::load($tempFile);
+        unlink($tempFile);
+
+        $pdf->resetJavaScript();
+        $pdf->save($tempFile);
+        unset($pdf);
+
+        $pdf = Zend_Pdf::load($tempFile);
+        unlink($tempFile);
+
+        $this->assertNull($pdf->getJavaScript());
+    }
+
+}