Html2PdfTest.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. namespace Spipu\Html2Pdf\Tests;
  3. use Spipu\Html2Pdf\Exception\HtmlParsingException;
  4. use Spipu\Html2Pdf\Tag\AbstractTag;
  5. /**
  6. * Class Html2PdfTest
  7. */
  8. class Html2PdfTest extends AbstractTest
  9. {
  10. public function testExtensionTag()
  11. {
  12. $tag = new testTag();
  13. $extension = $this->createMock('Spipu\Html2Pdf\Extension\ExtensionInterface');
  14. $extension->expects($this->any())->method('getName')->willReturn('test');
  15. $extension->expects($this->any())->method('getTags')->willReturn(array($tag));
  16. $object = $this->getObject();
  17. $object->addExtension($extension);
  18. $object->writeHTML('<div><test_tag>Hello</test_tag></div>');
  19. $this->assertTrue(true);
  20. }
  21. public function testSecurityGood()
  22. {
  23. $object = $this->getObject();
  24. $object->setTestIsImage(false);
  25. $object->writeHTML('<div><img src="https://www.spipu.net/res/logo_spipu.gif" alt="" /></div>');
  26. $object->writeHTML('<div><img src="/temp/test.jpg" alt="" /></div>');
  27. $object->writeHTML('<div><img src="c:/temp/test.jpg" alt="" /></div>');
  28. // Ensures we assert something
  29. $this->assertTrue(true);
  30. }
  31. public function testSecurityKo()
  32. {
  33. $this->expectException(HtmlParsingException::class);
  34. $this->expectExceptionMessage('Unauthorized path scheme', HtmlParsingException::class);
  35. $object = $this->getObject();
  36. $object->writeHTML('<div><img src="phar://test.com/php.phar" alt="" /></div>');
  37. }
  38. }
  39. class testTag extends AbstractTag
  40. {
  41. public function getName()
  42. {
  43. return 'test_tag';
  44. }
  45. public function open($properties)
  46. {
  47. }
  48. public function close($properties)
  49. {
  50. }
  51. }