assertAttributeEquals($oSection->getStyle(), 'style', $oSection); } /** * Get elements */ public function testGetElements() { $oSection = new Section(0); $this->assertAttributeEquals($oSection->getElements(), 'elements', $oSection); } /** * Get footer */ public function testGetFooters() { $oSection = new Section(0); $this->assertAttributeEquals($oSection->getFooters(), 'footers', $oSection); } /** * Get headers */ public function testGetHeaders() { $oSection = new Section(0); $this->assertAttributeEquals($oSection->getHeaders(), 'headers', $oSection); } /** * Set settings */ public function testSetStyle() { $expected = 'landscape'; $object = new Section(0); $object->setStyle(array('orientation' => $expected, 'foo' => null)); $this->assertEquals($expected, $object->getStyle()->getOrientation()); } /** * Add elements */ public function testAddElements() { $objectSource = __DIR__ . '/../_files/documents/reader.docx'; $imageSource = __DIR__ . '/../_files/images/PhpWord.png'; // $imageUrl = 'http://php.net//images/logos/php-med-trans-light.gif'; $section = new Section(0); $section->setPhpWord(new PhpWord()); $section->addText(utf8_decode(htmlspecialchars('ä', ENT_COMPAT, 'UTF-8'))); $section->addLink(utf8_decode('http://äää.com'), utf8_decode(htmlspecialchars('ä', ENT_COMPAT, 'UTF-8'))); $section->addTextBreak(); $section->addPageBreak(); $section->addTable(); $section->addListItem(utf8_decode(htmlspecialchars('ä', ENT_COMPAT, 'UTF-8'))); $section->addObject($objectSource); $section->addImage($imageSource); $section->addTitle(utf8_decode(htmlspecialchars('ä', ENT_COMPAT, 'UTF-8')), 1); $section->addTextRun(); $section->addFootnote(); $section->addCheckBox(utf8_decode(htmlspecialchars('chkä', ENT_COMPAT, 'UTF-8')), utf8_decode(htmlspecialchars('Contentä', ENT_COMPAT, 'UTF-8'))); $section->addTOC(); $elementCollection = $section->getElements(); $elementTypes = array( 'Text', 'Link', 'TextBreak', 'PageBreak', 'Table', 'ListItem', 'Object', 'Image', 'Title', 'TextRun', 'Footnote', 'CheckBox', 'TOC', ); $elmCount = 0; foreach ($elementTypes as $elementType) { $this->assertInstanceOf("PhpOffice\\PhpWord\\Element\\{$elementType}", $elementCollection[$elmCount]); $elmCount++; } } /** * Test add object exception * * @expectedException \PhpOffice\PhpWord\Exception\InvalidObjectException */ public function testAddObjectException() { $source = __DIR__ . '/_files/xsl/passthrough.xsl'; $section = new Section(0); $section->addObject($source); } /** * Add title with predefined style */ public function testAddTitleWithStyle() { Style::addTitleStyle(1, array('size' => 14)); $section = new Section(0); $section->setPhpWord(new PhpWord()); $section->addTitle(htmlspecialchars('Test', ENT_COMPAT, 'UTF-8'), 1); $elementCollection = $section->getElements(); $this->assertInstanceOf('PhpOffice\\PhpWord\\Element\\Title', $elementCollection[0]); } /** * Create header footer */ public function testCreateHeaderFooter() { $object = new Section(0); $elements = array('Header', 'Footer'); foreach ($elements as $element) { $method = "create{$element}"; $this->assertInstanceOf("PhpOffice\\PhpWord\\Element\\{$element}", $object->$method()); } $this->assertFalse($object->hasDifferentFirstPage()); } /** * Add header has different first page */ public function testHasDifferentFirstPage() { $object = new Section(1); $header = $object->addHeader(); $header->setType(Header::FIRST); $this->assertTrue($object->hasDifferentFirstPage()); } /** * Add header exception * * @expectedException Exception * @expectedExceptionMesssage Invalid header/footer type. */ public function testAddHeaderException() { $object = new Section(1); $object->addHeader('ODD'); } }