ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
ACLTest.php
Go to the documentation of this file.
1<?php
2
4
5use Sabre\DAV;
7use Sabre\HTTP;
8
10
11 function testConstruct() {
12
13 $acl = new Acl([]);
14 $this->assertInstanceOf('Sabre\DAVACL\Xml\Property\ACL', $acl);
15
16 }
17
18 function testSerializeEmpty() {
19
20 $acl = new Acl([]);
21 $xml = (new DAV\Server())->xml->write('{DAV:}root', $acl);
22
23 $expected = '<?xml version="1.0"?>
24<d:root xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns" />';
25
26 $this->assertXmlStringEqualsXmlString($expected, $xml);
27
28 }
29
30 function testSerialize() {
31
32 $privileges = [
33 [
34 'principal' => 'principals/evert',
35 'privilege' => '{DAV:}write',
36 ],
37 [
38 'principal' => 'principals/foo',
39 'privilege' => '{DAV:}read',
40 'protected' => true,
41 ],
42 ];
43
44 $acl = new Acl($privileges);
45 $xml = (new DAV\Server())->xml->write('{DAV:}root', $acl, '/');
46
47 $expected = '<?xml version="1.0"?>
48<d:root xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">
49 <d:ace>
50 <d:principal>
51 <d:href>/principals/evert/</d:href>
52 </d:principal>
53 <d:grant>
54 <d:privilege>
55 <d:write/>
56 </d:privilege>
57 </d:grant>
58 </d:ace>
59 <d:ace>
60 <d:principal>
61 <d:href>/principals/foo/</d:href>
62 </d:principal>
63 <d:grant>
64 <d:privilege>
65 <d:read/>
66 </d:privilege>
67 </d:grant>
68 <d:protected/>
69 </d:ace>
70</d:root>
71';
72 $this->assertXmlStringEqualsXmlString($expected, $xml);
73
74 }
75
77
78 $privileges = [
79 [
80 'principal' => '{DAV:}authenticated',
81 'privilege' => '{DAV:}write',
82 ],
83 [
84 'principal' => '{DAV:}unauthenticated',
85 'privilege' => '{DAV:}write',
86 ],
87 [
88 'principal' => '{DAV:}all',
89 'privilege' => '{DAV:}write',
90 ],
91
92 ];
93
94 $acl = new Acl($privileges);
95 $xml = (new DAV\Server())->xml->write('{DAV:}root', $acl, '/');
96
97 $expected = '<?xml version="1.0"?>
98<d:root xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">
99 <d:ace>
100 <d:principal>
101 <d:authenticated/>
102 </d:principal>
103 <d:grant>
104 <d:privilege>
105 <d:write/>
106 </d:privilege>
107 </d:grant>
108 </d:ace>
109 <d:ace>
110 <d:principal>
111 <d:unauthenticated/>
112 </d:principal>
113 <d:grant>
114 <d:privilege>
115 <d:write/>
116 </d:privilege>
117 </d:grant>
118 </d:ace>
119 <d:ace>
120 <d:principal>
121 <d:all/>
122 </d:principal>
123 <d:grant>
124 <d:privilege>
125 <d:write/>
126 </d:privilege>
127 </d:grant>
128 </d:ace>
129</d:root>
130';
131 $this->assertXmlStringEqualsXmlString($expected, $xml);
132
133 }
134
135 function testUnserialize() {
136
137 $source = '<?xml version="1.0"?>
138<d:root xmlns:d="DAV:">
139 <d:ace>
140 <d:principal>
141 <d:href>/principals/evert/</d:href>
142 </d:principal>
143 <d:grant>
144 <d:privilege>
145 <d:write/>
146 </d:privilege>
147 </d:grant>
148 </d:ace>
149 <d:ace>
150 <d:principal>
151 <d:href>/principals/foo/</d:href>
152 </d:principal>
153 <d:grant>
154 <d:privilege>
155 <d:read/>
156 </d:privilege>
157 </d:grant>
158 <d:protected/>
159 </d:ace>
160</d:root>
161';
162
163 $reader = new \Sabre\Xml\Reader();
164 $reader->elementMap['{DAV:}root'] = 'Sabre\DAVACL\Xml\Property\Acl';
165 $reader->xml($source);
166
167 $result = $reader->parse();
168 $result = $result['value'];
169
170 $this->assertInstanceOf('Sabre\\DAVACL\\Xml\\Property\\Acl', $result);
171
172 $expected = [
173 [
174 'principal' => '/principals/evert/',
175 'protected' => false,
176 'privilege' => '{DAV:}write',
177 ],
178 [
179 'principal' => '/principals/foo/',
180 'protected' => true,
181 'privilege' => '{DAV:}read',
182 ],
183 ];
184
185 $this->assertEquals($expected, $result->getPrivileges());
186
187
188 }
189
194
195 $source = '<?xml version="1.0"?>
196<d:root xmlns:d="DAV:">
197 <d:ace>
198 <d:grant>
199 <d:privilege>
200 <d:write/>
201 </d:privilege>
202 </d:grant>
203 </d:ace>
204</d:root>
205';
206
207
208 $reader = new \Sabre\Xml\Reader();
209 $reader->elementMap['{DAV:}root'] = 'Sabre\DAVACL\Xml\Property\Acl';
210 $reader->xml($source);
211
212 $result = $reader->parse();
213
214 }
215
217
218 $source = '<?xml version="1.0"?>
219<d:root xmlns:d="DAV:">
220 <d:ace>
221 <d:grant>
222 <d:privilege>
223 <d:write/>
224 </d:privilege>
225 </d:grant>
226 <d:principal><d:authenticated /></d:principal>
227 </d:ace>
228 <d:ace>
229 <d:grant>
230 <d:ignoreme />
231 <d:privilege>
232 <d:write/>
233 </d:privilege>
234 </d:grant>
235 <d:principal><d:unauthenticated /></d:principal>
236 </d:ace>
237 <d:ace>
238 <d:grant>
239 <d:privilege>
240 <d:write/>
241 </d:privilege>
242 </d:grant>
243 <d:principal><d:all /></d:principal>
244 </d:ace>
245</d:root>
246';
247
248 $reader = new \Sabre\Xml\Reader();
249 $reader->elementMap['{DAV:}root'] = 'Sabre\DAVACL\Xml\Property\Acl';
250 $reader->xml($source);
251
252 $result = $reader->parse();
253 $result = $result['value'];
254
255 $this->assertInstanceOf('Sabre\\DAVACL\\Xml\\Property\\Acl', $result);
256
257 $expected = [
258 [
259 'principal' => '{DAV:}authenticated',
260 'protected' => false,
261 'privilege' => '{DAV:}write',
262 ],
263 [
264 'principal' => '{DAV:}unauthenticated',
265 'protected' => false,
266 'privilege' => '{DAV:}write',
267 ],
268 [
269 'principal' => '{DAV:}all',
270 'protected' => false,
271 'privilege' => '{DAV:}write',
272 ],
273 ];
274
275 $this->assertEquals($expected, $result->getPrivileges());
276
277 }
278
283
284 $source = '<?xml version="1.0"?>
285<d:root xmlns:d="DAV:">
286 <d:ignore-me />
287 <d:ace>
288 <d:deny>
289 <d:privilege>
290 <d:write/>
291 </d:privilege>
292 </d:deny>
293 <d:principal><d:href>/principals/evert</d:href></d:principal>
294 </d:ace>
295</d:root>
296';
297
298 $reader = new \Sabre\Xml\Reader();
299 $reader->elementMap['{DAV:}root'] = 'Sabre\DAVACL\Xml\Property\Acl';
300 $reader->xml($source);
301
302 $result = $reader->parse();
303
304 }
305
306 function testToHtml() {
307
308 $privileges = [
309 [
310 'principal' => 'principals/evert',
311 'privilege' => '{DAV:}write',
312 ],
313 [
314 'principal' => 'principals/foo',
315 'privilege' => '{http://example.org/ns}read',
316 'protected' => true,
317 ],
318 [
319 'principal' => '{DAV:}authenticated',
320 'privilege' => '{DAV:}write',
321 ],
322 ];
323
324 $acl = new Acl($privileges);
326 '/base/',
327 ['DAV:' => 'd']
328 );
329
330 $expected =
331 '<table>' .
332 '<tr><th>Principal</th><th>Privilege</th><th></th></tr>' .
333 '<tr><td><a href="/base/principals/evert">/base/principals/evert</a></td><td><span title="{DAV:}write">d:write</span></td><td></td></tr>' .
334 '<tr><td><a href="/base/principals/foo">/base/principals/foo</a></td><td><span title="{http://example.org/ns}read">{http://example.org/ns}read</span></td><td>(protected)</td></tr>' .
335 '<tr><td><span title="{DAV:}authenticated">d:authenticated</span></td><td><span title="{DAV:}write">d:write</span></td><td></td></tr>' .
336 '</table>';
337
338 $this->assertEquals($expected, $acl->toHtml($html));
339
340 }
341
342}
$result
$source
Definition: linkback.php:22
An exception for terminatinating execution or to throw for unit testing.
testUnserializeNoPrincipal()
@expectedException Sabre\DAV\Exception\BadRequest
Definition: ACLTest.php:193
testUnserializeDeny()
@expectedException Sabre\DAV\Exception\NotImplemented
Definition: ACLTest.php:282
This class represents the {DAV:}acl property.
Definition: Acl.php:28
This class provides a few utility functions for easily generating HTML for the browser plugin.
Main DAV server class.
Definition: Server.php:23
$html
Definition: example_001.php:87