]> git.mxchange.org Git - friendica-addons.git/blobdiff - dav/SabreDAV/tests/Sabre/DAVACL/Property/PrincipalTest.php
Initial Release of the calendar plugin
[friendica-addons.git] / dav / SabreDAV / tests / Sabre / DAVACL / Property / PrincipalTest.php
diff --git a/dav/SabreDAV/tests/Sabre/DAVACL/Property/PrincipalTest.php b/dav/SabreDAV/tests/Sabre/DAVACL/Property/PrincipalTest.php
new file mode 100644 (file)
index 0000000..3f8592e
--- /dev/null
@@ -0,0 +1,176 @@
+<?php
+
+class Sabre_DAVACL_Property_PrincipalTest extends PHPUnit_Framework_TestCase {
+
+    function testSimple() {
+
+        $principal = new Sabre_DAVACL_Property_Principal(Sabre_DAVACL_Property_Principal::UNAUTHENTICATED);
+        $this->assertEquals(Sabre_DAVACL_Property_Principal::UNAUTHENTICATED, $principal->getType());
+        $this->assertNull($principal->getHref());
+
+        $principal = new Sabre_DAVACL_Property_Principal(Sabre_DAVACL_Property_Principal::AUTHENTICATED);
+        $this->assertEquals(Sabre_DAVACL_Property_Principal::AUTHENTICATED, $principal->getType());
+        $this->assertNull($principal->getHref());
+
+        $principal = new Sabre_DAVACL_Property_Principal(Sabre_DAVACL_Property_Principal::HREF,'admin');
+        $this->assertEquals(Sabre_DAVACL_Property_Principal::HREF, $principal->getType());
+        $this->assertEquals('admin',$principal->getHref());
+
+    }
+
+    /**
+     * @depends testSimple
+     * @expectedException Sabre_DAV_Exception
+     */
+    function testNoHref() {
+
+        $principal = new Sabre_DAVACL_Property_Principal(Sabre_DAVACL_Property_Principal::HREF);
+
+    }
+
+    /**
+     * @depends testSimple
+     */
+    function testSerializeUnAuthenticated() {
+
+        $prin = new Sabre_DAVACL_Property_Principal(Sabre_DAVACL_Property_Principal::UNAUTHENTICATED);
+
+        $doc = new DOMDocument();
+        $root = $doc->createElement('d:principal');
+        $root->setAttribute('xmlns:d','DAV:');
+
+        $doc->appendChild($root);
+        $objectTree = new Sabre_DAV_ObjectTree(new Sabre_DAV_SimpleCollection('rootdir'));
+        $server = new Sabre_DAV_Server($objectTree);
+
+        $prin->serialize($server, $root);
+
+        $xml = $doc->saveXML();
+
+        $this->assertEquals(
+'<?xml version="1.0"?>
+<d:principal xmlns:d="DAV:">' .
+'<d:unauthenticated/>' .
+'</d:principal>
+', $xml);
+
+    }
+
+
+    /**
+     * @depends testSerializeUnAuthenticated
+     */
+    function testSerializeAuthenticated() {
+
+        $prin = new Sabre_DAVACL_Property_Principal(Sabre_DAVACL_Property_Principal::AUTHENTICATED);
+
+        $doc = new DOMDocument();
+        $root = $doc->createElement('d:principal');
+        $root->setAttribute('xmlns:d','DAV:');
+
+        $doc->appendChild($root);
+        $objectTree = new Sabre_DAV_ObjectTree(new Sabre_DAV_SimpleCollection('rootdir'));
+        $server = new Sabre_DAV_Server($objectTree);
+
+        $prin->serialize($server, $root);
+
+        $xml = $doc->saveXML();
+
+        $this->assertEquals(
+'<?xml version="1.0"?>
+<d:principal xmlns:d="DAV:">' .
+'<d:authenticated/>' .
+'</d:principal>
+', $xml);
+
+    }
+
+
+    /**
+     * @depends testSerializeUnAuthenticated
+     */
+    function testSerializeHref() {
+
+        $prin = new Sabre_DAVACL_Property_Principal(Sabre_DAVACL_Property_Principal::HREF,'principals/admin');
+
+        $doc = new DOMDocument();
+        $root = $doc->createElement('d:principal');
+        $root->setAttribute('xmlns:d','DAV:');
+
+        $doc->appendChild($root);
+        $objectTree = new Sabre_DAV_ObjectTree(new Sabre_DAV_SimpleCollection('rootdir'));
+        $server = new Sabre_DAV_Server($objectTree);
+
+        $prin->serialize($server, $root);
+
+        $xml = $doc->saveXML();
+
+        $this->assertEquals(
+'<?xml version="1.0"?>
+<d:principal xmlns:d="DAV:">' .
+'<d:href>/principals/admin</d:href>' .
+'</d:principal>
+', $xml);
+
+    }
+
+    function testUnserializeHref() {
+
+        $xml = '<?xml version="1.0"?>
+<d:principal xmlns:d="DAV:">' .
+'<d:href>/principals/admin</d:href>' .
+'</d:principal>';
+
+        $dom = Sabre_DAV_XMLUtil::loadDOMDocument($xml);
+
+        $principal = Sabre_DAVACL_Property_Principal::unserialize($dom->firstChild);
+        $this->assertEquals(Sabre_DAVACL_Property_Principal::HREF, $principal->getType());
+        $this->assertEquals('/principals/admin', $principal->getHref());
+
+    }
+
+    function testUnserializeAuthenticated() {
+
+        $xml = '<?xml version="1.0"?>
+<d:principal xmlns:d="DAV:">' .
+'  <d:authenticated />' .
+'</d:principal>';
+
+        $dom = Sabre_DAV_XMLUtil::loadDOMDocument($xml);
+
+        $principal = Sabre_DAVACL_Property_Principal::unserialize($dom->firstChild);
+        $this->assertEquals(Sabre_DAVACL_Property_Principal::AUTHENTICATED, $principal->getType());
+
+    }
+
+    function testUnserializeUnauthenticated() {
+
+        $xml = '<?xml version="1.0"?>
+<d:principal xmlns:d="DAV:">' .
+'  <d:unauthenticated />' .
+'</d:principal>';
+
+        $dom = Sabre_DAV_XMLUtil::loadDOMDocument($xml);
+
+        $principal = Sabre_DAVACL_Property_Principal::unserialize($dom->firstChild);
+        $this->assertEquals(Sabre_DAVACL_Property_Principal::UNAUTHENTICATED, $principal->getType());
+
+    }
+
+    /**
+     * @expectedException Sabre_DAV_Exception_BadRequest
+     */
+    function testUnserializeUnknown() {
+
+        $xml = '<?xml version="1.0"?>
+<d:principal xmlns:d="DAV:">' .
+'  <d:foo />' .
+'</d:principal>';
+
+        $dom = Sabre_DAV_XMLUtil::loadDOMDocument($xml);
+
+        Sabre_DAVACL_Property_Principal::unserialize($dom->firstChild);
+
+    }
+
+}