Test node value '; $phpWord = $this->getDocumentFromString(['document' => $documentXml]); $elements = $phpWord->getSection(0)->getElements(); self::assertInstanceOf('PhpOffice\PhpWord\Element\TextRun', $elements[0]); self::assertInstanceOf('PhpOffice\PhpWord\Element\Text', $elements[0]->getElement(0)); $text = $elements[0]; self::assertEquals('Test node value', trim($text->getElement(0)->getText())); } /** * Test reading of textbreak. */ public function testReadTextBreak(): void { $documentXml = ' test string '; $phpWord = $this->getDocumentFromString(['document' => $documentXml]); $elements = $phpWord->getSection(0)->getElements(); self::assertInstanceOf('PhpOffice\PhpWord\Element\TextRun', $elements[0]); /** @var \PhpOffice\PhpWord\Element\TextRun $textRun */ $textRun = $elements[0]; self::assertInstanceOf('PhpOffice\PhpWord\Element\TextBreak', $textRun->getElement(0)); self::assertInstanceOf('PhpOffice\PhpWord\Element\Text', $textRun->getElement(1)); self::assertEquals('test string', $textRun->getElement(1)->getText()); } /** * Test reading content inside w:smartTag. */ public function testSmartTag(): void { $documentXml = ' test string '; $phpWord = $this->getDocumentFromString(['document' => $documentXml]); $elements = $phpWord->getSection(0)->getElements(); self::assertInstanceOf('PhpOffice\PhpWord\Element\TextRun', $elements[0]); /** @var \PhpOffice\PhpWord\Element\TextRun $textRun */ $textRun = $elements[0]; self::assertInstanceOf('PhpOffice\PhpWord\Element\Text', $textRun->getElement(0)); self::assertEquals('test string', $textRun->getElement(0)->getText()); } /** * Test reading of textbreak. */ public function testReadListItemRunWithFormatting(): void { $documentXml = ' Two with bold '; $phpWord = $this->getDocumentFromString(['document' => $documentXml]); $sections = $phpWord->getSection(0); self::assertNull($sections->getElement(999)); self::assertInstanceOf('PhpOffice\PhpWord\Element\ListItemRun', $sections->getElement(0)); self::assertEquals(0, $sections->getElement(0)->getDepth()); $listElements = $sections->getElement(0)->getElements(); self::assertInstanceOf('PhpOffice\PhpWord\Element\Text', $listElements[0]); self::assertEquals('Two', $listElements[0]->getText()); self::assertEquals(' with ', $listElements[1]->getText()); self::assertEquals('bold', $listElements[2]->getText()); self::assertTrue($listElements[2]->getFontStyle()->isBold()); } /** * Test reading track changes. */ public function testReadTrackChange(): void { $documentXml = ' One two three '; $phpWord = $this->getDocumentFromString(['document' => $documentXml]); $elements = $phpWord->getSection(0)->getElements(); self::assertInstanceOf('PhpOffice\PhpWord\Element\TextRun', $elements[0]); /** @var \PhpOffice\PhpWord\Element\TextRun $elements */ $textRun = $elements[0]; self::assertEquals('One ', $textRun->getElement(0)->getText()); self::assertEquals('two', $textRun->getElement(1)->getText()); self::assertNotNull($textRun->getElement(1)->getTrackChange()); /** @var \PhpOffice\PhpWord\Element\TrackChange $trackChange */ $trackChange = $textRun->getElement(1)->getTrackChange(); self::assertEquals(TrackChange::DELETED, $trackChange->getChangeType()); self::assertEquals('three', $textRun->getElement(2)->getText()); self::assertNotNull($textRun->getElement(2)->getTrackChange()); /** @var \PhpOffice\PhpWord\Element\TrackChange $trackChange */ $trackChange = $textRun->getElement(2)->getTrackChange(); self::assertEquals(TrackChange::INSERTED, $trackChange->getChangeType()); } /** * Test reading of tab. */ public function testReadTab(): void { $documentXml = ' One Two '; $phpWord = $this->getDocumentFromString(['document' => $documentXml]); $elements = $phpWord->getSection(0)->getElements(); self::assertInstanceOf('PhpOffice\PhpWord\Element\TextRun', $elements[0]); /** @var \PhpOffice\PhpWord\Element\TextRun $textRun */ $textRun = $elements[0]; self::assertInstanceOf('PhpOffice\PhpWord\Element\Text', $textRun->getElement(0)); self::assertEquals('One', $textRun->getElement(0)->getText()); self::assertInstanceOf('PhpOffice\PhpWord\Element\Text', $textRun->getElement(1)); self::assertEquals("\t", $textRun->getElement(1)->getText()); self::assertInstanceOf('PhpOffice\PhpWord\Element\Text', $textRun->getElement(2)); self::assertEquals('Two', $textRun->getElement(2)->getText()); } /** * Test reading Title style. */ public function testReadTitleStyle(): void { $documentXml = ' This is a non formatted title This is a bold title '; $stylesXml = ' '; $phpWord = $this->getDocumentFromString(['document' => $documentXml, 'styles' => $stylesXml]); $elements = $phpWord->getSection(0)->getElements(); self::assertInstanceOf('PhpOffice\PhpWord\Element\Title', $elements[0]); /** @var \PhpOffice\PhpWord\Element\Title $title */ $title = $elements[0]; self::assertEquals('Title', $title->getStyle()); self::assertEquals('This is a non formatted title', $title->getText()); self::assertInstanceOf('PhpOffice\PhpWord\Element\Title', $elements[1]); /** @var \PhpOffice\PhpWord\Element\Title $formattedTitle */ $formattedTitle = $elements[1]; self::assertEquals('Title', $formattedTitle->getStyle()); self::assertInstanceOf('PhpOffice\PhpWord\Element\TextRun', $formattedTitle->getText()); } /** * Test reading Drawing. */ public function testReadDrawing(): void { $documentXml = ' '; $phpWord = $this->getDocumentFromString(['document' => $documentXml]); $elements = $phpWord->getSection(0)->getElements(); self::assertInstanceOf('PhpOffice\PhpWord\Element\TextRun', $elements[0]); } }