|
20 | 20 | use DOMXPath;
|
21 | 21 | use PhpOffice\PhpWord\PhpWord;
|
22 | 22 | use PhpOffice\PhpWord\SimpleType\VerticalJc;
|
| 23 | +use PhpOffice\PhpWord\Style; |
23 | 24 | use PhpOffice\PhpWordTests\Writer\HTML\Helper;
|
24 | 25 | use PHPUnit\Framework\TestCase;
|
25 | 26 |
|
@@ -199,4 +200,35 @@ public function testWriteTableCellVAlign(): void
|
199 | 200 | $cell3Style = $cell3Query->item(0)->attributes->getNamedItem('style');
|
200 | 201 | self::assertNull($cell3Style);
|
201 | 202 | }
|
| 203 | + |
| 204 | + public function testWriteTableCellVMerge(): void |
| 205 | + { |
| 206 | + $phpWord = new PhpWord(); |
| 207 | + $section = $phpWord->addSection(); |
| 208 | + |
| 209 | + $table = $section->addTable(); |
| 210 | + |
| 211 | + $cell = $table->addRow()->addCell(); |
| 212 | + $cell->addText('text'); |
| 213 | + $cell->getStyle()->setVMerge(Style\Cell::VMERGE_RESTART); |
| 214 | + |
| 215 | + $cell = $table->addRow()->addCell(); |
| 216 | + $cell->getStyle()->setVMerge(Style\Cell::VMERGE_CONTINUE); |
| 217 | + |
| 218 | + $cell = $table->addRow()->addCell(); |
| 219 | + $cell->addText('no vMerge'); |
| 220 | + $cell->getStyle()->setVMerge(Style\Cell::VMERGE_CONTINUE); |
| 221 | + $cell->getStyle()->setVMerge(); |
| 222 | + |
| 223 | + $dom = Helper::getAsHTML($phpWord); |
| 224 | + $xpath = new DOMXPath($dom); |
| 225 | + |
| 226 | + $cell1Style = Helper::getTextContent($xpath, '//table/tr[1]/td[1]', 'rowspan'); |
| 227 | + self::assertSame('2', $cell1Style); |
| 228 | + |
| 229 | + $cell3Query = $xpath->query('//table/tr[3]/td[1]'); |
| 230 | + self::assertNotFalse($cell3Query); |
| 231 | + self::assertCount(1, $cell3Query); |
| 232 | + self::assertNull($cell3Query->item(0)->attributes->getNamedItem('rowspan')); |
| 233 | + } |
202 | 234 | }
|
0 commit comments