aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/sabre/dav/tests/Sabre/DAV/XMLUtilTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/sabre/dav/tests/Sabre/DAV/XMLUtilTest.php')
-rw-r--r--vendor/sabre/dav/tests/Sabre/DAV/XMLUtilTest.php284
1 files changed, 284 insertions, 0 deletions
diff --git a/vendor/sabre/dav/tests/Sabre/DAV/XMLUtilTest.php b/vendor/sabre/dav/tests/Sabre/DAV/XMLUtilTest.php
new file mode 100644
index 000000000..1d2bfd133
--- /dev/null
+++ b/vendor/sabre/dav/tests/Sabre/DAV/XMLUtilTest.php
@@ -0,0 +1,284 @@
+<?php
+
+namespace Sabre\DAV;
+
+class XMLUtilTest extends \PHPUnit_Framework_TestCase {
+
+ function testToClarkNotation() {
+
+ $dom = new \DOMDocument();
+ $dom->loadXML('<?xml version="1.0"?><test1 xmlns="http://www.example.org/">Testdoc</test1>');
+
+ $this->assertEquals(
+ '{http://www.example.org/}test1',
+ XMLUtil::toClarkNotation($dom->firstChild)
+ );
+
+ }
+
+ function testToClarkNotation2() {
+
+ $dom = new \DOMDocument();
+ $dom->loadXML('<?xml version="1.0"?><s:test1 xmlns:s="http://www.example.org/">Testdoc</s:test1>');
+
+ $this->assertEquals(
+ '{http://www.example.org/}test1',
+ XMLUtil::toClarkNotation($dom->firstChild)
+ );
+
+ }
+
+ function testToClarkNotationDAVNamespace() {
+
+ $dom = new \DOMDocument();
+ $dom->loadXML('<?xml version="1.0"?><s:test1 xmlns:s="urn:DAV">Testdoc</s:test1>');
+
+ $this->assertEquals(
+ '{DAV:}test1',
+ XMLUtil::toClarkNotation($dom->firstChild)
+ );
+
+ }
+
+ function testToClarkNotationNoElem() {
+
+ $dom = new \DOMDocument();
+ $dom->loadXML('<?xml version="1.0"?><s:test1 xmlns:s="urn:DAV">Testdoc</s:test1>');
+
+ $this->assertNull(
+ XMLUtil::toClarkNotation($dom->firstChild->firstChild)
+ );
+
+ }
+
+ function testConvertDAVNamespace() {
+
+ $xml='<?xml version="1.0"?><document xmlns="DAV:">blablabla</document>';
+ $this->assertEquals(
+ '<?xml version="1.0"?><document xmlns="urn:DAV">blablabla</document>',
+ XMLUtil::convertDAVNamespace($xml)
+ );
+
+ }
+
+ function testConvertDAVNamespace2() {
+
+ $xml='<?xml version="1.0"?><s:document xmlns:s="DAV:">blablabla</s:document>';
+ $this->assertEquals(
+ '<?xml version="1.0"?><s:document xmlns:s="urn:DAV">blablabla</s:document>',
+ XMLUtil::convertDAVNamespace($xml)
+ );
+
+ }
+
+ function testConvertDAVNamespace3() {
+
+ $xml='<?xml version="1.0"?><s:document xmlns="http://bla" xmlns:s="DAV:" xmlns:z="http://othernamespace">blablabla</s:document>';
+ $this->assertEquals(
+ '<?xml version="1.0"?><s:document xmlns="http://bla" xmlns:s="urn:DAV" xmlns:z="http://othernamespace">blablabla</s:document>',
+ XMLUtil::convertDAVNamespace($xml)
+ );
+
+ }
+
+ function testConvertDAVNamespace4() {
+
+ $xml='<?xml version="1.0"?><document xmlns=\'DAV:\'>blablabla</document>';
+ $this->assertEquals(
+ '<?xml version="1.0"?><document xmlns=\'urn:DAV\'>blablabla</document>',
+ XMLUtil::convertDAVNamespace($xml)
+ );
+
+ }
+
+ function testConvertDAVNamespaceMixedQuotes() {
+
+ $xml='<?xml version="1.0"?><document xmlns=\'DAV:" xmlns="Another attribute\'>blablabla</document>';
+ $this->assertEquals(
+ $xml,
+ XMLUtil::convertDAVNamespace($xml)
+ );
+
+ }
+
+ /**
+ * @depends testConvertDAVNamespace
+ */
+ function testLoadDOMDocument() {
+
+ $xml='<?xml version="1.0"?><document></document>';
+ $dom = XMLUtil::loadDOMDocument($xml);
+ $this->assertTrue($dom instanceof \DOMDocument);
+
+ }
+
+ /**
+ * @depends testLoadDOMDocument
+ * @expectedException Sabre\DAV\Exception\BadRequest
+ */
+ function testLoadDOMDocumentEmpty() {
+
+ XMLUtil::loadDOMDocument('');
+
+ }
+
+ /**
+ * @expectedException Sabre\DAV\Exception\BadRequest
+ * @depends testConvertDAVNamespace
+ */
+ function testLoadDOMDocumentInvalid() {
+
+ $xml='<?xml version="1.0"?><document></docu';
+ $dom = XMLUtil::loadDOMDocument($xml);
+
+ }
+
+ /**
+ * @depends testLoadDOMDocument
+ */
+ function testLoadDOMDocumentUTF16() {
+
+ $xml='<?xml version="1.0" encoding="UTF-16"?><root xmlns="DAV:">blabla</root>';
+ $xml = iconv('UTF-8','UTF-16LE',$xml);
+ $dom = XMLUtil::loadDOMDocument($xml);
+ $this->assertEquals('blabla',$dom->firstChild->nodeValue);
+
+ }
+
+
+ function testParseProperties() {
+
+ $xml='<?xml version="1.0"?>
+<root xmlns="DAV:">
+ <prop>
+ <displayname>Calendars</displayname>
+ </prop>
+</root>';
+
+ $dom = XMLUtil::loadDOMDocument($xml);
+ $properties = XMLUtil::parseProperties($dom->firstChild);
+
+ $this->assertEquals(array(
+ '{DAV:}displayname' => 'Calendars',
+ ), $properties);
+
+
+
+ }
+
+ /**
+ * @depends testParseProperties
+ */
+ function testParsePropertiesEmpty() {
+
+ $xml='<?xml version="1.0"?>
+<root xmlns="DAV:" xmlns:s="http://www.rooftopsolutions.nl/example">
+ <prop>
+ <displayname>Calendars</displayname>
+ </prop>
+ <prop>
+ <s:example />
+ </prop>
+</root>';
+
+ $dom = XMLUtil::loadDOMDocument($xml);
+ $properties = XMLUtil::parseProperties($dom->firstChild);
+
+ $this->assertEquals(array(
+ '{DAV:}displayname' => 'Calendars',
+ '{http://www.rooftopsolutions.nl/example}example' => null
+ ), $properties);
+
+ }
+
+
+ /**
+ * @depends testParseProperties
+ */
+ function testParsePropertiesComplex() {
+
+ $xml='<?xml version="1.0"?>
+<root xmlns="DAV:">
+ <prop>
+ <displayname>Calendars</displayname>
+ </prop>
+ <prop>
+ <someprop>Complex value <b>right here</b></someprop>
+ </prop>
+</root>';
+
+ $dom = XMLUtil::loadDOMDocument($xml);
+ $properties = XMLUtil::parseProperties($dom->firstChild);
+
+ $this->assertEquals(array(
+ '{DAV:}displayname' => 'Calendars',
+ '{DAV:}someprop' => 'Complex value right here',
+ ), $properties);
+
+ }
+
+
+ /**
+ * @depends testParseProperties
+ */
+ function testParsePropertiesNoProperties() {
+
+ $xml='<?xml version="1.0"?>
+<root xmlns="DAV:">
+ <prop>
+ </prop>
+</root>';
+
+ $dom = XMLUtil::loadDOMDocument($xml);
+ $properties = XMLUtil::parseProperties($dom->firstChild);
+
+ $this->assertEquals(array(), $properties);
+
+ }
+
+ function testParsePropertiesMapHref() {
+
+ $xml='<?xml version="1.0"?>
+<root xmlns="DAV:">
+ <prop>
+ <displayname>Calendars</displayname>
+ </prop>
+ <prop>
+ <someprop><href>http://sabredav.org/</href></someprop>
+ </prop>
+</root>';
+
+ $dom = XMLUtil::loadDOMDocument($xml);
+ $properties = XMLUtil::parseProperties($dom->firstChild,array('{DAV:}someprop'=>'Sabre\\DAV\\Property\\Href'));
+
+ $this->assertEquals(array(
+ '{DAV:}displayname' => 'Calendars',
+ '{DAV:}someprop' => new Property\Href('http://sabredav.org/',false),
+ ), $properties);
+
+ }
+
+ function testParseClarkNotation() {
+
+ $this->assertEquals(array(
+ 'DAV:',
+ 'foo',
+ ), XMLUtil::parseClarkNotation('{DAV:}foo'));
+
+ $this->assertEquals(array(
+ 'http://example.org/ns/bla',
+ 'bar-soap',
+ ), XMLUtil::parseClarkNotation('{http://example.org/ns/bla}bar-soap'));
+ }
+
+ /**
+ * @expectedException InvalidArgumentException
+ */
+ function testParseClarkNotationFail() {
+
+ XMLUtil::parseClarkNotation('}foo');
+
+ }
+
+}
+