From 444d0fd77c1c466cb7485d8fbabc4e625d6ab1e5 Mon Sep 17 00:00:00 2001 From: MarkBaker Date: Sat, 26 Feb 2022 21:41:37 +0100 Subject: [PATCH] Unit tests for merge ranges for Ods Reader/Writer --- .../Reader/Ods/MergeRangeTest.php | 30 ++++++++++++++++++ .../Writer/Ods/MergeRangeTest.php | 24 ++++++++++++++ tests/data/Reader/Ods/MergeRangeTest.ods | Bin 0 -> 9075 bytes 3 files changed, 54 insertions(+) create mode 100644 tests/PhpSpreadsheetTests/Reader/Ods/MergeRangeTest.php create mode 100644 tests/PhpSpreadsheetTests/Writer/Ods/MergeRangeTest.php create mode 100644 tests/data/Reader/Ods/MergeRangeTest.ods diff --git a/tests/PhpSpreadsheetTests/Reader/Ods/MergeRangeTest.php b/tests/PhpSpreadsheetTests/Reader/Ods/MergeRangeTest.php new file mode 100644 index 00000000..7280e5d3 --- /dev/null +++ b/tests/PhpSpreadsheetTests/Reader/Ods/MergeRangeTest.php @@ -0,0 +1,30 @@ +spreadsheet = $reader->load($filename); + } + + public function testAutoFilterRange(): void + { + $worksheet = $this->spreadsheet->getActiveSheet(); + + $mergeRanges = $worksheet->getMergeCells(); + self::assertArrayHasKey('B2:C3', $mergeRanges); + } +} diff --git a/tests/PhpSpreadsheetTests/Writer/Ods/MergeRangeTest.php b/tests/PhpSpreadsheetTests/Writer/Ods/MergeRangeTest.php new file mode 100644 index 00000000..30ca6970 --- /dev/null +++ b/tests/PhpSpreadsheetTests/Writer/Ods/MergeRangeTest.php @@ -0,0 +1,24 @@ +getActiveSheet(); + $worksheet->setCellValue('B2', "Merge Range {$mergeRange}"); + $worksheet->mergeCells($mergeRange); + + $reloaded = $this->writeAndReload($spreadsheet, 'Ods'); + + $cell = $reloaded->getActiveSheet()->getCell('B2'); + self::assertTrue($cell->isInMergeRange()); + self::assertSame($mergeRange, $cell->getMergeRange()); + } +} diff --git a/tests/data/Reader/Ods/MergeRangeTest.ods b/tests/data/Reader/Ods/MergeRangeTest.ods new file mode 100644 index 0000000000000000000000000000000000000000..49b3739f2507c8b26cadde15ab3c90590d0b337d GIT binary patch literal 9075 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ᨮSZ%NF}T0*#a@wTT`cvwR6)g<3Cku#Bf6zBUahXY-E z98Fp}z)m<2cQ+mHa!S8uB@rI&=A-mhxlF12De+`f8F7hmy57*R89`{-X|RN6lS5O3 z)Fr~gxE?0=WY3roFK%^*0uqHXmMt?BK(urN%;{Tq32ur!m2b)&*|C>rUC)OpRjw@@AD*9n>%yibfGZi#zyqv~pB?IO+AOX74@3F-RW)DRFw!fE>k_gYiVwTB%v z*2SEOPc6Ntk#ceFKk-&G!@^_NlG_I{3%<3}uZ_D^xb zs}CuKV5mHz+>PZE$I<=rc=x5p*~iEiRi7!+q1=_{^3Ih7{bafLnLATV&3+F;qDQHW zoo9+d$u&L;3cNbqXB9)lR1J_=2r76=V<4ztiRUmY8A$mnXX|nucLu=jvVlN<@=2DzuPw*{NG;R-v9v4q|xuD zk7@o{>HfL@@1B1j1;5`%`~vB_^8I_1Gl}=RwP2e65zh}w_oE>n# zn+Rqc{vFSErTq6Oe=WxUz}Wu+n7%gZbgeUq$$Td;M4qIjiV?w`Z8Jf2i+%bNpSgEs*Aw~zgi td4Eom0QJxNw|{&7$R20R{M`cRf5X!{8n_t20stVv`~fkfv&V3D_di-ex1|68 literal 0 HcmV?d00001