public function testSchemeColors() { // Mock Pre $mockSchemeColorAccent1 = $this->getMockForAbstractClass('PhpOffice\\PhpPresentation\\Style\\SchemeColor'); $mockSchemeColorAccent1->setValue('accent1'); $mockSchemeColorAccent1->setRGB('ABCDEF'); $mockSchemeColorNew = $this->getMockForAbstractClass('PhpOffice\\PhpPresentation\\Style\\SchemeColor'); $mockSchemeColorNew->setValue('new'); $mockSchemeColorNew->setRGB('ABCDEF'); $object = new SlideMaster(); $this->assertInternalType('array', $object->getAllSchemeColors()); $this->assertCount(12, $object->getAllSchemeColors()); // Add idem value $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Slide\\SlideMaster', $object->addSchemeColor($mockSchemeColorAccent1)); $this->assertCount(12, $object->getAllSchemeColors()); // Add new value $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Slide\\SlideMaster', $object->addSchemeColor($mockSchemeColorNew)); $this->assertCount(13, $object->getAllSchemeColors()); }
/** * @param string $sPart * @param SlideMaster $oSlideMaster */ private function loadTheme($sPart, SlideMaster $oSlideMaster) { $xmlReader = new XMLReader(); if ($xmlReader->getDomFromString($sPart)) { $oElements = $xmlReader->getElements('/a:theme/a:themeElements/a:clrScheme/*'); if ($oElements) { foreach ($oElements as $oElement) { $oSchemeColor = new SchemeColor(); $oSchemeColor->setValue(str_replace('a:', '', $oElement->tagName)); $colorElement = $xmlReader->getElement('*', $oElement); if ($colorElement) { if ($colorElement->hasAttribute('lastClr')) { $oSchemeColor->setRGB($colorElement->getAttribute('lastClr')); } elseif ($colorElement->hasAttribute('val')) { $oSchemeColor->setRGB($colorElement->getAttribute('val')); } } $oSlideMaster->addSchemeColor($oSchemeColor); } } } }