]> git.mxchange.org Git - friendica-addons.git/blob - dav/SabreDAV/tests/Sabre/DAVACL/SimplePluginTest.php
removed community home addon
[friendica-addons.git] / dav / SabreDAV / tests / Sabre / DAVACL / SimplePluginTest.php
1 <?php
2
3 require_once 'Sabre/DAV/Auth/MockBackend.php';
4 require_once 'Sabre/DAVACL/MockPrincipal.php';
5 require_once 'Sabre/DAVACL/MockACLNode.php';
6
7 class Sabre_DAVACL_SimplePluginTest extends PHPUnit_Framework_TestCase {
8
9     function testValues() {
10
11         $aclPlugin = new Sabre_DAVACL_Plugin();
12         $this->assertEquals('acl',$aclPlugin->getPluginName());
13         $this->assertEquals(array('access-control'), $aclPlugin->getFeatures());
14
15         $this->assertEquals(
16             array(
17                 '{DAV:}expand-property',
18                 '{DAV:}principal-property-search',
19                 '{DAV:}principal-search-property-set'
20             ),
21             $aclPlugin->getSupportedReportSet(''));
22
23         $this->assertEquals(array('ACL'), $aclPlugin->getMethods(''));
24
25     }
26
27     function testGetFlatPrivilegeSet() {
28
29         $expected = array(
30             '{DAV:}all' => array(
31                 'privilege' => '{DAV:}all',
32                 'abstract' => true,
33                 'aggregates' => array(
34                     '{DAV:}read',
35                     '{DAV:}write',
36                 ),
37                 'concrete' => null,
38             ),
39             '{DAV:}read' => array(
40                 'privilege' => '{DAV:}read',
41                 'abstract' => false,
42                 'aggregates' => array(
43                     '{DAV:}read-acl',
44                     '{DAV:}read-current-user-privilege-set',
45                 ),
46                 'concrete' => '{DAV:}read',
47             ),
48             '{DAV:}read-acl' => array(
49                 'privilege' => '{DAV:}read-acl',
50                 'abstract' => true,
51                 'aggregates' => array(),
52                 'concrete' => '{DAV:}read',
53             ),
54             '{DAV:}read-current-user-privilege-set' => array(
55                 'privilege' => '{DAV:}read-current-user-privilege-set',
56                 'abstract' => true,
57                 'aggregates' => array(),
58                 'concrete' => '{DAV:}read',
59             ),
60             '{DAV:}write' => array(
61                 'privilege' => '{DAV:}write',
62                 'abstract' => false,
63                 'aggregates' => array(
64                     '{DAV:}write-acl',
65                     '{DAV:}write-properties',
66                     '{DAV:}write-content',
67                     '{DAV:}bind',
68                     '{DAV:}unbind',
69                     '{DAV:}unlock',
70                 ),
71                 'concrete' => '{DAV:}write',
72             ),
73             '{DAV:}write-acl' => array(
74                 'privilege' => '{DAV:}write-acl',
75                 'abstract' => true,
76                 'aggregates' => array(),
77                 'concrete' => '{DAV:}write',
78             ),
79             '{DAV:}write-properties' => array(
80                 'privilege' => '{DAV:}write-properties',
81                 'abstract' => true,
82                 'aggregates' => array(),
83                 'concrete' => '{DAV:}write',
84             ),
85             '{DAV:}write-content' => array(
86                 'privilege' => '{DAV:}write-content',
87                 'abstract' => true,
88                 'aggregates' => array(),
89                 'concrete' => '{DAV:}write',
90             ),
91             '{DAV:}unlock' => array(
92                 'privilege' => '{DAV:}unlock',
93                 'abstract' => true,
94                 'aggregates' => array(),
95                 'concrete' => '{DAV:}write',
96             ),
97             '{DAV:}bind' => array(
98                 'privilege' => '{DAV:}bind',
99                 'abstract' => true,
100                 'aggregates' => array(),
101                 'concrete' => '{DAV:}write',
102             ),
103             '{DAV:}unbind' => array(
104                 'privilege' => '{DAV:}unbind',
105                 'abstract' => true,
106                 'aggregates' => array(),
107                 'concrete' => '{DAV:}write',
108             ),
109
110         );
111
112         $plugin = new Sabre_DAVACL_Plugin();
113         $server = new Sabre_DAV_Server();
114         $server->addPlugin($plugin);
115         $this->assertEquals($expected, $plugin->getFlatPrivilegeSet(''));
116
117     }
118
119     function testCurrentUserPrincipalsNotLoggedIn() {
120
121         $acl = new Sabre_DAVACL_Plugin();
122         $server = new Sabre_DAV_Server();
123         $server->addPlugin($acl);
124
125         $this->assertEquals(array(),$acl->getCurrentUserPrincipals());
126
127     }
128
129     function testCurrentUserPrincipalsSimple() {
130
131         $tree = array(
132
133             new Sabre_DAV_SimpleCollection('principals', array(
134                 new Sabre_DAVACL_MockPrincipal('admin','principals/admin'),
135             ))
136
137         );
138
139         $acl = new Sabre_DAVACL_Plugin();
140         $server = new Sabre_DAV_Server($tree);
141         $server->addPlugin($acl);
142
143         $auth = new Sabre_DAV_Auth_Plugin(new Sabre_DAV_Auth_MockBackend(),'SabreDAV');
144         $server->addPlugin($auth);
145
146         //forcing login
147         $auth->beforeMethod('GET','/');
148
149         $this->assertEquals(array('principals/admin'),$acl->getCurrentUserPrincipals());
150
151     }
152
153     function testCurrentUserPrincipalsGroups() {
154
155         $tree = array(
156
157             new Sabre_DAV_SimpleCollection('principals', array(
158                 new Sabre_DAVACL_MockPrincipal('admin','principals/admin',array('principals/administrators', 'principals/everyone')),
159                 new Sabre_DAVACL_MockPrincipal('administrators','principals/administrators',array('principals/groups'), array('principals/admin')),
160                 new Sabre_DAVACL_MockPrincipal('everyone','principals/everyone',array(), array('principals/admin')),
161                 new Sabre_DAVACL_MockPrincipal('groups','principals/groups',array(), array('principals/administrators')),
162             ))
163
164         );
165
166         $acl = new Sabre_DAVACL_Plugin();
167         $server = new Sabre_DAV_Server($tree);
168         $server->addPlugin($acl);
169
170         $auth = new Sabre_DAV_Auth_Plugin(new Sabre_DAV_Auth_MockBackend(),'SabreDAV');
171         $server->addPlugin($auth);
172
173         //forcing login
174         $auth->beforeMethod('GET','/');
175
176         $expected = array(
177             'principals/admin',
178             'principals/administrators',
179             'principals/everyone',
180             'principals/groups',
181         );
182
183         $this->assertEquals($expected,$acl->getCurrentUserPrincipals());
184
185     }
186
187     function testGetACL() {
188
189         $acl = array(
190             array(
191                 'principal' => 'principals/admin',
192                 'privilege' => '{DAV:}read',
193             ),
194             array(
195                 'principal' => 'principals/admin',
196                 'privilege' => '{DAV:}write',
197             ),
198         );
199
200
201         $tree = array(
202             new Sabre_DAVACL_MockACLNode('foo',$acl),
203         );
204
205         $server = new Sabre_DAV_Server($tree);
206         $aclPlugin = new Sabre_DAVACL_Plugin();
207         $server->addPlugin($aclPlugin);
208
209         $this->assertEquals($acl,$aclPlugin->getACL('foo'));
210
211     }
212
213     function testGetCurrentUserPrivilegeSet() {
214
215         $acl = array(
216             array(
217                 'principal' => 'principals/admin',
218                 'privilege' => '{DAV:}read',
219             ),
220             array(
221                 'principal' => 'principals/user1',
222                 'privilege' => '{DAV:}read',
223             ),
224             array(
225                 'principal' => 'principals/admin',
226                 'privilege' => '{DAV:}write',
227             ),
228         );
229
230
231         $tree = array(
232             new Sabre_DAVACL_MockACLNode('foo',$acl),
233
234             new Sabre_DAV_SimpleCollection('principals', array(
235                 new Sabre_DAVACL_MockPrincipal('admin','principals/admin'),
236             )),
237
238         );
239
240         $server = new Sabre_DAV_Server($tree);
241         $aclPlugin = new Sabre_DAVACL_Plugin();
242         $server->addPlugin($aclPlugin);
243
244         $auth = new Sabre_DAV_Auth_Plugin(new Sabre_DAV_Auth_MockBackend(),'SabreDAV');
245         $server->addPlugin($auth);
246
247         //forcing login
248         $auth->beforeMethod('GET','/');
249
250         $expected = array(
251             '{DAV:}write',
252             '{DAV:}write-acl',
253             '{DAV:}write-properties',
254             '{DAV:}write-content',
255             '{DAV:}bind',
256             '{DAV:}unbind',
257             '{DAV:}unlock',
258             '{DAV:}read',
259             '{DAV:}read-acl',
260             '{DAV:}read-current-user-privilege-set',
261         );
262
263         $this->assertEquals($expected,$aclPlugin->getCurrentUserPrivilegeSet('foo'));
264
265     }
266
267     function testCheckPrivileges() {
268
269         $acl = array(
270             array(
271                 'principal' => 'principals/admin',
272                 'privilege' => '{DAV:}read',
273             ),
274             array(
275                 'principal' => 'principals/user1',
276                 'privilege' => '{DAV:}read',
277             ),
278             array(
279                 'principal' => 'principals/admin',
280                 'privilege' => '{DAV:}write',
281             ),
282         );
283
284
285         $tree = array(
286             new Sabre_DAVACL_MockACLNode('foo',$acl),
287
288             new Sabre_DAV_SimpleCollection('principals', array(
289                 new Sabre_DAVACL_MockPrincipal('admin','principals/admin'),
290             )),
291
292         );
293
294         $server = new Sabre_DAV_Server($tree);
295         $aclPlugin = new Sabre_DAVACL_Plugin();
296         $server->addPlugin($aclPlugin);
297
298         $auth = new Sabre_DAV_Auth_Plugin(new Sabre_DAV_Auth_MockBackend(),'SabreDAV');
299         $server->addPlugin($auth);
300
301         //forcing login
302         //$auth->beforeMethod('GET','/');
303
304         $this->assertFalse($aclPlugin->checkPrivileges('foo', array('{DAV:}read'), Sabre_DAVACL_Plugin::R_PARENT, false));
305
306     }
307 }
308
309
310
311