Completed
Push — master ( 84e03d...9947de )
by Adrien
11:32 queued 05:30
created

ImagesRootTest::setUp()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 3
rs 10
1
<?php
2
3
namespace PhpOffice\PhpSpreadsheetTests\Writer\Html;
4
5
use DOMDocument;
6
use PhpOffice\PhpSpreadsheet\Spreadsheet;
7
use PhpOffice\PhpSpreadsheet\Writer\Html;
8
use PhpOffice\PhpSpreadsheetTests\Functional;
9
10
class ImagesRootTest extends Functional\AbstractFunctional
11
{
12
    private $curdir;
13
14
    protected function setUp(): void
15
    {
16
        $this->curdir = getcwd();
17
    }
18
19
    protected function tearDown(): void
20
    {
21
        chdir($this->curdir);
22
    }
23
24
    public function testImagesRoot(): void
25
    {
26
        $spreadsheet = new Spreadsheet();
27
        $sheet = $spreadsheet->getActiveSheet();
28
        $drawing = new \PhpOffice\PhpSpreadsheet\Worksheet\Drawing();
29
        $drawing->setName('Test');
30
        $drawing->setDescription('Test');
31
        $root = 'http://www.example.com';
32
        $newdir = __DIR__ . '/../../../data/Reader/HTML';
33
        $stub = 'image.jpg';
34
        $imagePath = "./$stub";
35
        chdir($newdir);
36
        self::assertFileExists($imagePath);
37
        $drawing->setPath($imagePath);
38
        $desc = 'Test <img> tag';
39
        $drawing->setDescription($desc);
40
        $drawing->setHeight(36);
41
        $drawing->setWorksheet($spreadsheet->getActiveSheet());
42
        $drawing->setCoordinates('A1');
43
        $sheet->setCellValue('A2', 'Image Above?');
44
45
        $writer = new Html($spreadsheet);
46
        $writer->setImagesRoot($root);
47
        $html = $writer->generateHTMLAll();
48
        $dom = new DOMDocument();
49
        $dom->loadHTML($html);
50
        $body = $dom->getElementsByTagName('body')[0];
51
        $divs = $body->getElementsByTagName('div');
52
53
        $tabl = $divs[0]->getElementsByTagName('table');
54
        $tbod = $tabl[0]->getElementsByTagName('tbody');
55
        $rows = $tbod[0]->getElementsByTagName('tr');
56
        self::assertCount(2, $rows);
57
58
        $tds = $rows[0]->getElementsByTagName('td');
59
        self::assertCount(1, $tds);
60
        $img = $tds[0]->getElementsByTagName('img');
61
        self::assertCount(1, $img);
62
        self::assertEquals("$root/$stub", $img[0]->getAttribute('src'));
63
        self::assertEquals($desc, $img[0]->getAttribute('alt'));
64
    }
65
}
66