xref: /plugin/davcal/vendor/sabre/dav/tests/Sabre/DAVACL/PluginUpdatePropertiesTest.php (revision a1a3b6794e0e143a4a8b51d3185ce2d339be61ab)
1*a1a3b679SAndreas Boehler<?php
2*a1a3b679SAndreas Boehler
3*a1a3b679SAndreas Boehlernamespace Sabre\DAVACL;
4*a1a3b679SAndreas Boehler
5*a1a3b679SAndreas Boehleruse Sabre\DAV;
6*a1a3b679SAndreas Boehleruse Sabre\HTTP;
7*a1a3b679SAndreas Boehler
8*a1a3b679SAndreas Boehler
9*a1a3b679SAndreas Boehlerrequire_once 'Sabre/DAVACL/MockPrincipal.php';
10*a1a3b679SAndreas Boehler
11*a1a3b679SAndreas Boehlerclass PluginUpdatePropertiesTest extends \PHPUnit_Framework_TestCase {
12*a1a3b679SAndreas Boehler
13*a1a3b679SAndreas Boehler    function testUpdatePropertiesPassthrough() {
14*a1a3b679SAndreas Boehler
15*a1a3b679SAndreas Boehler        $tree = array(
16*a1a3b679SAndreas Boehler            new DAV\SimpleCollection('foo'),
17*a1a3b679SAndreas Boehler        );
18*a1a3b679SAndreas Boehler        $server = new DAV\Server($tree);
19*a1a3b679SAndreas Boehler        $server->addPlugin(new Plugin());
20*a1a3b679SAndreas Boehler
21*a1a3b679SAndreas Boehler        $result = $server->updateProperties('foo', array(
22*a1a3b679SAndreas Boehler            '{DAV:}foo' => 'bar',
23*a1a3b679SAndreas Boehler        ));
24*a1a3b679SAndreas Boehler
25*a1a3b679SAndreas Boehler        $expected = array(
26*a1a3b679SAndreas Boehler            '{DAV:}foo' => 403,
27*a1a3b679SAndreas Boehler        );
28*a1a3b679SAndreas Boehler
29*a1a3b679SAndreas Boehler        $this->assertEquals($expected, $result);
30*a1a3b679SAndreas Boehler
31*a1a3b679SAndreas Boehler    }
32*a1a3b679SAndreas Boehler
33*a1a3b679SAndreas Boehler    function testRemoveGroupMembers() {
34*a1a3b679SAndreas Boehler
35*a1a3b679SAndreas Boehler        $tree = array(
36*a1a3b679SAndreas Boehler            new MockPrincipal('foo','foo'),
37*a1a3b679SAndreas Boehler        );
38*a1a3b679SAndreas Boehler        $server = new DAV\Server($tree);
39*a1a3b679SAndreas Boehler        $server->addPlugin(new Plugin());
40*a1a3b679SAndreas Boehler
41*a1a3b679SAndreas Boehler        $result = $server->updateProperties('foo', array(
42*a1a3b679SAndreas Boehler            '{DAV:}group-member-set' => null,
43*a1a3b679SAndreas Boehler        ));
44*a1a3b679SAndreas Boehler
45*a1a3b679SAndreas Boehler        $expected = array(
46*a1a3b679SAndreas Boehler            '{DAV:}group-member-set' => 204
47*a1a3b679SAndreas Boehler        );
48*a1a3b679SAndreas Boehler
49*a1a3b679SAndreas Boehler        $this->assertEquals($expected, $result);
50*a1a3b679SAndreas Boehler        $this->assertEquals(array(),$tree[0]->getGroupMemberSet());
51*a1a3b679SAndreas Boehler
52*a1a3b679SAndreas Boehler    }
53*a1a3b679SAndreas Boehler
54*a1a3b679SAndreas Boehler    function testSetGroupMembers() {
55*a1a3b679SAndreas Boehler
56*a1a3b679SAndreas Boehler        $tree = [
57*a1a3b679SAndreas Boehler            new MockPrincipal('foo','foo'),
58*a1a3b679SAndreas Boehler        ];
59*a1a3b679SAndreas Boehler        $server = new DAV\Server($tree);
60*a1a3b679SAndreas Boehler        $server->addPlugin(new Plugin());
61*a1a3b679SAndreas Boehler
62*a1a3b679SAndreas Boehler        $result = $server->updateProperties('foo', [
63*a1a3b679SAndreas Boehler            '{DAV:}group-member-set' => new DAV\Xml\Property\Href(['/bar','/baz'], true),
64*a1a3b679SAndreas Boehler        ]);
65*a1a3b679SAndreas Boehler
66*a1a3b679SAndreas Boehler        $expected = [
67*a1a3b679SAndreas Boehler            '{DAV:}group-member-set' => 200
68*a1a3b679SAndreas Boehler        ];
69*a1a3b679SAndreas Boehler
70*a1a3b679SAndreas Boehler        $this->assertEquals($expected, $result);
71*a1a3b679SAndreas Boehler        $this->assertEquals(['bar', 'baz'],$tree[0]->getGroupMemberSet());
72*a1a3b679SAndreas Boehler
73*a1a3b679SAndreas Boehler    }
74*a1a3b679SAndreas Boehler
75*a1a3b679SAndreas Boehler    /**
76*a1a3b679SAndreas Boehler     * @expectedException Sabre\DAV\Exception
77*a1a3b679SAndreas Boehler     */
78*a1a3b679SAndreas Boehler    function testSetBadValue() {
79*a1a3b679SAndreas Boehler
80*a1a3b679SAndreas Boehler        $tree = array(
81*a1a3b679SAndreas Boehler            new MockPrincipal('foo','foo'),
82*a1a3b679SAndreas Boehler        );
83*a1a3b679SAndreas Boehler        $server = new DAV\Server($tree);
84*a1a3b679SAndreas Boehler        $server->addPlugin(new Plugin());
85*a1a3b679SAndreas Boehler
86*a1a3b679SAndreas Boehler        $result = $server->updateProperties('foo', array(
87*a1a3b679SAndreas Boehler            '{DAV:}group-member-set' => new \StdClass(),
88*a1a3b679SAndreas Boehler        ));
89*a1a3b679SAndreas Boehler
90*a1a3b679SAndreas Boehler    }
91*a1a3b679SAndreas Boehler
92*a1a3b679SAndreas Boehler    function testSetBadNode() {
93*a1a3b679SAndreas Boehler
94*a1a3b679SAndreas Boehler        $tree = [
95*a1a3b679SAndreas Boehler            new DAV\SimpleCollection('foo'),
96*a1a3b679SAndreas Boehler        ];
97*a1a3b679SAndreas Boehler        $server = new DAV\Server($tree);
98*a1a3b679SAndreas Boehler        $server->addPlugin(new Plugin());
99*a1a3b679SAndreas Boehler
100*a1a3b679SAndreas Boehler        $result = $server->updateProperties('foo', [
101*a1a3b679SAndreas Boehler            '{DAV:}group-member-set' => new DAV\Xml\Property\Href(['/bar','/baz'],false),
102*a1a3b679SAndreas Boehler        ]);
103*a1a3b679SAndreas Boehler
104*a1a3b679SAndreas Boehler        $expected = [
105*a1a3b679SAndreas Boehler            '{DAV:}group-member-set' => 403,
106*a1a3b679SAndreas Boehler        ];
107*a1a3b679SAndreas Boehler
108*a1a3b679SAndreas Boehler        $this->assertEquals($expected, $result);
109*a1a3b679SAndreas Boehler
110*a1a3b679SAndreas Boehler    }
111*a1a3b679SAndreas Boehler}
112