3 class Sabre_DAVACL_Property_ACLTest extends PHPUnit_Framework_TestCase {
5 function testConstruct() {
7 $acl = new Sabre_DAVACL_Property_Acl(array());
11 function testSerializeEmpty() {
13 $dom = new DOMDocument('1.0');
14 $root = $dom->createElementNS('DAV:','d:root');
16 $dom->appendChild($root);
18 $acl = new Sabre_DAVACL_Property_Acl(array());
19 $acl->serialize(new Sabre_DAV_Server(), $root);
21 $xml = $dom->saveXML();
22 $expected = '<?xml version="1.0"?>
23 <d:root xmlns:d="DAV:"/>
25 $this->assertEquals($expected, $xml);
29 function testSerialize() {
31 $dom = new DOMDocument('1.0');
32 $root = $dom->createElementNS('DAV:','d:root');
34 $dom->appendChild($root);
38 'principal' => 'principals/evert',
39 'privilege' => '{DAV:}write',
43 'principal' => 'principals/foo',
44 'privilege' => '{DAV:}read',
50 $acl = new Sabre_DAVACL_Property_Acl($privileges);
51 $acl->serialize(new Sabre_DAV_Server(), $root);
53 $dom->formatOutput = true;
55 $xml = $dom->saveXML();
56 $expected = '<?xml version="1.0"?>
57 <d:root xmlns:d="DAV:">
60 <d:href>/principals/evert/</d:href>
70 <d:href>/principals/foo/</d:href>
81 $this->assertEquals($expected, $xml);
85 function testSerializeSpecialPrincipals() {
87 $dom = new DOMDocument('1.0');
88 $root = $dom->createElementNS('DAV:','d:root');
90 $dom->appendChild($root);
94 'principal' => '{DAV:}authenticated',
95 'privilege' => '{DAV:}write',
99 'principal' => '{DAV:}unauthenticated',
100 'privilege' => '{DAV:}write',
104 'principal' => '{DAV:}all',
105 'privilege' => '{DAV:}write',
111 $acl = new Sabre_DAVACL_Property_Acl($privileges);
112 $acl->serialize(new Sabre_DAV_Server(), $root);
114 $dom->formatOutput = true;
116 $xml = $dom->saveXML();
117 $expected = '<?xml version="1.0"?>
118 <d:root xmlns:d="DAV:">
151 $this->assertEquals($expected, $xml);
155 function testUnserialize() {
157 $source = '<?xml version="1.0"?>
158 <d:root xmlns:d="DAV:">
161 <d:href>/principals/evert/</d:href>
171 <d:href>/principals/foo/</d:href>
183 $dom = Sabre_DAV_XMLUtil::loadDOMDocument($source);
184 $result = Sabre_DAVACL_Property_Acl::unserialize($dom->firstChild);
186 $this->assertInstanceOf('Sabre_DAVACL_Property_Acl', $result);
190 'principal' => '/principals/evert/',
191 'protected' => false,
192 'privilege' => '{DAV:}write',
195 'principal' => '/principals/foo/',
197 'privilege' => '{DAV:}read',
201 $this->assertEquals($expected, $result->getPrivileges());
207 * @expectedException Sabre_DAV_Exception_BadRequest
209 function testUnserializeNoPrincipal() {
211 $source = '<?xml version="1.0"?>
212 <d:root xmlns:d="DAV:">
223 $dom = Sabre_DAV_XMLUtil::loadDOMDocument($source);
224 Sabre_DAVACL_Property_Acl::unserialize($dom->firstChild);
228 function testUnserializeOtherPrincipal() {
230 $source = '<?xml version="1.0"?>
231 <d:root xmlns:d="DAV:">
238 <d:principal><d:authenticated /></d:principal>
246 <d:principal><d:unauthenticated /></d:principal>
254 <d:principal><d:all /></d:principal>
259 $dom = Sabre_DAV_XMLUtil::loadDOMDocument($source);
260 $result = Sabre_DAVACL_Property_Acl::unserialize($dom->firstChild);
262 $this->assertInstanceOf('Sabre_DAVACL_Property_Acl', $result);
266 'principal' => '{DAV:}authenticated',
267 'protected' => false,
268 'privilege' => '{DAV:}write',
271 'principal' => '{DAV:}unauthenticated',
272 'protected' => false,
273 'privilege' => '{DAV:}write',
276 'principal' => '{DAV:}all',
277 'protected' => false,
278 'privilege' => '{DAV:}write',
282 $this->assertEquals($expected, $result->getPrivileges());
288 * @expectedException Sabre_DAV_Exception_NotImplemented
290 function testUnserializeDeny() {
292 $source = '<?xml version="1.0"?>
293 <d:root xmlns:d="DAV:">
300 <d:principal><d:href>/principals/evert</d:href></d:principal>
305 $dom = Sabre_DAV_XMLUtil::loadDOMDocument($source);
306 Sabre_DAVACL_Property_Acl::unserialize($dom->firstChild);
310 * @expectedException Sabre_DAV_Exception_BadRequest
312 function testUnserializeMissingPriv() {
314 $source = '<?xml version="1.0"?>
315 <d:root xmlns:d="DAV:">
320 <d:principal><d:href>/principals/evert</d:href></d:principal>
325 $dom = Sabre_DAV_XMLUtil::loadDOMDocument($source);
326 Sabre_DAVACL_Property_Acl::unserialize($dom->firstChild);