HtmlImageTest.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <?php
  2. namespace PhpOffice\PhpSpreadsheetTests\Reader\Html;
  3. use PhpOffice\PhpSpreadsheet\Worksheet\Drawing;
  4. use PHPUnit\Framework\TestCase;
  5. class HtmlImageTest extends TestCase
  6. {
  7. public function testCanInsertImage(): void
  8. {
  9. $imagePath = realpath(__DIR__ . '/../../../data/Reader/HTML/image.jpg');
  10. $html = '<table>
  11. <tr>
  12. <td><img src="' . $imagePath . '" alt="test image voilà"></td>
  13. </tr>
  14. </table>';
  15. $filename = HtmlHelper::createHtml($html);
  16. $spreadsheet = HtmlHelper::loadHtmlIntoSpreadsheet($filename, true);
  17. $firstSheet = $spreadsheet->getSheet(0);
  18. /** @var Drawing $drawing */
  19. $drawing = $firstSheet->getDrawingCollection()[0];
  20. self::assertEquals($imagePath, $drawing->getPath());
  21. self::assertEquals('A1', $drawing->getCoordinates());
  22. self::assertEquals('test image voilà', $drawing->getName());
  23. self::assertEquals('100', $drawing->getWidth());
  24. self::assertEquals('100', $drawing->getHeight());
  25. }
  26. public function testCanInsertImageWidth(): void
  27. {
  28. $imagePath = realpath(__DIR__ . '/../../../data/Reader/HTML/image.jpg');
  29. $html = '<table>
  30. <tr>
  31. <td><img src="' . $imagePath . '" alt="test image" width="50"></td>
  32. </tr>
  33. </table>';
  34. $filename = HtmlHelper::createHtml($html);
  35. $spreadsheet = HtmlHelper::loadHtmlIntoSpreadsheet($filename, true);
  36. $firstSheet = $spreadsheet->getSheet(0);
  37. /** @var Drawing $drawing */
  38. $drawing = $firstSheet->getDrawingCollection()[0];
  39. self::assertEquals('50', $drawing->getWidth());
  40. self::assertEquals('50', $drawing->getHeight());
  41. }
  42. public function testCanInsertImageHeight(): void
  43. {
  44. $imagePath = realpath(__DIR__ . '/../../../data/Reader/HTML/image.jpg');
  45. $html = '<table>
  46. <tr>
  47. <td><img src="' . $imagePath . '" height="75"></td>
  48. </tr>
  49. </table>';
  50. $filename = HtmlHelper::createHtml($html);
  51. $spreadsheet = HtmlHelper::loadHtmlIntoSpreadsheet($filename, true);
  52. $firstSheet = $spreadsheet->getSheet(0);
  53. /** @var Drawing $drawing */
  54. $drawing = $firstSheet->getDrawingCollection()[0];
  55. self::assertEquals('', $drawing->getName());
  56. self::assertEquals('75', $drawing->getWidth());
  57. self::assertEquals('75', $drawing->getHeight());
  58. }
  59. public function testImageWithourSrc(): void
  60. {
  61. $html = '<table>
  62. <tr>
  63. <td><img></td>
  64. </tr>
  65. </table>';
  66. $filename = HtmlHelper::createHtml($html);
  67. $spreadsheet = HtmlHelper::loadHtmlIntoSpreadsheet($filename, true);
  68. $firstSheet = $spreadsheet->getSheet(0);
  69. self::assertCount(0, $firstSheet->getDrawingCollection());
  70. }
  71. }