Completed
Push — master ( 4f6d4a...97a80f )
by Adrien
11:15 queued 03:45
created

ImagesRootTest::testImagesRoot()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 42
Code Lines 37

Duplication

Lines 0
Ratio 0 %

Importance

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