3 abstract class Sabre_DAVACL_PrincipalBackend_AbstractPDOTest extends PHPUnit_Framework_TestCase {
5 abstract function getPDO();
7 function testConstruct() {
9 $pdo = $this->getPDO();
10 $backend = new Sabre_DAVACL_PrincipalBackend_PDO($pdo);
11 $this->assertTrue($backend instanceof Sabre_DAVACL_PrincipalBackend_PDO);
16 * @depends testConstruct
18 function testGetPrincipalsByPrefix() {
20 $pdo = $this->getPDO();
21 $backend = new Sabre_DAVACL_PrincipalBackend_PDO($pdo);
25 'uri' => 'principals/user',
26 '{http://sabredav.org/ns}email-address' => 'user@example.org',
27 '{DAV:}displayname' => 'User',
30 'uri' => 'principals/group',
31 '{http://sabredav.org/ns}email-address' => 'group@example.org',
32 '{DAV:}displayname' => 'Group',
36 $this->assertEquals($expected, $backend->getPrincipalsByPrefix('principals'));
37 $this->assertEquals(array(), $backend->getPrincipalsByPrefix('foo'));
42 * @depends testConstruct
44 function testGetPrincipalByPath() {
46 $pdo = $this->getPDO();
47 $backend = new Sabre_DAVACL_PrincipalBackend_PDO($pdo);
51 'uri' => 'principals/user',
52 '{http://sabredav.org/ns}email-address' => 'user@example.org',
53 '{DAV:}displayname' => 'User',
56 $this->assertEquals($expected, $backend->getPrincipalByPath('principals/user'));
57 $this->assertEquals(null, $backend->getPrincipalByPath('foo'));
61 function testGetGroupMemberSet() {
63 $pdo = $this->getPDO();
64 $backend = new Sabre_DAVACL_PrincipalBackend_PDO($pdo);
65 $expected = array('principals/user');
67 $this->assertEquals($expected,$backend->getGroupMemberSet('principals/group'));
71 function testGetGroupMembership() {
73 $pdo = $this->getPDO();
74 $backend = new Sabre_DAVACL_PrincipalBackend_PDO($pdo);
75 $expected = array('principals/group');
77 $this->assertEquals($expected,$backend->getGroupMembership('principals/user'));
81 function testSetGroupMemberSet() {
83 $pdo = $this->getPDO();
86 $backend = new Sabre_DAVACL_PrincipalBackend_PDO($pdo);
87 $this->assertEquals(array('principals/user'), $backend->getGroupMemberSet('principals/group'));
89 // Removing all principals
90 $backend->setGroupMemberSet('principals/group', array());
91 $this->assertEquals(array(), $backend->getGroupMemberSet('principals/group'));
93 // Adding principals again
94 $backend->setGroupMemberSet('principals/group', array('principals/user'));
95 $this->assertEquals(array('principals/user'), $backend->getGroupMemberSet('principals/group'));
100 function testSearchPrincipals() {
102 $pdo = $this->getPDO();
104 $backend = new Sabre_DAVACL_PrincipalBackend_PDO($pdo);
106 $result = $backend->searchPrincipals('principals', array('{DAV:}blabla' => 'foo'));
107 $this->assertEquals(array(), $result);
109 $result = $backend->searchPrincipals('principals', array('{DAV:}displayname' => 'ou'));
110 $this->assertEquals(array('principals/group'), $result);
112 $result = $backend->searchPrincipals('principals', array('{DAV:}displayname' => 'UsEr', '{http://sabredav.org/ns}email-address' => 'USER@EXAMPLE'));
113 $this->assertEquals(array('principals/user'), $result);
115 $result = $backend->searchPrincipals('mom', array('{DAV:}displayname' => 'UsEr', '{http://sabredav.org/ns}email-address' => 'USER@EXAMPLE'));
116 $this->assertEquals(array(), $result);
120 function testUpdatePrincipal() {
122 $pdo = $this->getPDO();
123 $backend = new Sabre_DAVACL_PrincipalBackend_PDO($pdo);
125 $result = $backend->updatePrincipal('principals/user', array(
126 '{DAV:}displayname' => 'pietje',
127 '{http://sabredav.org/ns}vcard-url' => 'blabla',
130 $this->assertTrue($result);
132 $this->assertEquals(array(
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'));
142 function testUpdatePrincipalUnknownField() {
144 $pdo = $this->getPDO();
145 $backend = new Sabre_DAVACL_PrincipalBackend_PDO($pdo);
147 $result = $backend->updatePrincipal('principals/user', array(
148 '{DAV:}displayname' => 'pietje',
149 '{http://sabredav.org/ns}vcard-url' => 'blabla',
150 '{DAV:}unknown' => 'foo',
153 $this->assertEquals(array(
155 '{DAV:}displayname' => null,
156 '{http://sabredav.org/ns}vcard-url' => null,
159 '{DAV:}unknown' => null,
163 $this->assertEquals(array(
165 'uri' => 'principals/user',
166 '{DAV:}displayname' => 'User',
167 '{http://sabredav.org/ns}email-address' => 'user@example.org',
168 ), $backend->getPrincipalByPath('principals/user'));