]> git.mxchange.org Git - friendica-addons.git/blob - dav/SabreDAV/tests/Sabre/DAVACL/PrincipalBackend/AbstractPDOTest.php
0c8e6e28bb7d366838e064d824df457b15f6be8d
[friendica-addons.git] / dav / SabreDAV / tests / Sabre / DAVACL / PrincipalBackend / AbstractPDOTest.php
1 <?php
2
3 abstract class Sabre_DAVACL_PrincipalBackend_AbstractPDOTest extends PHPUnit_Framework_TestCase {
4
5     abstract function getPDO();
6
7     function testConstruct() {
8
9         $pdo = $this->getPDO();
10         $backend = new Sabre_DAVACL_PrincipalBackend_PDO($pdo);
11         $this->assertTrue($backend instanceof Sabre_DAVACL_PrincipalBackend_PDO);
12
13     }
14
15     /**
16      * @depends testConstruct
17      */
18     function testGetPrincipalsByPrefix() {
19
20         $pdo = $this->getPDO();
21         $backend = new Sabre_DAVACL_PrincipalBackend_PDO($pdo);
22
23         $expected = array(
24             array(
25                 'uri' => 'principals/user',
26                 '{http://sabredav.org/ns}email-address' => 'user@example.org',
27                 '{DAV:}displayname' => 'User',
28             ),
29             array(
30                 'uri' => 'principals/group',
31                 '{http://sabredav.org/ns}email-address' => 'group@example.org',
32                 '{DAV:}displayname' => 'Group',
33             ),
34         );
35
36         $this->assertEquals($expected, $backend->getPrincipalsByPrefix('principals'));
37         $this->assertEquals(array(), $backend->getPrincipalsByPrefix('foo'));
38
39     }
40
41     /**
42      * @depends testConstruct
43      */
44     function testGetPrincipalByPath() {
45
46         $pdo = $this->getPDO();
47         $backend = new Sabre_DAVACL_PrincipalBackend_PDO($pdo);
48
49         $expected = array(
50             'id' => 1,
51             'uri' => 'principals/user',
52             '{http://sabredav.org/ns}email-address' => 'user@example.org',
53             '{DAV:}displayname' => 'User',
54         );
55
56         $this->assertEquals($expected, $backend->getPrincipalByPath('principals/user'));
57         $this->assertEquals(null, $backend->getPrincipalByPath('foo'));
58
59     }
60
61     function testGetGroupMemberSet() {
62
63         $pdo = $this->getPDO();
64         $backend = new Sabre_DAVACL_PrincipalBackend_PDO($pdo);
65         $expected = array('principals/user');
66
67         $this->assertEquals($expected,$backend->getGroupMemberSet('principals/group'));
68
69     }
70
71     function testGetGroupMembership() {
72
73         $pdo = $this->getPDO();
74         $backend = new Sabre_DAVACL_PrincipalBackend_PDO($pdo);
75         $expected = array('principals/group');
76
77         $this->assertEquals($expected,$backend->getGroupMembership('principals/user'));
78
79     }
80
81     function testSetGroupMemberSet() {
82
83         $pdo = $this->getPDO();
84
85         // Start situation
86         $backend = new Sabre_DAVACL_PrincipalBackend_PDO($pdo);
87         $this->assertEquals(array('principals/user'), $backend->getGroupMemberSet('principals/group'));
88
89         // Removing all principals
90         $backend->setGroupMemberSet('principals/group', array());
91         $this->assertEquals(array(), $backend->getGroupMemberSet('principals/group'));
92
93         // Adding principals again
94         $backend->setGroupMemberSet('principals/group', array('principals/user'));
95         $this->assertEquals(array('principals/user'), $backend->getGroupMemberSet('principals/group'));
96
97
98     }
99
100     function testSearchPrincipals() {
101
102         $pdo = $this->getPDO();
103
104         $backend = new Sabre_DAVACL_PrincipalBackend_PDO($pdo);
105
106         $result = $backend->searchPrincipals('principals', array('{DAV:}blabla' => 'foo'));
107         $this->assertEquals(array(), $result);
108
109         $result = $backend->searchPrincipals('principals', array('{DAV:}displayname' => 'ou'));
110         $this->assertEquals(array('principals/group'), $result);
111
112         $result = $backend->searchPrincipals('principals', array('{DAV:}displayname' => 'UsEr', '{http://sabredav.org/ns}email-address' => 'USER@EXAMPLE'));
113         $this->assertEquals(array('principals/user'), $result);
114
115         $result = $backend->searchPrincipals('mom', array('{DAV:}displayname' => 'UsEr', '{http://sabredav.org/ns}email-address' => 'USER@EXAMPLE'));
116         $this->assertEquals(array(), $result);
117
118     }
119
120     function testUpdatePrincipal() {
121
122         $pdo = $this->getPDO();
123         $backend = new Sabre_DAVACL_PrincipalBackend_PDO($pdo);
124
125         $result = $backend->updatePrincipal('principals/user', array(
126             '{DAV:}displayname' => 'pietje',
127             '{http://sabredav.org/ns}vcard-url' => 'blabla',
128         ));
129
130         $this->assertTrue($result);
131
132         $this->assertEquals(array(
133             'id' => 1,
134             'uri' => 'principals/user',
135             '{DAV:}displayname' => 'pietje',
136             '{http://sabredav.org/ns}vcard-url' => 'blabla',
137             '{http://sabredav.org/ns}email-address' => 'user@example.org',
138         ), $backend->getPrincipalByPath('principals/user'));
139
140     }
141
142     function testUpdatePrincipalUnknownField() {
143
144         $pdo = $this->getPDO();
145         $backend = new Sabre_DAVACL_PrincipalBackend_PDO($pdo);
146
147         $result = $backend->updatePrincipal('principals/user', array(
148             '{DAV:}displayname' => 'pietje',
149             '{http://sabredav.org/ns}vcard-url' => 'blabla',
150             '{DAV:}unknown' => 'foo',
151         ));
152
153         $this->assertEquals(array(
154             424 => array(
155                 '{DAV:}displayname' => null,
156                 '{http://sabredav.org/ns}vcard-url' => null,
157             ),
158             403 => array(
159                 '{DAV:}unknown' => null,
160             ),
161         ), $result); 
162
163         $this->assertEquals(array(
164             'id' => '1',
165             'uri' => 'principals/user',
166             '{DAV:}displayname' => 'User',
167             '{http://sabredav.org/ns}email-address' => 'user@example.org',
168         ), $backend->getPrincipalByPath('principals/user'));
169
170     }
171
172 }