Skip to content

Commit 84d6d98

Browse files
committed
Unit tests for correctly handling hidden merged cells in Readers
1 parent 8ecf69a commit 84d6d98

File tree

6 files changed

+144
-0
lines changed

6 files changed

+144
-0
lines changed
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
<?php
2+
3+
namespace PhpOffice\PhpSpreadsheetTests\Reader\Ods;
4+
5+
use PhpOffice\PhpSpreadsheet\Reader\Ods;
6+
use PhpOffice\PhpSpreadsheet\Spreadsheet;
7+
use PHPUnit\Framework\TestCase;
8+
9+
class HiddenMergeCellsTest extends TestCase
10+
{
11+
/**
12+
* @var Spreadsheet
13+
*/
14+
private $spreadsheet;
15+
16+
protected function setup(): void
17+
{
18+
$filename = 'tests/data/Reader/Ods/HiddenMergeCellsTest.ods';
19+
$reader = new Ods();
20+
$this->spreadsheet = $reader->load($filename);
21+
}
22+
23+
public function testHiddenMergeCells(): void
24+
{
25+
$c2InMergeRange = $this->spreadsheet->getActiveSheet()->getCell('C2')->isInMergeRange();
26+
self::assertTrue($c2InMergeRange);
27+
$a2InMergeRange = $this->spreadsheet->getActiveSheet()->getCell('A2')->isInMergeRange();
28+
self::assertTrue($a2InMergeRange);
29+
$a2MergeRangeValue = $this->spreadsheet->getActiveSheet()->getCell('A2')->isMergeRangeValueCell();
30+
self::assertTrue($a2MergeRangeValue);
31+
32+
$cellArray = $this->spreadsheet->getActiveSheet()->rangeToArray('A2:C2');
33+
self::assertSame([[12, 4, 3]], $cellArray);
34+
}
35+
36+
public function testUnmergeHiddenMergeCells(): void
37+
{
38+
$this->spreadsheet->getActiveSheet()->unmergeCells('A2:C2');
39+
40+
$c2InMergeRange = $this->spreadsheet->getActiveSheet()->getCell('C2')->isInMergeRange();
41+
self::assertFalse($c2InMergeRange);
42+
$a2InMergeRange = $this->spreadsheet->getActiveSheet()->getCell('A2')->isInMergeRange();
43+
self::assertFalse($a2InMergeRange);
44+
45+
$cellArray = $this->spreadsheet->getActiveSheet()->rangeToArray('A2:C2', null, false, false, false);
46+
self::assertSame([[12, '=6-B1', '=A2/B2']], $cellArray);
47+
}
48+
}
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
<?php
2+
3+
namespace PhpOffice\PhpSpreadsheetTests\Reader\Xls;
4+
5+
use PhpOffice\PhpSpreadsheet\Reader\Xls;
6+
use PhpOffice\PhpSpreadsheet\Spreadsheet;
7+
use PHPUnit\Framework\TestCase;
8+
9+
class HiddenMergeCellsTest extends TestCase
10+
{
11+
/**
12+
* @var Spreadsheet
13+
*/
14+
private $spreadsheet;
15+
16+
protected function setup(): void
17+
{
18+
$filename = 'tests/data/Reader/XLS/HiddenMergeCellsTest.xls';
19+
$reader = new Xls();
20+
$this->spreadsheet = $reader->load($filename);
21+
}
22+
23+
public function testHiddenMergeCells(): void
24+
{
25+
$c2InMergeRange = $this->spreadsheet->getActiveSheet()->getCell('C2')->isInMergeRange();
26+
self::assertTrue($c2InMergeRange);
27+
$a2InMergeRange = $this->spreadsheet->getActiveSheet()->getCell('A2')->isInMergeRange();
28+
self::assertTrue($a2InMergeRange);
29+
$a2MergeRangeValue = $this->spreadsheet->getActiveSheet()->getCell('A2')->isMergeRangeValueCell();
30+
self::assertTrue($a2MergeRangeValue);
31+
32+
$cellArray = $this->spreadsheet->getActiveSheet()->rangeToArray('A2:C2');
33+
self::assertSame([[12, 4, 3]], $cellArray);
34+
}
35+
36+
public function testUnmergeHiddenMergeCells(): void
37+
{
38+
$this->spreadsheet->getActiveSheet()->unmergeCells('A2:C2');
39+
40+
$c2InMergeRange = $this->spreadsheet->getActiveSheet()->getCell('C2')->isInMergeRange();
41+
self::assertFalse($c2InMergeRange);
42+
$a2InMergeRange = $this->spreadsheet->getActiveSheet()->getCell('A2')->isInMergeRange();
43+
self::assertFalse($a2InMergeRange);
44+
45+
$cellArray = $this->spreadsheet->getActiveSheet()->rangeToArray('A2:C2', null, false, false, false);
46+
self::assertSame([[12, '=6-B1', '=A2/B2']], $cellArray);
47+
}
48+
}
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
<?php
2+
3+
namespace PhpOffice\PhpSpreadsheetTests\Reader\Xlsx;
4+
5+
use PhpOffice\PhpSpreadsheet\Reader\Xlsx;
6+
use PhpOffice\PhpSpreadsheet\Spreadsheet;
7+
use PHPUnit\Framework\TestCase;
8+
9+
class HiddenMergeCellsTest extends TestCase
10+
{
11+
/**
12+
* @var Spreadsheet
13+
*/
14+
private $spreadsheet;
15+
16+
protected function setup(): void
17+
{
18+
$filename = 'tests/data/Reader/XLSX/HiddenMergeCellsTest.xlsx';
19+
$reader = new Xlsx();
20+
$this->spreadsheet = $reader->load($filename);
21+
}
22+
23+
public function testHiddenMergeCells(): void
24+
{
25+
$c2InMergeRange = $this->spreadsheet->getActiveSheet()->getCell('C2')->isInMergeRange();
26+
self::assertTrue($c2InMergeRange);
27+
$a2InMergeRange = $this->spreadsheet->getActiveSheet()->getCell('A2')->isInMergeRange();
28+
self::assertTrue($a2InMergeRange);
29+
$a2MergeRangeValue = $this->spreadsheet->getActiveSheet()->getCell('A2')->isMergeRangeValueCell();
30+
self::assertTrue($a2MergeRangeValue);
31+
32+
$cellArray = $this->spreadsheet->getActiveSheet()->rangeToArray('A2:C2');
33+
self::assertSame([[12, 4, 3]], $cellArray);
34+
}
35+
36+
public function testUnmergeHiddenMergeCells(): void
37+
{
38+
$this->spreadsheet->getActiveSheet()->unmergeCells('A2:C2');
39+
40+
$c2InMergeRange = $this->spreadsheet->getActiveSheet()->getCell('C2')->isInMergeRange();
41+
self::assertFalse($c2InMergeRange);
42+
$a2InMergeRange = $this->spreadsheet->getActiveSheet()->getCell('A2')->isInMergeRange();
43+
self::assertFalse($a2InMergeRange);
44+
45+
$cellArray = $this->spreadsheet->getActiveSheet()->rangeToArray('A2:C2', null, false, false, false);
46+
self::assertSame([[12, '=6-B1', '=A2/B2']], $cellArray);
47+
}
48+
}
7.86 KB
Binary file not shown.
5.5 KB
Binary file not shown.
4.47 KB
Binary file not shown.

0 commit comments

Comments
 (0)