mirror of
https://github.com/PHPOffice/PhpSpreadsheet.git
synced 2026-09-02 13:41:21 +00:00
7c1c896959
Disabled it earlier because its reliance on an external site not under our control was causing problems. URL in spreadsheet is now changed to point to an image in phpspreadsheet.readthedocs.io, which should be more reliable. Test is re-enabled.
43 lines
1.7 KiB
PHP
43 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace PhpOffice\PhpSpreadsheetTests\Reader\Xlsx;
|
|
|
|
use PhpOffice\PhpSpreadsheet\IOFactory;
|
|
use PhpOffice\PhpSpreadsheet\Worksheet\Drawing;
|
|
use PhpOffice\PhpSpreadsheetTests\Reader\Utility\File;
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
class URLImageTest extends TestCase
|
|
{
|
|
public function testURLImageSource(): void
|
|
{
|
|
if (getenv('SKIP_URL_IMAGE_TEST') === '1') {
|
|
self::markTestSkipped('Skipped due to setting of environment variable');
|
|
}
|
|
$filename = realpath(__DIR__ . '/../../../data/Reader/XLSX/urlImage.xlsx');
|
|
self::assertNotFalse($filename);
|
|
$reader = IOFactory::createReader('Xlsx');
|
|
$spreadsheet = $reader->load($filename);
|
|
$worksheet = $spreadsheet->getActiveSheet();
|
|
$collection = $worksheet->getDrawingCollection();
|
|
self::assertCount(1, $collection);
|
|
|
|
foreach ($collection as $drawing) {
|
|
self::assertInstanceOf(Drawing::class, $drawing);
|
|
// Check if the source is a URL or a file path
|
|
self::assertTrue($drawing->getIsURL());
|
|
self::assertSame('https://phpspreadsheet.readthedocs.io/en/latest/topics/images/01-03-filter-icon-1.png', $drawing->getPath());
|
|
$imageContents = file_get_contents($drawing->getPath());
|
|
self::assertNotFalse($imageContents);
|
|
$filePath = tempnam(sys_get_temp_dir(), 'Drawing');
|
|
self::assertNotFalse($filePath);
|
|
self::assertNotFalse(file_put_contents($filePath, $imageContents));
|
|
$mimeType = mime_content_type($filePath);
|
|
unlink($filePath);
|
|
self::assertNotFalse($mimeType);
|
|
$extension = File::mime2ext($mimeType);
|
|
self::assertSame('png', $extension);
|
|
}
|
|
}
|
|
}
|