MPDITest.php 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548
  1. <?php
  2. /**
  3. * PHPUnit Testing for the MPDI (FPDI) Functionality
  4. *
  5. * @package mPDF
  6. * @author Blue Liquid Designs <admin@blueliquiddesigns.com.au>
  7. * @copyright 2015 Blue Liquid Designs
  8. * @license GPLv2
  9. * @since 6.1.0
  10. */
  11. /**
  12. * The MPDI Testing suite
  13. * @group mpdi
  14. */
  15. class MPDITest extends PHPUnit_Framework_TestCase
  16. {
  17. /**
  18. * Holds our mPDF object instance
  19. * @var object
  20. * @since 6.1.0
  21. */
  22. private $mpdf;
  23. /**
  24. * Holds our FPDI object instance
  25. * @var object
  26. * @since 6.1.0
  27. */
  28. private $parser;
  29. /**
  30. * Holds our FPDI Parser object instance
  31. * @var object
  32. * @since 6.1.0
  33. */
  34. private $fpdi_parser;
  35. /**
  36. * Set up our common testing PDFs
  37. */
  38. public function setUp()
  39. {
  40. parent::setUp();
  41. /* Autoload our classes */
  42. require_once _MPDF_PATH . 'vendor/autoload.php';
  43. /* Set up our test objects */
  44. $this->mpdf = new mPDF();
  45. $this->fpdi_parser = new fpdi_pdf_parser( _MPDF_PATH . 'tests/data/pdfs/2-Page-PDF_1_4.pdf', $this->mpdf );
  46. $this->parser = new pdf_parser( _MPDF_PATH . 'tests/data/pdfs/2-Page-PDF_1_4.pdf' );
  47. }
  48. /**
  49. * Call protected/private method of a class.
  50. *
  51. * @param object &$object Instantiated object that we will run method on.
  52. * @param string $methodName Method name to call
  53. * @param array $parameters Array of parameters to pass into method.
  54. *
  55. * @return mixed Method return.
  56. */
  57. protected function invokeMethod( &$object, $methodName, array $parameters = array() )
  58. {
  59. $reflection = new \ReflectionClass( get_class($object) );
  60. $method = $reflection->getMethod( $methodName );
  61. $method->setAccessible( true );
  62. return $method->invokeArgs($object, $parameters);
  63. }
  64. /**
  65. * Retreve protected/private properties of a class.
  66. *
  67. * @param object &$object Instantiated object that we will run method on.
  68. * @param string $propertyName Property name to retreve
  69. */
  70. protected function getProperty( &$object, $propertyName ) {
  71. $reflection = new \ReflectionClass( get_class($object) );
  72. $property = $reflection->getProperty( $propertyName );
  73. $property->setAccessible( true );
  74. return $property->getValue( $object );
  75. }
  76. /**
  77. * Check the xref ofset value is accurate
  78. * From pdf_parser.php
  79. * @since 6.1.0
  80. */
  81. public function test_pdf_find_xref()
  82. {
  83. $this->assertEquals(116, $this->invokeMethod( $this->parser, '_findXref' ) );
  84. }
  85. /**
  86. * Check the standardised xref return value based on our testing PDF
  87. * From pdf_parser.php
  88. * @since 6.1.0
  89. */
  90. public function test_pdf_read_xref()
  91. {
  92. $xref = array();
  93. $this->invokeMethod( $this->parser, '_readXref', array( & $xref, $this->invokeMethod( $this->parser, '_findXref' ) ) );
  94. /* Verify the xref array */
  95. $this->assertArrayHasKey('xrefLocation', $xref);
  96. $this->assertArrayHasKey('maxObject', $xref);
  97. $this->assertArrayHasKey('xref', $xref);
  98. $this->assertArrayHasKey('trailer', $xref);
  99. /* Check the xref array data integrity */
  100. $this->assertEquals(116, $xref['xrefLocation']);
  101. $this->assertEquals(27, $xref['maxObject']);
  102. $this->assertTrue(is_array($xref['xref']));
  103. $this->assertTrue(is_array($xref['trailer']));
  104. /* Check the $xref['xref'] array data integrity */
  105. $this->assertEquals(16, $xref['xref'][9][0]);
  106. $this->assertEquals(857, $xref['xref'][10][0]);
  107. $this->assertEquals(935, $xref['xref'][11][0]);
  108. $this->assertEquals(1166, $xref['xref'][12][0]);
  109. $this->assertEquals(1347, $xref['xref'][13][0]);
  110. $this->assertEquals(1742, $xref['xref'][14][0]);
  111. $this->assertEquals(1792, $xref['xref'][15][0]);
  112. $this->assertEquals(1837, $xref['xref'][16][0]);
  113. $this->assertEquals(1914, $xref['xref'][17][0]);
  114. $this->assertEquals(2137, $xref['xref'][18][0]);
  115. $this->assertEquals(2699, $xref['xref'][19][0]);
  116. $this->assertEquals(3069, $xref['xref'][20][0]);
  117. $this->assertEquals(3284, $xref['xref'][21][0]);
  118. $this->assertEquals(3319, $xref['xref'][22][0]);
  119. $this->assertEquals(14059, $xref['xref'][23][0]);
  120. $this->assertEquals(16751, $xref['xref'][24][0]);
  121. $this->assertEquals(17706, $xref['xref'][25][0]);
  122. $this->assertEquals(656, $xref['xref'][26][0]);
  123. $this->assertEquals(0, $xref['xref'][0]['65535']);
  124. $this->assertEquals(18010, $xref['xref'][1][0]);
  125. $this->assertEquals(18238, $xref['xref'][2][0]);
  126. $this->assertEquals(18418, $xref['xref'][3][0]);
  127. $this->assertEquals(18980, $xref['xref'][4][0]);
  128. $this->assertEquals(19014, $xref['xref'][5][0]);
  129. $this->assertEquals(19038, $xref['xref'][6][0]);
  130. $this->assertEquals(19096, $xref['xref'][7][0]);
  131. $this->assertEquals(22433, $xref['xref'][8][0]);
  132. /* Check the $xref['trailer'] array */
  133. $this->assertEquals(5, $xref['trailer'][0]);
  134. $this->assertTrue(is_array($xref['trailer'][1]));
  135. $this->assertEquals(1, $xref['trailer'][1]['/Size'][0]);
  136. $this->assertEquals(27, $xref['trailer'][1]['/Size'][1]);
  137. $this->assertEquals(6, $xref['trailer'][1]['/ID'][0]);
  138. $this->assertEquals(3, $xref['trailer'][1]['/ID'][1][0][0]);
  139. $this->assertEquals('F34FF699722057ED0305FD8963F8BEE6', $xref['trailer'][1]['/ID'][1][0][1]);
  140. $this->assertEquals(3, $xref['trailer'][1]['/ID'][1][1][0]);
  141. $this->assertEquals('37D4D0052D959F40A6C7109C3CED2DB5', $xref['trailer'][1]['/ID'][1][1][1]);
  142. $this->assertEquals(8, $xref['trailer'][1]['/Root'][0]);
  143. $this->assertEquals(10, $xref['trailer'][1]['/Root'][1]);
  144. $this->assertEquals(0, $xref['trailer'][1]['/Root'][2]);
  145. $this->assertEquals(8, $xref['trailer'][1]['/Info'][0]);
  146. $this->assertEquals(8, $xref['trailer'][1]['/Info'][1]);
  147. $this->assertEquals(0, $xref['trailer'][1]['/Info'][2]);
  148. $this->assertEquals(1, $xref['trailer'][1]['/Prev'][0]);
  149. $this->assertEquals(22585, $xref['trailer'][1]['/Prev'][1]);
  150. }
  151. /**
  152. * Check the standardised Trailer /Root value is found
  153. * From pdf_parser.php
  154. * @since 6.1.0
  155. */
  156. public function test_pdf_read_root()
  157. {
  158. $root = $this->getProperty( $this->parser, '_root' );
  159. $this->assertEquals(9, $root[0]);
  160. $this->assertEquals(true, is_array( $root[1] ) );
  161. $this->assertEquals(0, $root[2]);
  162. }
  163. /**
  164. * Check the standardised resolve object functions
  165. * From pdf_parser.php
  166. * @since 6.1.0
  167. */
  168. public function test_resolve_object()
  169. {
  170. $resolved = $this->parser->resolveObject( $this->getProperty( $this->parser, '_root' ) );
  171. /* Check for the correct results */
  172. $this->assertEquals(9, $resolved[0]);
  173. $this->assertEquals(10, $resolved['obj']);
  174. $this->assertEquals(0, $resolved['gen']);
  175. $this->assertTrue(is_array($resolved[1]));
  176. $this->assertEquals(5, $resolved[1][0]);
  177. $this->assertTrue(is_array($resolved[1][1]));
  178. $this->assertArrayHasKey('/Metadata', $resolved[1][1]);
  179. $this->assertArrayHasKey('/PageLabels', $resolved[1][1]);
  180. $this->assertArrayHasKey('/Pages', $resolved[1][1]);
  181. $this->assertArrayHasKey('/Type', $resolved[1][1]);
  182. $this->assertEquals(8, $resolved[1][1]['/Metadata'][0]);
  183. $this->assertEquals(7, $resolved[1][1]['/Metadata'][1]);
  184. $this->assertEquals(0, $resolved[1][1]['/Metadata'][2]);
  185. $this->assertEquals(8, $resolved[1][1]['/PageLabels'][0]);
  186. $this->assertEquals(4, $resolved[1][1]['/PageLabels'][1]);
  187. $this->assertEquals(0, $resolved[1][1]['/PageLabels'][2]);
  188. $this->assertEquals(8, $resolved[1][1]['/Pages'][0]);
  189. $this->assertEquals(6, $resolved[1][1]['/Pages'][1]);
  190. $this->assertEquals(0, $resolved[1][1]['/Pages'][2]);
  191. $this->assertEquals(2, $resolved[1][1]['/Type'][0]);
  192. $this->assertEquals('/Catalog', $resolved[1][1]['/Type'][1]);
  193. }
  194. /**
  195. * Check the standardised FPDI PDF loader (the construct)
  196. * From fpdi_pdf_parser.php
  197. * @since 6.1.0
  198. */
  199. public function test_fpdi_pdf_parser()
  200. {
  201. $this->assertSame(2, $this->fpdi_parser->getPageCount() );
  202. $_pages = $this->getProperty( $this->fpdi_parser, '_pages' );
  203. $page1 = $_pages[0];
  204. $page2 = $_pages[1];
  205. /* Check Page 1 as the appropriate values */
  206. $this->assertEquals(9, $page1[0]);
  207. $this->assertEquals(11, $page1['obj']);
  208. $this->assertEquals(0, $page1['gen']);
  209. /* Check Page 2 as the appropriate values */
  210. $this->assertEquals(5, $page1[1][0]);
  211. $this->assertTrue(is_array($page1[1][1]));
  212. $this->assertArrayHasKey('/ArtBox', $page1[1][1]);
  213. $this->assertArrayHasKey('/BleedBox', $page1[1][1]);
  214. $this->assertArrayHasKey('/Contents', $page1[1][1]);
  215. $this->assertArrayHasKey('/CropBox', $page1[1][1]);
  216. $this->assertArrayHasKey('/MediaBox', $page1[1][1]);
  217. $this->assertArrayHasKey('/Parent', $page1[1][1]);
  218. $this->assertArrayHasKey('/Resources', $page1[1][1]);
  219. $this->assertArrayHasKey('/Rotate', $page1[1][1]);
  220. $this->assertArrayHasKey('/TrimBox', $page1[1][1]);
  221. $this->assertArrayHasKey('/Type', $page1[1][1]);
  222. /* Check ArtBox */
  223. $artbox = $page1[1][1]['/ArtBox'];
  224. $this->assertEquals(6, $artbox[0]);
  225. $this->assertEquals(1, $artbox[1][0][0]);
  226. $this->assertEquals(0, $artbox[1][0][1]);
  227. $this->assertEquals(12, $artbox[1][1][0]);
  228. $this->assertEquals(0.071, $artbox[1][1][1]);
  229. $this->assertEquals(12, $artbox[1][2][0]);
  230. $this->assertEquals(595.02, $artbox[1][2][1]);
  231. $this->assertEquals(12, $artbox[1][3][0]);
  232. $this->assertEquals(841.789, $artbox[1][3][1]);
  233. /* Check BleedBox */
  234. $bleedbox = $page1[1][1]['/BleedBox'];
  235. $this->assertEquals(6, $bleedbox[0]);
  236. $this->assertEquals(1, $bleedbox[1][0][0]);
  237. $this->assertEquals(0, $bleedbox[1][0][1]);
  238. $this->assertEquals(12, $bleedbox[1][1][0]);
  239. $this->assertEquals(0.211, $bleedbox[1][1][1]);
  240. $this->assertEquals(12, $bleedbox[1][2][0]);
  241. $this->assertEquals(595.02, $bleedbox[1][2][1]);
  242. $this->assertEquals(12, $bleedbox[1][3][0]);
  243. $this->assertEquals(841.929, $bleedbox[1][3][1]);
  244. /* Check Contents */
  245. $contents = $page1[1][1]['/Contents'];
  246. $this->assertEquals(8, $contents[0]);
  247. $this->assertEquals(18, $contents[1]);
  248. $this->assertEquals(0, $contents[2]);
  249. /* Check CropBox */
  250. $cropbox = $page1[1][1]['/CropBox'];
  251. $this->assertEquals(6, $cropbox[0]);
  252. $this->assertEquals(1, $cropbox[1][0][0]);
  253. $this->assertEquals(0, $cropbox[1][0][1]);
  254. $this->assertEquals(1, $cropbox[1][1][0]);
  255. $this->assertEquals(0, $cropbox[1][1][1]);
  256. $this->assertEquals(12, $cropbox[1][2][0]);
  257. $this->assertEquals(595.22, $cropbox[1][2][1]);
  258. $this->assertEquals(1, $cropbox[1][3][0]);
  259. $this->assertEquals(842, $cropbox[1][3][1]);
  260. /* Check MediaBox */
  261. $mediabox = $page1[1][1]['/MediaBox'];
  262. $this->assertEquals(6, $mediabox[0]);
  263. $this->assertEquals(1, $mediabox[1][0][0]);
  264. $this->assertEquals(0, $mediabox[1][0][1]);
  265. $this->assertEquals(1, $mediabox[1][1][0]);
  266. $this->assertEquals(0, $mediabox[1][1][1]);
  267. $this->assertEquals(12, $mediabox[1][2][0]);
  268. $this->assertEquals(595.22, $mediabox[1][2][1]);
  269. $this->assertEquals(1, $mediabox[1][3][0]);
  270. $this->assertEquals(842, $mediabox[1][3][1]);
  271. /* Check Parent */
  272. $parent = $page1[1][1]['/Parent'];
  273. $this->assertEquals(8, $parent[0]);
  274. $this->assertEquals(6, $parent[1]);
  275. $this->assertEquals(0, $parent[2]);
  276. /* Check Resources */
  277. $resources = $page1[1][1]['/Resources'];
  278. $this->assertEquals(8, $resources[0]);
  279. $this->assertEquals(12, $resources[1]);
  280. $this->assertEquals(0, $resources[2]);
  281. /* Check Rotate */
  282. $rotate = $page1[1][1]['/Rotate'];
  283. $this->assertEquals(1, $rotate[0]);
  284. $this->assertEquals(0, $rotate[1]);
  285. /* Check TrimBox */
  286. $trimbox = $page1[1][1]['/TrimBox'];
  287. $this->assertEquals(6, $trimbox[0]);
  288. $this->assertEquals(1, $trimbox[1][0][0]);
  289. $this->assertEquals(0, $trimbox[1][0][1]);
  290. $this->assertEquals(12, $trimbox[1][1][0]);
  291. $this->assertEquals(0.211, $trimbox[1][1][1]);
  292. $this->assertEquals(12, $trimbox[1][2][0]);
  293. $this->assertEquals(595.02, $trimbox[1][2][1]);
  294. $this->assertEquals(12, $trimbox[1][3][0]);
  295. $this->assertEquals(841.929, $trimbox[1][3][1]);
  296. /* Check Type */
  297. $type = $page1[1][1]['/Type'];
  298. $this->assertEquals(2, $type[0]);
  299. $this->assertEquals('/Page', $type[1]);
  300. /* Check the basics for page 2 */
  301. $this->assertArrayHasKey('/ArtBox', $page2[1][1]);
  302. $this->assertArrayHasKey('/BleedBox', $page2[1][1]);
  303. $this->assertArrayHasKey('/Contents', $page2[1][1]);
  304. $this->assertArrayHasKey('/CropBox', $page2[1][1]);
  305. $this->assertArrayHasKey('/MediaBox', $page2[1][1]);
  306. $this->assertArrayHasKey('/Parent', $page2[1][1]);
  307. $this->assertArrayHasKey('/Resources', $page2[1][1]);
  308. $this->assertArrayHasKey('/Rotate', $page2[1][1]);
  309. $this->assertArrayHasKey('/TrimBox', $page2[1][1]);
  310. $this->assertArrayHasKey('/Type', $page2[1][1]);
  311. }
  312. /**
  313. * Check the standardised FPDI PDF _getPageResources method
  314. * From fpdi_pdf_parser.php
  315. * @since 6.1.0
  316. */
  317. public function test_fpdi_get_page_resources()
  318. {
  319. $_pages = $this->getProperty( $this->fpdi_parser, '_pages' );
  320. $resources = $this->invokeMethod( $this->fpdi_parser, '_getPageResources', array( $_pages[0] ) );
  321. /* Run our tests */
  322. $this->assertEquals(5, $resources[0]);
  323. $this->assertTrue(is_array($resources[1]));
  324. $this->assertArrayHasKey('/ColorSpace', $resources[1]);
  325. $this->assertArrayHasKey('/ExtGState', $resources[1]);
  326. $this->assertArrayHasKey('/Font', $resources[1]);
  327. $this->assertArrayHasKey('/ProcSet', $resources[1]);
  328. $this->assertArrayHasKey('/XObject', $resources[1]);
  329. /* Test Color Space */
  330. $color = $resources[1]['/ColorSpace'];
  331. $this->assertEquals(5, $color[0]);
  332. $this->assertEquals(8, $color[1]['/Cs6'][0]);
  333. $this->assertEquals(21, $color[1]['/Cs6'][1]);
  334. $this->assertEquals(0, $color[1]['/Cs6'][2]);
  335. $this->assertEquals(8, $color[1]['/Cs8'][0]);
  336. $this->assertEquals(14, $color[1]['/Cs8'][1]);
  337. $this->assertEquals(0, $color[1]['/Cs8'][2]);
  338. $this->assertEquals(8, $color[1]['/Cs9'][0]);
  339. $this->assertEquals(15, $color[1]['/Cs9'][1]);
  340. $this->assertEquals(0, $color[1]['/Cs9'][2]);
  341. /* Test ExtGState */
  342. $ext = $resources[1]['/ExtGState'];
  343. $this->assertEquals(5, $ext[0]);
  344. $this->assertEquals(8, $ext[1]['/GS1'][0]);
  345. $this->assertEquals(16, $ext[1]['/GS1'][1]);
  346. $this->assertEquals(0, $ext[1]['/GS1'][2]);
  347. /* Test Font */
  348. $font = $resources[1]['/Font'];
  349. $this->assertEquals(5, $font[0]);
  350. $this->assertEquals(8, $font[1]['/TT2'][0]);
  351. $this->assertEquals(13, $font[1]['/TT2'][1]);
  352. $this->assertEquals(0, $font[1]['/TT2'][2]);
  353. $this->assertEquals(8, $font[1]['/TT4'][0]);
  354. $this->assertEquals(19, $font[1]['/TT4'][1]);
  355. $this->assertEquals(0, $font[1]['/TT4'][2]);
  356. /* Test ProcSet */
  357. $proc = $resources[1]['/ProcSet'];
  358. $this->assertEquals(6, $proc[0]);
  359. $this->assertEquals(2, $proc[1][0][0]);
  360. $this->assertEquals('/PDF', $proc[1][0][1]);
  361. $this->assertEquals(2, $proc[1][1][0]);
  362. $this->assertEquals('/Text', $proc[1][1][1]);
  363. $this->assertEquals(2, $proc[1][2][0]);
  364. $this->assertEquals('/ImageC', $proc[1][2][1]);
  365. $this->assertEquals(2, $proc[1][3][0]);
  366. $this->assertEquals('/ImageI', $proc[1][3][1]);
  367. /* Test XObject */
  368. $x = $resources[1]['/XObject'];
  369. $this->assertEquals(5, $x[0]);
  370. $this->assertEquals(8, $x[1]['/Im1'][0]);
  371. $this->assertEquals(22, $x[1]['/Im1'][1]);
  372. $this->assertEquals(0, $x[1]['/Im1'][2]);
  373. /**
  374. * Check for basics on Page 2
  375. */
  376. $resources = $this->invokeMethod( $this->fpdi_parser, '_getPageResources', array( $_pages[1] ) );
  377. /* Run our tests */
  378. $this->assertEquals(5, $resources[0]);
  379. $this->assertTrue(is_array($resources[1]));
  380. $this->assertArrayHasKey('/ColorSpace', $resources[1]);
  381. $this->assertArrayHasKey('/ExtGState', $resources[1]);
  382. $this->assertArrayHasKey('/Font', $resources[1]);
  383. $this->assertArrayHasKey('/ProcSet', $resources[1]);
  384. $this->assertArrayHasKey('/XObject', $resources[1]);
  385. }
  386. /**
  387. * Check the standardised FPDI PDF getContent() method
  388. * From fpdi_pdf_parser.php
  389. * @since 6.1.0
  390. */
  391. public function test_get_content()
  392. {
  393. /* Set Page 1*/
  394. $this->fpdi_parser->setPageNo(1);
  395. /* Get contents */
  396. $content = $this->fpdi_parser->getContent();
  397. /* Check if contains specific text */
  398. $this->assertNotSame(false, strpos($content, 'MAIN HEADING'));
  399. $this->assertNotSame(false, strpos($content, 'Secondary Heading'));
  400. $this->assertNotSame(false, strpos($content, 'Blue Liquid Designs'));
  401. $this->assertSame(false, strpos($content, 'String Not In PDF'));
  402. }
  403. /**
  404. * Check the standardised FPDI PDF getPageBox() method
  405. * From fpdi_pdf_parser.php
  406. * @since 6.1.0
  407. */
  408. public function test_get_page_box()
  409. {
  410. $_pages = $this->getProperty( $this->fpdi_parser, '_pages' );
  411. $box = $this->invokeMethod( $this->fpdi_parser, '_getPageBox', array( $_pages[0], '/TrimBox', _MPDFK ) );
  412. $this->assertEquals('0', $box['x']);
  413. $this->assertEquals('0.074436111111111', $box['y']);
  414. $this->assertEquals('209.90983333333', $box['w']);
  415. $this->assertEquals('296.93940555556', $box['h']);
  416. }
  417. /**
  418. * Check the standardised FPDI PDF getPageBoxes() method
  419. * From fpdi_pdf_parser.php
  420. * @since 6.1.0
  421. */
  422. public function test_get_page_boxes()
  423. {
  424. $boxes = $this->fpdi_parser->getPageBoxes(1, _MPDFK);
  425. $this->assertArrayHasKey('/MediaBox', $boxes);
  426. $this->assertArrayHasKey('/CropBox', $boxes);
  427. $this->assertArrayHasKey('/BleedBox', $boxes);
  428. $this->assertArrayHasKey('/TrimBox', $boxes);
  429. $this->assertArrayHasKey('/ArtBox', $boxes);
  430. }
  431. /**
  432. * Check the standardised FPDI PDF getPageRotation() method
  433. * From fpdi_pdf_parser.php
  434. * @since 6.1.0
  435. */
  436. public function test_get_page_rotation()
  437. {
  438. $rotation = $this->fpdi_parser->getPageRotation(1);
  439. $this->assertEquals(1, $rotation[0]);
  440. $this->assertEquals(0, $rotation[1]);
  441. }
  442. }