3 require_once 'Sabre/DAV/Auth/MockBackend.php';
4 require_once 'Sabre/DAVACL/MockPrincipal.php';
5 require_once 'Sabre/DAVACL/MockACLNode.php';
7 class Sabre_DAVACL_SimplePluginTest extends PHPUnit_Framework_TestCase {
9 function testValues() {
11 $aclPlugin = new Sabre_DAVACL_Plugin();
12 $this->assertEquals('acl',$aclPlugin->getPluginName());
13 $this->assertEquals(array('access-control'), $aclPlugin->getFeatures());
17 '{DAV:}expand-property',
18 '{DAV:}principal-property-search',
19 '{DAV:}principal-search-property-set'
21 $aclPlugin->getSupportedReportSet(''));
23 $this->assertEquals(array('ACL'), $aclPlugin->getMethods(''));
27 function testGetFlatPrivilegeSet() {
31 'privilege' => '{DAV:}all',
33 'aggregates' => array(
39 '{DAV:}read' => array(
40 'privilege' => '{DAV:}read',
42 'aggregates' => array(
44 '{DAV:}read-current-user-privilege-set',
46 'concrete' => '{DAV:}read',
48 '{DAV:}read-acl' => array(
49 'privilege' => '{DAV:}read-acl',
51 'aggregates' => array(),
52 'concrete' => '{DAV:}read',
54 '{DAV:}read-current-user-privilege-set' => array(
55 'privilege' => '{DAV:}read-current-user-privilege-set',
57 'aggregates' => array(),
58 'concrete' => '{DAV:}read',
60 '{DAV:}write' => array(
61 'privilege' => '{DAV:}write',
63 'aggregates' => array(
65 '{DAV:}write-properties',
66 '{DAV:}write-content',
71 'concrete' => '{DAV:}write',
73 '{DAV:}write-acl' => array(
74 'privilege' => '{DAV:}write-acl',
76 'aggregates' => array(),
77 'concrete' => '{DAV:}write',
79 '{DAV:}write-properties' => array(
80 'privilege' => '{DAV:}write-properties',
82 'aggregates' => array(),
83 'concrete' => '{DAV:}write',
85 '{DAV:}write-content' => array(
86 'privilege' => '{DAV:}write-content',
88 'aggregates' => array(),
89 'concrete' => '{DAV:}write',
91 '{DAV:}unlock' => array(
92 'privilege' => '{DAV:}unlock',
94 'aggregates' => array(),
95 'concrete' => '{DAV:}write',
97 '{DAV:}bind' => array(
98 'privilege' => '{DAV:}bind',
100 'aggregates' => array(),
101 'concrete' => '{DAV:}write',
103 '{DAV:}unbind' => array(
104 'privilege' => '{DAV:}unbind',
106 'aggregates' => array(),
107 'concrete' => '{DAV:}write',
112 $plugin = new Sabre_DAVACL_Plugin();
113 $server = new Sabre_DAV_Server();
114 $server->addPlugin($plugin);
115 $this->assertEquals($expected, $plugin->getFlatPrivilegeSet(''));
119 function testCurrentUserPrincipalsNotLoggedIn() {
121 $acl = new Sabre_DAVACL_Plugin();
122 $server = new Sabre_DAV_Server();
123 $server->addPlugin($acl);
125 $this->assertEquals(array(),$acl->getCurrentUserPrincipals());
129 function testCurrentUserPrincipalsSimple() {
133 new Sabre_DAV_SimpleCollection('principals', array(
134 new Sabre_DAVACL_MockPrincipal('admin','principals/admin'),
139 $acl = new Sabre_DAVACL_Plugin();
140 $server = new Sabre_DAV_Server($tree);
141 $server->addPlugin($acl);
143 $auth = new Sabre_DAV_Auth_Plugin(new Sabre_DAV_Auth_MockBackend(),'SabreDAV');
144 $server->addPlugin($auth);
147 $auth->beforeMethod('GET','/');
149 $this->assertEquals(array('principals/admin'),$acl->getCurrentUserPrincipals());
153 function testCurrentUserPrincipalsGroups() {
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')),
166 $acl = new Sabre_DAVACL_Plugin();
167 $server = new Sabre_DAV_Server($tree);
168 $server->addPlugin($acl);
170 $auth = new Sabre_DAV_Auth_Plugin(new Sabre_DAV_Auth_MockBackend(),'SabreDAV');
171 $server->addPlugin($auth);
174 $auth->beforeMethod('GET','/');
178 'principals/administrators',
179 'principals/everyone',
183 $this->assertEquals($expected,$acl->getCurrentUserPrincipals());
187 function testGetACL() {
191 'principal' => 'principals/admin',
192 'privilege' => '{DAV:}read',
195 'principal' => 'principals/admin',
196 'privilege' => '{DAV:}write',
202 new Sabre_DAVACL_MockACLNode('foo',$acl),
205 $server = new Sabre_DAV_Server($tree);
206 $aclPlugin = new Sabre_DAVACL_Plugin();
207 $server->addPlugin($aclPlugin);
209 $this->assertEquals($acl,$aclPlugin->getACL('foo'));
213 function testGetCurrentUserPrivilegeSet() {
217 'principal' => 'principals/admin',
218 'privilege' => '{DAV:}read',
221 'principal' => 'principals/user1',
222 'privilege' => '{DAV:}read',
225 'principal' => 'principals/admin',
226 'privilege' => '{DAV:}write',
232 new Sabre_DAVACL_MockACLNode('foo',$acl),
234 new Sabre_DAV_SimpleCollection('principals', array(
235 new Sabre_DAVACL_MockPrincipal('admin','principals/admin'),
240 $server = new Sabre_DAV_Server($tree);
241 $aclPlugin = new Sabre_DAVACL_Plugin();
242 $server->addPlugin($aclPlugin);
244 $auth = new Sabre_DAV_Auth_Plugin(new Sabre_DAV_Auth_MockBackend(),'SabreDAV');
245 $server->addPlugin($auth);
248 $auth->beforeMethod('GET','/');
253 '{DAV:}write-properties',
254 '{DAV:}write-content',
260 '{DAV:}read-current-user-privilege-set',
263 $this->assertEquals($expected,$aclPlugin->getCurrentUserPrivilegeSet('foo'));
267 function testCheckPrivileges() {
271 'principal' => 'principals/admin',
272 'privilege' => '{DAV:}read',
275 'principal' => 'principals/user1',
276 'privilege' => '{DAV:}read',
279 'principal' => 'principals/admin',
280 'privilege' => '{DAV:}write',
286 new Sabre_DAVACL_MockACLNode('foo',$acl),
288 new Sabre_DAV_SimpleCollection('principals', array(
289 new Sabre_DAVACL_MockPrincipal('admin','principals/admin'),
294 $server = new Sabre_DAV_Server($tree);
295 $aclPlugin = new Sabre_DAVACL_Plugin();
296 $server->addPlugin($aclPlugin);
298 $auth = new Sabre_DAV_Auth_Plugin(new Sabre_DAV_Auth_MockBackend(),'SabreDAV');
299 $server->addPlugin($auth);
302 //$auth->beforeMethod('GET','/');
304 $this->assertFalse($aclPlugin->checkPrivileges('foo', array('{DAV:}read'), Sabre_DAVACL_Plugin::R_PARENT, false));