write(); $this->assertEquals('', $xmlWriter->getData()); } } /** * Test line element */ public function testLineElement() { $phpWord = new PhpWord(); $section = $phpWord->addSection(); $section->addLine(array('width' => 1000, 'height' => 1000, 'positioning' => 'absolute', 'flip' => true)); $doc = TestHelperDOCX::getDocument($phpWord); $element = "/w:document/w:body/w:p/w:r/w:pict/v:shapetype"; $this->assertTrue($doc->elementExists($element)); } /** * Test shape elements */ public function testShapeElements() { $phpWord = new PhpWord(); $section = $phpWord->addSection(); // Arc $section->addShape( 'arc', array( 'points' => '-90 20', 'frame' => array('width' => 120, 'height' => 120), 'outline' => array('color' => '#333333', 'weight' => 2, 'startArrow' => 'oval', 'endArrow' => 'open'), ) ); // Curve $section->addShape( 'curve', array( 'points' => '1,100 200,1 1,50 200,50', 'connector' => 'elbow', 'outline' => array('color' => '#66cc00', 'weight' => 2, 'dash' => 'dash', 'startArrow' => 'diamond', 'endArrow' => 'block'), ) ); // Line $section->addShape( 'line', array( 'points' => '1,1 150,30', 'outline' => array('color' => '#cc00ff', 'line' => 'thickThin', 'weight' => 3, 'startArrow' => 'oval', 'endArrow' => 'classic', 'endCap' => 'round'), ) ); // Polyline $section->addShape( 'polyline', array( 'points' => '1,30 20,10 55,20 75,10 100,40 115,50, 120,15 200,50', 'outline' => array('color' => '#cc6666', 'weight' => 2, 'startArrow' => 'none', 'endArrow' => 'classic'), ) ); // Rectangle $section->addShape( 'rect', array( 'roundness' => 0.2, 'frame' => array('width' => 100, 'height' => 100, 'left' => 1, 'top' => 1), 'fill' => array('color' => '#FFCC33'), 'outline' => array('color' => '#990000', 'weight' => 1), 'shadow' => array('color' => '#EEEEEE', 'offset' => '3pt,3pt'), ) ); // Oval $section->addShape( 'oval', array( 'frame' => array('width' => 100, 'height' => 70, 'left' => 1, 'top' => 1), 'fill' => array('color' => '#33CC99'), 'outline' => array('color' => '#333333', 'weight' => 2), 'extrusion' => array('type' => 'perspective', 'color' => '#EEEEEE'), ) ); $doc = TestHelperDOCX::getDocument($phpWord); $elements = array('arc', 'curve', 'line', 'polyline', 'roundrect', 'oval'); foreach ($elements as $element) { $path = "/w:document/w:body/w:p/w:r/w:pict/v:{$element}"; $this->assertTrue($doc->elementExists($path)); } } /** * Test shape elements */ public function testChartElement() { $phpWord = new PhpWord(); $section = $phpWord->addSection(); $chartTypes = array('pie', 'doughnut', 'bar', 'line', 'area', 'scatter', 'radar'); $categories = array('A', 'B', 'C', 'D', 'E'); $series1 = array(1, 3, 2, 5, 4); foreach ($chartTypes as $chartType) { $section->addChart($chartType, $categories, $series1); } $doc = TestHelperDOCX::getDocument($phpWord); $index = 0; foreach ($chartTypes as $chartType) { $index++; $file = "word/charts/chart{$index}.xml"; $path = "/c:chartSpace/c:chart/c:plotArea/c:{$chartType}Chart"; $this->assertTrue($doc->elementExists($path, $file)); } } }