Failed Conditions
Pull Request — master (#4275)
by Owen
15:27
created

URLImageTest::xtestURLImageSourceNotFound()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 13
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 10
c 1
b 0
f 0
dl 0
loc 13
rs 9.9332
cc 2
nc 2
nop 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace PhpOffice\PhpSpreadsheetTests\Reader\Xlsx;
6
7
use PhpOffice\PhpSpreadsheet\Exception as SpreadsheetException;
8
use PhpOffice\PhpSpreadsheet\IOFactory;
9
use PhpOffice\PhpSpreadsheet\Worksheet\Drawing;
10
use PhpOffice\PhpSpreadsheetTests\Reader\Utility\File;
11
use PHPUnit\Framework\TestCase;
12
13
class URLImageTest extends TestCase
14
{
15
    public function xtestURLImageSource(): void
16
    {
17
        if (getenv('SKIP_URL_IMAGE_TEST') === '1') {
18
            self::markTestSkipped('Skipped due to setting of environment variable');
19
        }
20
        $filename = realpath(__DIR__ . '/../../../data/Reader/XLSX/urlImage.xlsx');
21
        self::assertNotFalse($filename);
22
        $reader = IOFactory::createReader('Xlsx');
23
        $spreadsheet = $reader->load($filename);
24
        $worksheet = $spreadsheet->getActiveSheet();
25
        $collection = $worksheet->getDrawingCollection();
26
        self::assertCount(1, $collection);
27
28
        foreach ($collection as $drawing) {
29
            self::assertInstanceOf(Drawing::class, $drawing);
30
            // Check if the source is a URL or a file path
31
            self::assertTrue($drawing->getIsURL());
32
            self::assertSame('https://phpspreadsheet.readthedocs.io/en/latest/topics/images/01-03-filter-icon-1.png', $drawing->getPath());
33
            self::assertSame(IMAGETYPE_PNG, $drawing->getType());
34
            self::assertSame(84, $drawing->getWidth());
35
            self::assertSame(44, $drawing->getHeight());
36
        }
37
        $spreadsheet->disconnectWorksheets();
38
    }
39
40
    public function xtestURLImageSourceNotFound(): void
41
    {
42
        if (getenv('SKIP_URL_IMAGE_TEST') === '1') {
43
            self::markTestSkipped('Skipped due to setting of environment variable');
44
        }
45
        $filename = realpath(__DIR__ . '/../../../data/Reader/XLSX/urlImage.notfound.xlsx');
46
        self::assertNotFalse($filename);
47
        $reader = IOFactory::createReader('Xlsx');
48
        $spreadsheet = $reader->load($filename);
49
        $worksheet = $spreadsheet->getActiveSheet();
50
        $collection = $worksheet->getDrawingCollection();
51
        self::assertCount(0, $collection);
52
        $spreadsheet->disconnectWorksheets();
53
    }
54
55
    public function testURLImageSourceBadProtocol(): void
56
    {
57
        $filename = realpath(__DIR__ . '/../../../data/Reader/XLSX/urlImage.bad.dontuse');
58
        self::assertNotFalse($filename);
59
        $this->expectException(SpreadsheetException::class);
60
        $this->expectExceptionMessage('Invalid protocol for linked drawing');
61
        $reader = IOFactory::createReader('Xlsx');
62
        $reader->load($filename);
63
    }
64
}
65