NamedDestinationsTest.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <?php
  2. /**
  3. * @package Zend_Pdf
  4. * @subpackage UnitTests
  5. */
  6. /** Zend_Pdf */
  7. require_once 'Zend/Pdf.php';
  8. /** PHPUnit Test Case */
  9. require_once 'PHPUnit/Framework/TestCase.php';
  10. /**
  11. * @package Zend_Pdf
  12. * @subpackage UnitTests
  13. */
  14. class Zend_Pdf_NamedDestinationsTest extends PHPUnit_Framework_TestCase
  15. {
  16. public function setUp()
  17. {
  18. date_default_timezone_set('GMT');
  19. }
  20. public function testProcessing()
  21. {
  22. $pdf = new Zend_Pdf();
  23. $page1 = $pdf->newPage(Zend_Pdf_Page::SIZE_A4);
  24. $page2 = $pdf->newPage(Zend_Pdf_Page::SIZE_A4);
  25. $page3 = $pdf->newPage(Zend_Pdf_Page::SIZE_A4); // not actually included into pages array
  26. $pdf->pages[] = $page1;
  27. $pdf->pages[] = $page2;
  28. $this->assertTrue(count($pdf->getNamedActions()) == 0);
  29. $this->assertTrue(count($pdf->getNamedDestinations()) == 0);
  30. require_once 'Zend/Pdf/Destination/Fit.php';
  31. $destination1 = Zend_Pdf_Destination_Fit::create($page1);
  32. $destination2 = Zend_Pdf_Destination_Fit::create($page2);
  33. $action1 = Zend_Pdf_Action_GoTo::create($destination1);
  34. $pdf->setNamedAction('GoToPage1', $action1);
  35. $this->assertTrue($pdf->getNamedAction('GoToPage1') === $action1);
  36. $this->assertTrue($pdf->getNamedAction('GoToPage9') === null);
  37. $pdf->setNamedDestination('Page2', $destination2);
  38. $this->assertTrue($pdf->getNamedDestination('Page2') === $destination2);
  39. $this->assertTrue($pdf->getNamedDestination('Page9') === null);
  40. $pdf->setNamedDestination('Page1', $destination1);
  41. $pdf->setNamedDestination('Page1_1', Zend_Pdf_Destination_Fit::create(1));
  42. $pdf->setNamedDestination('Page9_1', Zend_Pdf_Destination_Fit::create(9)); // will be egnored
  43. $action3 = Zend_Pdf_Action_GoTo::create(Zend_Pdf_Destination_Fit::create($page3));
  44. $pdf->setNamedAction('GoToPage3', $action3);
  45. $this->assertTrue(strpos($pdf->render(), '[(GoToPage1) <</Type /Action /S /GoTo /D [3 0 R /Fit ] >> (Page1) [3 0 R /Fit ] (Page1_1) [1 /Fit ] (Page2) [4 0 R /Fit ] ]') !== false);
  46. }
  47. }