123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208 |
- <?php
- namespace Sabre\DAVACL;
- use Sabre\DAV;
- use Sabre\HTTP;
- class PrincipalTest extends \PHPUnit_Framework_TestCase {
- public function testConstruct() {
- $principalBackend = new PrincipalBackend\Mock();
- $principal = new Principal($principalBackend, array('uri' => 'principals/admin'));
- $this->assertTrue($principal instanceof Principal);
- }
- /**
- * @expectedException Sabre\DAV\Exception
- */
- public function testConstructNoUri() {
- $principalBackend = new PrincipalBackend\Mock();
- $principal = new Principal($principalBackend, array());
- }
- public function testGetName() {
- $principalBackend = new PrincipalBackend\Mock();
- $principal = new Principal($principalBackend, array('uri' => 'principals/admin'));
- $this->assertEquals('admin',$principal->getName());
- }
- public function testGetDisplayName() {
- $principalBackend = new PrincipalBackend\Mock();
- $principal = new Principal($principalBackend, array('uri' => 'principals/admin'));
- $this->assertEquals('admin',$principal->getDisplayname());
- $principal = new Principal($principalBackend, array(
- 'uri' => 'principals/admin',
- '{DAV:}displayname' => 'Mr. Admin'
- ));
- $this->assertEquals('Mr. Admin',$principal->getDisplayname());
- }
- public function testGetProperties() {
- $principalBackend = new PrincipalBackend\Mock();
- $principal = new Principal($principalBackend, array(
- 'uri' => 'principals/admin',
- '{DAV:}displayname' => 'Mr. Admin',
- '{http://www.example.org/custom}custom' => 'Custom',
- '{http://sabredav.org/ns}email-address' => 'admin@example.org',
- ));
- $keys = array(
- '{DAV:}displayname',
- '{http://www.example.org/custom}custom',
- '{http://sabredav.org/ns}email-address',
- );
- $props = $principal->getProperties($keys);
- foreach($keys as $key) $this->assertArrayHasKey($key,$props);
- $this->assertEquals('Mr. Admin',$props['{DAV:}displayname']);
- $this->assertEquals('admin@example.org', $props['{http://sabredav.org/ns}email-address']);
- }
- public function testUpdateProperties() {
- $principalBackend = new PrincipalBackend\Mock();
- $principal = new Principal($principalBackend, array('uri' => 'principals/admin'));
- $propPatch = new DAV\PropPatch(array('{DAV:}yourmom' => 'test'));
- $result = $principal->propPatch($propPatch);
- $result = $propPatch->commit();
- $this->assertTrue($result);
- }
- public function testGetPrincipalUrl() {
- $principalBackend = new PrincipalBackend\Mock();
- $principal = new Principal($principalBackend, array('uri' => 'principals/admin'));
- $this->assertEquals('principals/admin',$principal->getPrincipalUrl());
- }
- public function testGetAlternateUriSet() {
- $principalBackend = new PrincipalBackend\Mock();
- $principal = new Principal($principalBackend, array(
- 'uri' => 'principals/admin',
- '{DAV:}displayname' => 'Mr. Admin',
- '{http://www.example.org/custom}custom' => 'Custom',
- '{http://sabredav.org/ns}email-address' => 'admin@example.org',
- '{DAV:}alternate-URI-set' => array(
- 'mailto:admin+1@example.org',
- 'mailto:admin+2@example.org',
- 'mailto:admin@example.org',
- ),
- ));
- $expected = array(
- 'mailto:admin+1@example.org',
- 'mailto:admin+2@example.org',
- 'mailto:admin@example.org',
- );
- $this->assertEquals($expected,$principal->getAlternateUriSet());
- }
- public function testGetAlternateUriSetEmpty() {
- $principalBackend = new PrincipalBackend\Mock();
- $principal = new Principal($principalBackend, array(
- 'uri' => 'principals/admin',
- ));
- $expected = array();
- $this->assertEquals($expected,$principal->getAlternateUriSet());
- }
- public function testGetGroupMemberSet() {
- $principalBackend = new PrincipalBackend\Mock();
- $principal = new Principal($principalBackend, array('uri' => 'principals/admin'));
- $this->assertEquals(array(),$principal->getGroupMemberSet());
- }
- public function testGetGroupMembership() {
- $principalBackend = new PrincipalBackend\Mock();
- $principal = new Principal($principalBackend, array('uri' => 'principals/admin'));
- $this->assertEquals(array(),$principal->getGroupMembership());
- }
- public function testSetGroupMemberSet() {
- $principalBackend = new PrincipalBackend\Mock();
- $principal = new Principal($principalBackend, array('uri' => 'principals/admin'));
- $principal->setGroupMemberSet(array('principals/foo'));
- $this->assertEquals(array(
- 'principals/admin' => array('principals/foo'),
- ), $principalBackend->groupMembers);
- }
- public function testGetOwner() {
- $principalBackend = new PrincipalBackend\Mock();
- $principal = new Principal($principalBackend, array('uri' => 'principals/admin'));
- $this->assertEquals('principals/admin',$principal->getOwner());
- }
- public function testGetGroup() {
- $principalBackend = new PrincipalBackend\Mock();
- $principal = new Principal($principalBackend, array('uri' => 'principals/admin'));
- $this->assertNull($principal->getGroup());
- }
- public function testGetACl() {
- $principalBackend = new PrincipalBackend\Mock();
- $principal = new Principal($principalBackend, array('uri' => 'principals/admin'));
- $this->assertEquals(array(
- array(
- 'privilege' => '{DAV:}read',
- 'principal' => '{DAV:}authenticated',
- 'protected' => true,
- )
- ),$principal->getACL());
- }
- /**
- * @expectedException Sabre\DAV\Exception\MethodNotAllowed
- */
- public function testSetACl() {
- $principalBackend = new PrincipalBackend\Mock();
- $principal = new Principal($principalBackend, array('uri' => 'principals/admin'));
- $principal->setACL(array());
- }
- public function testGetSupportedPrivilegeSet() {
- $principalBackend = new PrincipalBackend\Mock();
- $principal = new Principal($principalBackend, array('uri' => 'principals/admin'));
- $this->assertNull($principal->getSupportedPrivilegeSet());
- }
- }
|