Skip to content

Commit 53d926d

Browse files
committed
Additional Tests
1 parent 2fd3ac5 commit 53d926d

File tree

4 files changed

+66
-0
lines changed

4 files changed

+66
-0
lines changed

tests/PhpSpreadsheetTests/Functional/ReadBlankCellsTest.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,20 @@ public function testLoadDontReadEmptyCells(): void
4848
$reloadedSpreadsheet->disconnectWorksheets();
4949
}
5050

51+
/**
52+
* Test load file ignoring empty cells.
53+
*/
54+
public function testLoadDontReadEmptyCellsFlag(): void
55+
{
56+
$filename = 'tests/data/Reader/XLSX/blankcell.xlsx';
57+
$reader = new Xlsx();
58+
$reloadedSpreadsheet = $reader->load($filename, Xlsx::IGNORE_EMPTY_CELLS);
59+
self::assertFalse($reloadedSpreadsheet->getActiveSheet()->getCellCollection()->has('B2'));
60+
self::assertFalse($reloadedSpreadsheet->getActiveSheet()->getCellCollection()->has('C2'));
61+
self::assertTrue($reloadedSpreadsheet->getActiveSheet()->getCellCollection()->has('C3'));
62+
$reloadedSpreadsheet->disconnectWorksheets();
63+
}
64+
5165
/**
5266
* Test generate file with some empty cells.
5367
*/

tests/PhpSpreadsheetTests/Reader/CreateBlankSheetIfNoneReadTest.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,4 +53,17 @@ public static function providerIdentify(): array
5353
['samples/templates/excel2003.xml', 'Xml', Reader\Xml::class],
5454
];
5555
}
56+
57+
public function testUsingFlage(): void
58+
{
59+
$file = 'samples/templates/26template.xlsx';
60+
$reader = IOFactory::createReaderForFile($file);
61+
$sheetlist = ['Unknown sheetname'];
62+
$reader->setLoadSheetsOnly($sheetlist);
63+
$spreadsheet = $reader->load($file, Reader\BaseReader::CREATE_BLANK_SHEET_IF_NONE_READ);
64+
$sheet = $spreadsheet->getActiveSheet();
65+
self::assertSame('Worksheet', $sheet->getTitle());
66+
self::assertCount(1, $spreadsheet->getAllSheets());
67+
$spreadsheet->disconnectWorksheets();
68+
}
5669
}

tests/PhpSpreadsheetTests/Reader/Csv/BinderTest.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ public function testLoadFromString(): void
3434

3535
$reader2 = new Csv();
3636
$reader2->setValueBinder(new StringValueBinder());
37+
self::assertInstanceOf(StringValueBinder::class, $reader2->getValueBinder());
3738
$spreadsheet2 = $reader2->loadSpreadsheetFromString($data);
3839
$sheet2 = $spreadsheet2->getActiveSheet();
3940
$sheet2->getCell('A3')->setValueExplicit(7, DataType::TYPE_STRING);

tests/PhpSpreadsheetTests/Reader/Xlsx/URLImageTest.php

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,38 @@ public function testURLImageSourceAllowed(): void
4545
$spreadsheet->disconnectWorksheets();
4646
}
4747

48+
public function testURLImageSourceAllowedFlag(): void
49+
{
50+
if (getenv('SKIP_URL_IMAGE_TEST') === '1') {
51+
self::markTestSkipped('Skipped due to setting of environment variable');
52+
}
53+
$filename = realpath(__DIR__ . '/../../../data/Reader/XLSX/urlImage.xlsx');
54+
self::assertNotFalse($filename);
55+
$reader = IOFactory::createReader('Xlsx');
56+
$spreadsheet = $reader->load($filename, XlsxReader::ALLOW_EXTERNAL_IMAGES);
57+
$worksheet = $spreadsheet->getActiveSheet();
58+
$collection = $worksheet->getDrawingCollection();
59+
self::assertCount(1, $collection);
60+
61+
foreach ($collection as $drawing) {
62+
self::assertInstanceOf(Drawing::class, $drawing);
63+
// Check if the source is a URL or a file path
64+
self::assertTrue($drawing->getIsURL());
65+
self::assertSame('https://phpspreadsheet.readthedocs.io/en/latest/topics/images/01-03-filter-icon-1.png', $drawing->getPath());
66+
self::assertSame(IMAGETYPE_PNG, $drawing->getType());
67+
self::assertSame(84, $drawing->getWidth());
68+
self::assertSame(44, $drawing->getHeight());
69+
}
70+
$spreadsheet->disconnectWorksheets();
71+
}
72+
4873
public function testURLImageSourceNotAllowed(): void
4974
{
5075
$filename = realpath(__DIR__ . '/../../../data/Reader/XLSX/urlImage.xlsx');
5176
self::assertNotFalse($filename);
5277
$reader = IOFactory::createReader('Xlsx');
5378
$reader->setAllowExternalImages(false);
79+
self::assertFalse($reader->getAllowExternalImages());
5480
$spreadsheet = $reader->load($filename);
5581
$worksheet = $spreadsheet->getActiveSheet();
5682
$collection = $worksheet->getDrawingCollection();
@@ -87,6 +113,18 @@ public function testURLImageSourceNotFoundNotAllowed(): void
87113
$spreadsheet->disconnectWorksheets();
88114
}
89115

116+
public function testURLImageSourceNotFoundNotAllowedFlag(): void
117+
{
118+
$filename = realpath(__DIR__ . '/../../../data/Reader/XLSX/urlImage.notfound.xlsx');
119+
self::assertNotFalse($filename);
120+
$reader = IOFactory::createReader('Xlsx');
121+
$spreadsheet = $reader->load($filename, XlsxReader::DONT_ALLOW_EXTERNAL_IMAGES);
122+
$worksheet = $spreadsheet->getActiveSheet();
123+
$collection = $worksheet->getDrawingCollection();
124+
self::assertCount(0, $collection);
125+
$spreadsheet->disconnectWorksheets();
126+
}
127+
90128
public function testURLImageSourceBadProtocol(): void
91129
{
92130
$filename = realpath(__DIR__ . '/../../../data/Reader/XLSX/urlImage.bad.dontuse');

0 commit comments

Comments
 (0)