]> git.mxchange.org Git - friendica-addons.git/blob - dav/SabreDAV/tests/Sabre/DAVACL/Property/ACLTest.php
removed community home addon
[friendica-addons.git] / dav / SabreDAV / tests / Sabre / DAVACL / Property / ACLTest.php
1 <?php
2
3 class Sabre_DAVACL_Property_ACLTest extends PHPUnit_Framework_TestCase {
4
5     function testConstruct() {
6
7         $acl = new Sabre_DAVACL_Property_Acl(array());
8
9     }
10
11     function testSerializeEmpty() {
12
13         $dom = new DOMDocument('1.0');
14         $root = $dom->createElementNS('DAV:','d:root');
15
16         $dom->appendChild($root);
17
18         $acl = new Sabre_DAVACL_Property_Acl(array());
19         $acl->serialize(new Sabre_DAV_Server(), $root);
20
21         $xml = $dom->saveXML();
22         $expected = '<?xml version="1.0"?>
23 <d:root xmlns:d="DAV:"/>
24 ';
25         $this->assertEquals($expected, $xml);
26
27     }
28
29     function testSerialize() {
30
31         $dom = new DOMDocument('1.0');
32         $root = $dom->createElementNS('DAV:','d:root');
33
34         $dom->appendChild($root);
35
36         $privileges = array(
37             array(
38                 'principal' => 'principals/evert',
39                 'privilege' => '{DAV:}write',
40                 'uri'       => 'articles',
41             ),
42             array(
43                 'principal' => 'principals/foo',
44                 'privilege' => '{DAV:}read',
45                 'uri'       => 'articles',
46                 'protected' => true,
47             ),
48         );
49
50         $acl = new Sabre_DAVACL_Property_Acl($privileges);
51         $acl->serialize(new Sabre_DAV_Server(), $root);
52
53         $dom->formatOutput = true;
54
55         $xml = $dom->saveXML();
56         $expected = '<?xml version="1.0"?>
57 <d:root xmlns:d="DAV:">
58   <d:ace>
59     <d:principal>
60       <d:href>/principals/evert/</d:href>
61     </d:principal>
62     <d:grant>
63       <d:privilege>
64         <d:write/>
65       </d:privilege>
66     </d:grant>
67   </d:ace>
68   <d:ace>
69     <d:principal>
70       <d:href>/principals/foo/</d:href>
71     </d:principal>
72     <d:grant>
73       <d:privilege>
74         <d:read/>
75       </d:privilege>
76     </d:grant>
77     <d:protected/>
78   </d:ace>
79 </d:root>
80 ';
81         $this->assertEquals($expected, $xml);
82
83     }
84
85     function testSerializeSpecialPrincipals() {
86
87         $dom = new DOMDocument('1.0');
88         $root = $dom->createElementNS('DAV:','d:root');
89
90         $dom->appendChild($root);
91
92         $privileges = array(
93             array(
94                 'principal' => '{DAV:}authenticated',
95                 'privilege' => '{DAV:}write',
96                 'uri'       => 'articles',
97             ),
98             array(
99                 'principal' => '{DAV:}unauthenticated',
100                 'privilege' => '{DAV:}write',
101                 'uri'       => 'articles',
102             ),
103             array(
104                 'principal' => '{DAV:}all',
105                 'privilege' => '{DAV:}write',
106                 'uri'       => 'articles',
107             ),
108
109         );
110
111         $acl = new Sabre_DAVACL_Property_Acl($privileges);
112         $acl->serialize(new Sabre_DAV_Server(), $root);
113
114         $dom->formatOutput = true;
115
116         $xml = $dom->saveXML();
117         $expected = '<?xml version="1.0"?>
118 <d:root xmlns:d="DAV:">
119   <d:ace>
120     <d:principal>
121       <d:authenticated/>
122     </d:principal>
123     <d:grant>
124       <d:privilege>
125         <d:write/>
126       </d:privilege>
127     </d:grant>
128   </d:ace>
129   <d:ace>
130     <d:principal>
131       <d:unauthenticated/>
132     </d:principal>
133     <d:grant>
134       <d:privilege>
135         <d:write/>
136       </d:privilege>
137     </d:grant>
138   </d:ace>
139   <d:ace>
140     <d:principal>
141       <d:all/>
142     </d:principal>
143     <d:grant>
144       <d:privilege>
145         <d:write/>
146       </d:privilege>
147     </d:grant>
148   </d:ace>
149 </d:root>
150 ';
151         $this->assertEquals($expected, $xml);
152
153     }
154
155     function testUnserialize() {
156
157         $source = '<?xml version="1.0"?>
158 <d:root xmlns:d="DAV:">
159   <d:ace>
160     <d:principal>
161       <d:href>/principals/evert/</d:href>
162     </d:principal>
163     <d:grant>
164       <d:privilege>
165         <d:write/>
166       </d:privilege>
167     </d:grant>
168   </d:ace>
169   <d:ace>
170     <d:principal>
171       <d:href>/principals/foo/</d:href>
172     </d:principal>
173     <d:grant>
174       <d:privilege>
175         <d:read/>
176       </d:privilege>
177     </d:grant>
178     <d:protected/>
179   </d:ace>
180 </d:root>
181 ';
182
183         $dom = Sabre_DAV_XMLUtil::loadDOMDocument($source);
184         $result = Sabre_DAVACL_Property_Acl::unserialize($dom->firstChild);
185
186         $this->assertInstanceOf('Sabre_DAVACL_Property_Acl', $result);
187
188         $expected = array(
189             array(
190                 'principal' => '/principals/evert/',
191                 'protected' => false,
192                 'privilege' => '{DAV:}write',
193             ),
194             array(
195                 'principal' => '/principals/foo/',
196                 'protected' => true,
197                 'privilege' => '{DAV:}read',
198             ),
199         );
200
201         $this->assertEquals($expected, $result->getPrivileges());
202
203
204     }
205
206     /**
207      * @expectedException Sabre_DAV_Exception_BadRequest
208      */
209     function testUnserializeNoPrincipal() {
210
211         $source = '<?xml version="1.0"?>
212 <d:root xmlns:d="DAV:">
213   <d:ace>
214     <d:grant>
215       <d:privilege>
216         <d:write/>
217       </d:privilege>
218     </d:grant>
219   </d:ace>
220 </d:root>
221 ';
222
223         $dom = Sabre_DAV_XMLUtil::loadDOMDocument($source);
224         Sabre_DAVACL_Property_Acl::unserialize($dom->firstChild);
225
226     }
227
228     function testUnserializeOtherPrincipal() {
229
230         $source = '<?xml version="1.0"?>
231 <d:root xmlns:d="DAV:">
232   <d:ace>
233     <d:grant>
234       <d:privilege>
235         <d:write/>
236       </d:privilege>
237     </d:grant>
238     <d:principal><d:authenticated /></d:principal>
239   </d:ace>
240   <d:ace>
241     <d:grant>
242       <d:privilege>
243         <d:write/>
244       </d:privilege>
245     </d:grant>
246     <d:principal><d:unauthenticated /></d:principal>
247   </d:ace>
248   <d:ace>
249     <d:grant>
250       <d:privilege>
251         <d:write/>
252       </d:privilege>
253     </d:grant>
254     <d:principal><d:all /></d:principal>
255   </d:ace>
256 </d:root>
257 ';
258
259         $dom = Sabre_DAV_XMLUtil::loadDOMDocument($source);
260         $result = Sabre_DAVACL_Property_Acl::unserialize($dom->firstChild);
261
262         $this->assertInstanceOf('Sabre_DAVACL_Property_Acl', $result);
263
264         $expected = array(
265             array(
266                 'principal' => '{DAV:}authenticated',
267                 'protected' => false,
268                 'privilege' => '{DAV:}write',
269             ),
270             array(
271                 'principal' => '{DAV:}unauthenticated',
272                 'protected' => false,
273                 'privilege' => '{DAV:}write',
274             ),
275             array(
276                 'principal' => '{DAV:}all',
277                 'protected' => false,
278                 'privilege' => '{DAV:}write',
279             ),
280         );
281
282         $this->assertEquals($expected, $result->getPrivileges());
283
284
285     }
286
287     /**
288      * @expectedException Sabre_DAV_Exception_NotImplemented
289      */
290     function testUnserializeDeny() {
291
292         $source = '<?xml version="1.0"?>
293 <d:root xmlns:d="DAV:">
294   <d:ace>
295     <d:deny>
296       <d:privilege>
297         <d:write/>
298       </d:privilege>
299     </d:deny>
300     <d:principal><d:href>/principals/evert</d:href></d:principal>
301   </d:ace>
302 </d:root>
303 ';
304
305         $dom = Sabre_DAV_XMLUtil::loadDOMDocument($source);
306         Sabre_DAVACL_Property_Acl::unserialize($dom->firstChild);
307     }
308
309     /**
310      * @expectedException Sabre_DAV_Exception_BadRequest
311      */
312     function testUnserializeMissingPriv() {
313
314         $source = '<?xml version="1.0"?>
315 <d:root xmlns:d="DAV:">
316   <d:ace>
317     <d:grant>
318       <d:privilege />
319     </d:grant>
320     <d:principal><d:href>/principals/evert</d:href></d:principal>
321   </d:ace>
322 </d:root>
323 ';
324
325         $dom = Sabre_DAV_XMLUtil::loadDOMDocument($source);
326         Sabre_DAVACL_Property_Acl::unserialize($dom->firstChild);
327
328     }
329 }