]> git.mxchange.org Git - friendica-addons.git/blob - dav/SabreDAV/tests/Sabre/DAVACL/PluginAdminTest.php
Initial Release of the calendar plugin
[friendica-addons.git] / dav / SabreDAV / tests / Sabre / DAVACL / PluginAdminTest.php
1 <?php
2
3 require_once 'Sabre/DAVACL/MockACLNode.php';
4 require_once 'Sabre/DAV/Auth/MockBackend.php';
5 require_once 'Sabre/HTTP/ResponseMock.php';
6 require_once 'Sabre/DAVACL/MockPrincipalBackend.php';
7
8 class Sabre_DAVACL_PluginAdminTest extends PHPUnit_Framework_TestCase {
9
10     function testNoAdminAccess() {
11
12         $principalBackend = new Sabre_DAVACL_MockPrincipalBackend();
13
14         $tree = array(
15             new Sabre_DAVACL_MockACLNode('adminonly', array()),
16             new Sabre_DAVACL_PrincipalCollection($principalBackend), 
17         );
18
19         $fakeServer = new Sabre_DAV_Server($tree);
20         $plugin = new Sabre_DAV_Auth_Plugin(new Sabre_DAV_Auth_MockBackend(),'realm');
21         $fakeServer->addPlugin($plugin);
22         $plugin = new Sabre_DAVACL_Plugin();
23         $fakeServer->addPlugin($plugin);
24
25         $request = new Sabre_HTTP_Request(array(
26             'REQUEST_METHOD' => 'OPTIONS',
27             'HTTP_DEPTH' => 1,
28             'REQUEST_URI' => '/adminonly',
29         ));
30
31         $response = new Sabre_HTTP_ResponseMock();
32
33         $fakeServer->httpRequest = $request;
34         $fakeServer->httpResponse = $response;
35
36         $fakeServer->exec();
37
38         $this->assertEquals('HTTP/1.1 403 Forbidden', $response->status); 
39
40     }
41
42     /**
43      * @depends testNoAdminAccess
44      */
45     function testAdminAccess() {
46
47         $principalBackend = new Sabre_DAVACL_MockPrincipalBackend();
48
49         $tree = array(
50             new Sabre_DAVACL_MockACLNode('adminonly', array()),
51             new Sabre_DAVACL_PrincipalCollection($principalBackend), 
52         );
53
54         $fakeServer = new Sabre_DAV_Server($tree);
55         $plugin = new Sabre_DAV_Auth_Plugin(new Sabre_DAV_Auth_MockBackend(),'realm');
56         $fakeServer->addPlugin($plugin);
57         $plugin = new Sabre_DAVACL_Plugin();
58         $plugin->adminPrincipals = array(
59             'principals/admin',
60         );
61         $fakeServer->addPlugin($plugin);
62
63         $request = new Sabre_HTTP_Request(array(
64             'REQUEST_METHOD' => 'OPTIONS',
65             'HTTP_DEPTH' => 1,
66             'REQUEST_URI' => '/adminonly',
67         ));
68
69         $response = new Sabre_HTTP_ResponseMock();
70
71         $fakeServer->httpRequest = $request;
72         $fakeServer->httpResponse = $response;
73
74         $fakeServer->exec();
75
76         $this->assertEquals('HTTP/1.1 200 OK', $response->status); 
77
78     }
79 }