|  | 
| 20 | 20 | 
 | 
| 21 | 21 | use DateTime; | 
| 22 | 22 | use DOMDocument; | 
|  | 23 | +use DOMNode; | 
|  | 24 | +use DOMNodeList; | 
| 23 | 25 | use DOMXPath; | 
| 24 | 26 | use PhpOffice\PhpWord\Element\Text as TextElement; | 
| 25 | 27 | use PhpOffice\PhpWord\Element\TextRun; | 
| @@ -200,24 +202,68 @@ public function testWriteTitleTextRun(): void | 
| 200 | 202 |      */ | 
| 201 | 203 |     public function testListItemRun(): void | 
| 202 | 204 |     { | 
| 203 |  | -        $expected1 = 'List item run 1'; | 
| 204 |  | -        $expected2 = 'List item run 1 in bold'; | 
|  | 205 | +        $expected11 = 'List item run 1.1'; | 
|  | 206 | +        $expected11InBold = 'List item run 1.1 in bold'; | 
|  | 207 | +        $expected12 = 'List item run 1.2'; | 
|  | 208 | +        $expected21 = 'List item run 2.1'; | 
|  | 209 | +        $expected22 = 'List item run 2.2'; | 
|  | 210 | +        $expected31 = 'List item run 3.1'; | 
|  | 211 | +        $expected13 = 'List item run 1.3'; | 
| 205 | 212 | 
 | 
| 206 | 213 |         $phpWord = new PhpWord(); | 
| 207 | 214 |         $section = $phpWord->addSection(); | 
| 208 | 215 | 
 | 
| 209 |  | -        $listItemRun = $section->addListItemRun(0, null, 'MyParagraphStyle'); | 
| 210 |  | -        $listItemRun->addText($expected1); | 
| 211 |  | -        $listItemRun->addText($expected2, ['bold' => true]); | 
|  | 216 | +        $listItemRun11 = $section->addListItemRun(0, null, 'MyParagraphStyle'); | 
|  | 217 | +        $listItemRun11->addText($expected11); | 
|  | 218 | +        $listItemRun11->addText($expected11InBold, ['bold' => true]); | 
|  | 219 | + | 
|  | 220 | +        $listItemRun12 = $section->addListItemRun(0); | 
|  | 221 | +        $listItemRun12->addText($expected12); | 
|  | 222 | + | 
|  | 223 | +        $listItemRun21 = $section->addListItemRun(1); | 
|  | 224 | +        $listItemRun21->addText($expected21); | 
|  | 225 | + | 
|  | 226 | +        $listItemRun22 = $section->addListItemRun(1); | 
|  | 227 | +        $listItemRun22->addText($expected22); | 
|  | 228 | + | 
|  | 229 | +        $listItemRun31 = $section->addListItemRun(2); | 
|  | 230 | +        $listItemRun31->addText($expected31); | 
|  | 231 | + | 
|  | 232 | +        $listItemRun13 = $section->addListItemRun(0); | 
|  | 233 | +        $listItemRun13->addText($expected13); | 
| 212 | 234 | 
 | 
| 213 | 235 |         $htmlWriter = new HTML($phpWord); | 
| 214 | 236 |         $content = $htmlWriter->getContent(); | 
| 215 | 237 | 
 | 
| 216 | 238 |         $dom = new DOMDocument(); | 
| 217 | 239 |         $dom->loadHTML($content); | 
| 218 | 240 | 
 | 
| 219 |  | -        self::assertEquals($expected1, $dom->getElementsByTagName('p')->item(0)->textContent); | 
| 220 |  | -        self::assertEquals($expected2, $dom->getElementsByTagName('p')->item(1)->textContent); | 
|  | 241 | +        $xpath = new DOMXPath($dom); | 
|  | 242 | + | 
|  | 243 | +        /** @var DOMNodeList<DOMNode> $list */ | 
|  | 244 | +        $list = $xpath->query('//body/div/ul/li'); | 
|  | 245 | + | 
|  | 246 | +        $item11 = $list->item(0); | 
|  | 247 | +        $item12 = $list->item(1); | 
|  | 248 | +        $item13 = $list->item(2); | 
|  | 249 | + | 
|  | 250 | +        self::assertEquals($expected11, $item11->childNodes->item(0)->textContent); | 
|  | 251 | +        self::assertEquals('span', $item11->childNodes->item(1)->nodeName); | 
|  | 252 | +        self::assertEquals($expected11InBold, $item11->childNodes->item(1)->textContent); | 
|  | 253 | + | 
|  | 254 | +        self::assertEquals($expected12, $item12->childNodes->item(0)->textContent); | 
|  | 255 | +        self::assertEquals('ul', $item12->childNodes->item(1)->nodeName); | 
|  | 256 | + | 
|  | 257 | +        self::assertEquals($expected21, $item12->childNodes->item(1)->childNodes->item(0)->textContent); | 
|  | 258 | + | 
|  | 259 | +        $item22 = $item12->childNodes->item(1)->childNodes->item(1); | 
|  | 260 | + | 
|  | 261 | +        self::assertEquals($expected22, $item22->childNodes->item(0)->textContent); | 
|  | 262 | +        self::assertEquals('ul', $item22->childNodes->item(1)->nodeName); | 
|  | 263 | + | 
|  | 264 | +        self::assertEquals($expected31, $item22->childNodes->item(1)->childNodes->item(0)->textContent); | 
|  | 265 | + | 
|  | 266 | +        self::assertEquals($expected13, $item13->childNodes->item(0)->textContent); | 
| 221 | 267 |     } | 
| 222 | 268 | 
 | 
| 223 | 269 |     /** | 
|  | 
0 commit comments