]> git.mxchange.org Git - friendica-addons.git/blobdiff - dav/SabreDAV/tests/Sabre/DAVACL/PluginUpdatePropertiesTest.php
Initial Release of the calendar plugin
[friendica-addons.git] / dav / SabreDAV / tests / Sabre / DAVACL / PluginUpdatePropertiesTest.php
diff --git a/dav/SabreDAV/tests/Sabre/DAVACL/PluginUpdatePropertiesTest.php b/dav/SabreDAV/tests/Sabre/DAVACL/PluginUpdatePropertiesTest.php
new file mode 100644 (file)
index 0000000..ad0d940
--- /dev/null
@@ -0,0 +1,121 @@
+<?php
+
+require_once 'Sabre/DAVACL/MockPrincipal.php';
+
+class Sabre_DAVACL_PluginUpdatePropertiesTest extends PHPUnit_Framework_TestCase {
+
+    public function testUpdatePropertiesPassthrough() {
+
+        $tree = array(
+            new Sabre_DAV_SimpleCollection('foo'),
+        );
+        $server = new Sabre_DAV_Server($tree);
+        $server->addPlugin(new Sabre_DAVACL_Plugin());
+
+        $result = $server->updateProperties('foo', array(
+            '{DAV:}foo' => 'bar',
+        ));
+
+        $expected = array(
+            'href' => 'foo',
+            '403' => array(
+                '{DAV:}foo' => null,
+            ),
+        );
+
+        $this->assertEquals($expected, $result);
+
+    }
+
+    public function testRemoveGroupMembers() {
+
+        $tree = array(
+            new Sabre_DAVACL_MockPrincipal('foo','foo'),
+        );
+        $server = new Sabre_DAV_Server($tree);
+        $server->addPlugin(new Sabre_DAVACL_Plugin());
+
+        $result = $server->updateProperties('foo', array(
+            '{DAV:}group-member-set' => null,
+        ));
+
+        $expected = array(
+            'href' => 'foo',
+            '200' => array(
+                '{DAV:}group-member-set' => null,
+            ),
+        );
+
+        $this->assertEquals($expected, $result);
+        $this->assertEquals(array(),$tree[0]->getGroupMemberSet());
+
+    }
+
+    public function testSetGroupMembers() {
+
+        $tree = array(
+            new Sabre_DAVACL_MockPrincipal('foo','foo'),
+        );
+        $server = new Sabre_DAV_Server($tree);
+        $server->addPlugin(new Sabre_DAVACL_Plugin());
+
+        $result = $server->updateProperties('foo', array(
+            '{DAV:}group-member-set' => new Sabre_DAV_Property_HrefList(array('bar','baz')),
+        ));
+
+        $expected = array(
+            'href' => 'foo',
+            '200' => array(
+                '{DAV:}group-member-set' => null,
+            ),
+        );
+
+        $this->assertEquals($expected, $result);
+        $this->assertEquals(array('bar','baz'),$tree[0]->getGroupMemberSet());
+
+    }
+
+    /**
+     * @expectedException sabre_DAV_Exception
+     */
+    public function testSetBadValue() {
+
+        $tree = array(
+            new Sabre_DAVACL_MockPrincipal('foo','foo'),
+        );
+        $server = new Sabre_DAV_Server($tree);
+        $server->addPlugin(new Sabre_DAVACL_Plugin());
+
+        $result = $server->updateProperties('foo', array(
+            '{DAV:}group-member-set' => new StdClass(),
+        ));
+
+    }
+
+    public function testSetBadNode() {
+
+        $tree = array(
+            new Sabre_DAV_SimpleCollection('foo'),
+        );
+        $server = new Sabre_DAV_Server($tree);
+        $server->addPlugin(new Sabre_DAVACL_Plugin());
+
+        $result = $server->updateProperties('foo', array(
+            '{DAV:}group-member-set' => new Sabre_DAV_Property_HrefList(array('bar','baz')),
+            '{DAV:}bar' => 'baz',
+        ));
+
+        $expected = array(
+            'href' => 'foo',
+            '403' => array(
+                '{DAV:}group-member-set' => null,
+            ),
+            '424' => array(
+                '{DAV:}bar' => null,
+            ),
+        );
+
+        $this->assertEquals($expected, $result);
+
+    }
+}