Completed
Push — master ( 15abdf...98d178 )
by Mark
418:16 queued 353:14
created

ReadBlankCellsTest::testXlsxLoadWithNoBlankCells()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 18
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 13
nc 1
nop 1
dl 0
loc 18
rs 9.8333
c 0
b 0
f 0
1
<?php
2
3
namespace PhpOffice\PhpSpreadsheetTests\Functional;
4
5
use PhpOffice\PhpSpreadsheet\Reader\IReadFilter;
6
use PhpOffice\PhpSpreadsheet\Spreadsheet;
7
8
class ReadBlankCellsTest extends AbstractFunctional
9
{
10
11
    public function providerSheetFormat()
12
    {
13
        return [
14
            ['Xlsx'],
15
            ['Xls'],
16
            // ['Ods'], // Broken. Requires fix in Ods reader.
17
            // ['Csv'], // never reads blank cells
18
            // ['Html'], // never reads blank cells
19
        ];
20
    }
21
22
    /**
23
     * Test generate file with some empty cells
24
     *
25
     * @dataProvider providerSheetFormat
26
     *
27
     * @param array $arrayData
28
     * @param mixed $format
29
     */
30
    public function testXlsxLoadWithNoBlankCells($format)
31
    {
32
        $spreadsheet = new Spreadsheet();
33
        $spreadsheet->getActiveSheet()->getCell('B2')->setValue('');
34
        $spreadsheet->getActiveSheet()->getCell('C1')->setValue('C1');
35
        $spreadsheet->getActiveSheet()->getCell('C3')->setValue('C3');
36
37
        $reloadedSpreadsheet = $this->writeAndReload($spreadsheet, $format);
38
        $this->assertTrue($reloadedSpreadsheet->getActiveSheet()->getCellCollection()->has('B2'));
39
        $this->assertFalse($reloadedSpreadsheet->getActiveSheet()->getCellCollection()->has('C2'));
40
        $this->assertTrue($reloadedSpreadsheet->getActiveSheet()->getCellCollection()->has('C3'));
41
42
        $reloadedSpreadsheet = $this->writeAndReload($spreadsheet, $format, function($reader) {
43
            $reader->setReadEmptyCells(false);
44
        });
45
        $this->assertFalse($reloadedSpreadsheet->getActiveSheet()->getCellCollection()->has('B2'));
46
        $this->assertFalse($reloadedSpreadsheet->getActiveSheet()->getCellCollection()->has('C2'));
47
        $this->assertTrue($reloadedSpreadsheet->getActiveSheet()->getCellCollection()->has('C3'));
48
    }
49
50
}
51