3 require_once 'Sabre/DAVACL/MockPrincipalBackend.php';
5 class Sabre_DAVACL_PrincipalTest extends PHPUnit_Framework_TestCase {
7 public function testConstruct() {
9 $principalBackend = new Sabre_DAVACL_MockPrincipalBackend();
10 $principal = new Sabre_DAVACL_Principal($principalBackend, array('uri' => 'principals/admin'));
11 $this->assertTrue($principal instanceof Sabre_DAVACL_Principal);
16 * @expectedException Sabre_DAV_Exception
18 public function testConstructNoUri() {
20 $principalBackend = new Sabre_DAVACL_MockPrincipalBackend();
21 $principal = new Sabre_DAVACL_Principal($principalBackend, array());
25 public function testGetName() {
27 $principalBackend = new Sabre_DAVACL_MockPrincipalBackend();
28 $principal = new Sabre_DAVACL_Principal($principalBackend, array('uri' => 'principals/admin'));
29 $this->assertEquals('admin',$principal->getName());
33 public function testGetDisplayName() {
35 $principalBackend = new Sabre_DAVACL_MockPrincipalBackend();
36 $principal = new Sabre_DAVACL_Principal($principalBackend, array('uri' => 'principals/admin'));
37 $this->assertEquals('admin',$principal->getDisplayname());
39 $principal = new Sabre_DAVACL_Principal($principalBackend, array(
40 'uri' => 'principals/admin',
41 '{DAV:}displayname' => 'Mr. Admin'
43 $this->assertEquals('Mr. Admin',$principal->getDisplayname());
47 public function testGetProperties() {
49 $principalBackend = new Sabre_DAVACL_MockPrincipalBackend();
50 $principal = new Sabre_DAVACL_Principal($principalBackend, array(
51 'uri' => 'principals/admin',
52 '{DAV:}displayname' => 'Mr. Admin',
53 '{http://www.example.org/custom}custom' => 'Custom',
54 '{http://sabredav.org/ns}email-address' => 'admin@example.org',
59 '{http://www.example.org/custom}custom',
60 '{http://sabredav.org/ns}email-address',
62 $props = $principal->getProperties($keys);
64 foreach($keys as $key) $this->assertArrayHasKey($key,$props);
66 $this->assertEquals('Mr. Admin',$props['{DAV:}displayname']);
68 $this->assertEquals('admin@example.org', $props['{http://sabredav.org/ns}email-address']);
71 public function testUpdateProperties() {
73 $principalBackend = new Sabre_DAVACL_MockPrincipalBackend();
74 $principal = new Sabre_DAVACL_Principal($principalBackend, array('uri' => 'principals/admin'));
75 $result = $principal->updateProperties(array('{DAV:}yourmom'=>'test'));
76 $this->assertEquals(true,$result);
80 public function testGetPrincipalUrl() {
82 $principalBackend = new Sabre_DAVACL_MockPrincipalBackend();
83 $principal = new Sabre_DAVACL_Principal($principalBackend, array('uri' => 'principals/admin'));
84 $this->assertEquals('principals/admin',$principal->getPrincipalUrl());
88 public function testGetAlternateUriSet() {
90 $principalBackend = new Sabre_DAVACL_MockPrincipalBackend();
91 $principal = new Sabre_DAVACL_Principal($principalBackend, array(
92 'uri' => 'principals/admin',
93 '{DAV:}displayname' => 'Mr. Admin',
94 '{http://www.example.org/custom}custom' => 'Custom',
95 '{http://sabredav.org/ns}email-address' => 'admin@example.org',
96 '{DAV:}alternate-URI-set' => array(
97 'mailto:admin+1@example.org',
98 'mailto:admin+2@example.org',
99 'mailto:admin@example.org',
104 'mailto:admin+1@example.org',
105 'mailto:admin+2@example.org',
106 'mailto:admin@example.org',
109 $this->assertEquals($expected,$principal->getAlternateUriSet());
112 public function testGetAlternateUriSetEmpty() {
114 $principalBackend = new Sabre_DAVACL_MockPrincipalBackend();
115 $principal = new Sabre_DAVACL_Principal($principalBackend, array(
116 'uri' => 'principals/admin',
121 $this->assertEquals($expected,$principal->getAlternateUriSet());
125 public function testGetGroupMemberSet() {
127 $principalBackend = new Sabre_DAVACL_MockPrincipalBackend();
128 $principal = new Sabre_DAVACL_Principal($principalBackend, array('uri' => 'principals/admin'));
129 $this->assertEquals(array(),$principal->getGroupMemberSet());
132 public function testGetGroupMembership() {
134 $principalBackend = new Sabre_DAVACL_MockPrincipalBackend();
135 $principal = new Sabre_DAVACL_Principal($principalBackend, array('uri' => 'principals/admin'));
136 $this->assertEquals(array(),$principal->getGroupMembership());
140 public function testSetGroupMemberSet() {
142 $principalBackend = new Sabre_DAVACL_MockPrincipalBackend();
143 $principal = new Sabre_DAVACL_Principal($principalBackend, array('uri' => 'principals/admin'));
144 $principal->setGroupMemberSet(array('principals/foo'));
146 $this->assertEquals(array(
147 'principals/admin' => array('principals/foo'),
148 ), $principalBackend->groupMembers);
152 public function testGetOwner() {
154 $principalBackend = new Sabre_DAVACL_MockPrincipalBackend();
155 $principal = new Sabre_DAVACL_Principal($principalBackend, array('uri' => 'principals/admin'));
156 $this->assertEquals('principals/admin',$principal->getOwner());
160 public function testGetGroup() {
162 $principalBackend = new Sabre_DAVACL_MockPrincipalBackend();
163 $principal = new Sabre_DAVACL_Principal($principalBackend, array('uri' => 'principals/admin'));
164 $this->assertNull($principal->getGroup());
168 public function testGetACl() {
170 $principalBackend = new Sabre_DAVACL_MockPrincipalBackend();
171 $principal = new Sabre_DAVACL_Principal($principalBackend, array('uri' => 'principals/admin'));
172 $this->assertEquals(array(
174 'privilege' => '{DAV:}read',
175 'principal' => 'principals/admin',
178 ),$principal->getACL());
183 * @expectedException Sabre_DAV_Exception_MethodNotAllowed
185 public function testSetACl() {
187 $principalBackend = new Sabre_DAVACL_MockPrincipalBackend();
188 $principal = new Sabre_DAVACL_Principal($principalBackend, array('uri' => 'principals/admin'));
189 $principal->setACL(array());
193 public function testGetSupportedPrivilegeSet() {
195 $principalBackend = new Sabre_DAVACL_MockPrincipalBackend();
196 $principal = new Sabre_DAVACL_Principal($principalBackend, array('uri' => 'principals/admin'));
197 $this->assertNull($principal->getSupportedPrivilegeSet());