/** * testExtractLiveProperty * * @param mixed $xml * @param mixed $result * @return void * * @dataProvider provideLivePropertyData */ public function testSerializeProperty($xml, $property) { $xmlTool = new ezcWebdavXmlTool(); $expectedElement = $xmlTool->createDomDocument($xml)->documentElement; $dummyDom = $xmlTool->createDomDocument(); $dummyDomElement = $dummyDom->appendChild($xmlTool->createDomElement($dummyDom, 'prop')); $resultElement = $this->propertyHandler->serializeLiveProperty($property, $dummyDomElement, $xmlTool); $this->assertEquals($expectedElement, $resultElement); }
/** * testExtractLiveProperty * * @param mixed $xml * @param mixed $result * @return void * * @dataProvider provideLivePropertyData */ public function testSerializeProperty($xml, $property) { $xmlTool = new ezcWebdavXmlTool(); $expectedElement = $xmlTool->createDomDocument($xml)->documentElement; $dummyDom = $xmlTool->createDomDocument(); $dummyDomElement = $dummyDom->appendChild($xmlTool->createDomElement($dummyDom, 'prop')); $resultElement = $this->propertyHandler->serializeLiveProperty($property, $dummyDomElement, $xmlTool); // @TODO: This does not validate the XML needs to be refactored! $this->assertDomTreeEquals($expectedElement, $resultElement); }
/** * Returns the property storage for a resource. * * Returns the {@link ezcWebdavPropertyStorage} instance containing the * properties for the resource identified by $path. * * @param string $path * @return ezcWebdavBasicPropertyStorage */ protected function getPropertyStorage($path) { $storagePath = $this->getPropertyStoragePath($path); // If no properties has been stored yet, just return an empty property // storage. if (!is_file($storagePath)) { return new ezcWebdavBasicPropertyStorage(); } // Create handler structure to read properties $handler = new ezcWebdavPropertyHandler($xml = new ezcWebdavXmlTool()); $storage = new ezcWebdavBasicPropertyStorage(); // Read document try { $doc = $xml->createDom(file_get_contents($storagePath)); } catch (ezcWebdavInvalidXmlException $e) { throw new ezcWebdavFileBackendBrokenStorageException("Could not open XML as DOMDocument: '{$storage}'."); } // Get property node from document $properties = $doc->getElementsByTagname('properties')->item(0)->childNodes; // Extract and return properties $handler->extractProperties($properties, $storage); return $storage; }
/** * Serializes an array of ezcWebdavSupportedLockPropertyLockentry elements to XML. * * @param ArrayObject(ezcWebdavSupportedLockPropertyLockentry) $lockEntries * @param DOMDocument $dom To create the returned DOMElements. * @param ezcWebdavXmlTool $xmlTool * @return array(DOMElement) */ protected function serializeLockEntryContent(ArrayObject $lockEntries = null, DOMDocument $dom, ezcWebdavXmlTool $xmlTool) { $lockEntryContentElements = array(); foreach ($lockEntries as $lockEntry) { $lockEntryElement = $xmlTool->createDomElement($dom, 'lockentry'); $lockEntryElement->appendChild($xmlTool->createDomElement($dom, 'lockscope'))->appendChild($xmlTool->createDomElement($dom, $lockEntry->lockScope === ezcWebdavLockRequest::SCOPE_EXCLUSIVE ? 'exclusive' : 'shared')); $lockEntryElement->appendChild($xmlTool->createDomElement($dom, 'locktype'))->appendChild($xmlTool->createDomElement($dom, $lockEntry->lockScope === ezcWebdavLockRequest::TYPE_READ ? 'read' : 'write')); $lockEntryContentElements[] = $lockEntryElement; } return $lockEntryContentElements; }