parent
f2ddd565e8
commit
556c9b6f46
@ -0,0 +1,247 @@ |
||||
<?php |
||||
/** |
||||
* @author Lukas Reschke |
||||
* @copyright 2014 Lukas Reschke lukas@owncloud.com |
||||
* |
||||
* This file is licensed under the Affero General Public License version 3 or |
||||
* later. |
||||
* See the COPYING-README file. |
||||
*/ |
||||
|
||||
use OCP\IUserManager; |
||||
use OCP\IConfig; |
||||
|
||||
class Test_OC_Connector_Sabre_Principal extends \Test\TestCase { |
||||
/** @var IUserManager */ |
||||
private $userManager; |
||||
/** @var IConfig */ |
||||
private $config; |
||||
/** @var OC_Connector_Sabre_Principal */ |
||||
private $connector; |
||||
|
||||
public function setUp() { |
||||
$this->userManager = $this->getMockBuilder('\OCP\IUserManager') |
||||
->disableOriginalConstructor()->getMock(); |
||||
$this->config = $this->getMockBuilder('\OCP\IConfig') |
||||
->disableOriginalConstructor()->getMock(); |
||||
|
||||
$this->connector = new OC_Connector_Sabre_Principal($this->config, $this->userManager); |
||||
parent::setUp(); |
||||
} |
||||
|
||||
public function testGetPrincipalsByPrefixWithoutPrefix() { |
||||
$response = $this->connector->getPrincipalsByPrefix(''); |
||||
$this->assertSame([], $response); |
||||
} |
||||
|
||||
public function testGetPrincipalsByPrefixWithUsers() { |
||||
$fooUser = $this->getMockBuilder('\OC\User\User') |
||||
->disableOriginalConstructor()->getMock(); |
||||
$fooUser |
||||
->expects($this->exactly(3)) |
||||
->method('getUID') |
||||
->will($this->returnValue('foo')); |
||||
$barUser = $this->getMockBuilder('\OC\User\User') |
||||
->disableOriginalConstructor()->getMock(); |
||||
$barUser |
||||
->expects($this->exactly(3)) |
||||
->method('getUID') |
||||
->will($this->returnValue('bar')); |
||||
$this->userManager |
||||
->expects($this->once()) |
||||
->method('search') |
||||
->with('') |
||||
->will($this->returnValue([$fooUser, $barUser])); |
||||
$this->config |
||||
->expects($this->at(0)) |
||||
->method('getUserValue') |
||||
->with('foo', 'settings', 'email') |
||||
->will($this->returnValue('')); |
||||
$this->config |
||||
->expects($this->at(1)) |
||||
->method('getUserValue') |
||||
->with('bar', 'settings', 'email') |
||||
->will($this->returnValue('bar@owncloud.org')); |
||||
|
||||
$expectedResponse = [ |
||||
0 => [ |
||||
'uri' => 'principals/foo', |
||||
'{DAV:}displayname' => 'foo' |
||||
], |
||||
1 => [ |
||||
'uri' => 'principals/bar', |
||||
'{DAV:}displayname' => 'bar', |
||||
'{http://sabredav.org/ns}email-address' => 'bar@owncloud.org' |
||||
] |
||||
]; |
||||
$response = $this->connector->getPrincipalsByPrefix('principals'); |
||||
$this->assertSame($expectedResponse, $response); |
||||
} |
||||
|
||||
public function testGetPrincipalsByPrefixEmpty() { |
||||
$this->userManager |
||||
->expects($this->once()) |
||||
->method('search') |
||||
->with('') |
||||
->will($this->returnValue([])); |
||||
|
||||
$response = $this->connector->getPrincipalsByPrefix('principals'); |
||||
$this->assertSame([], $response); |
||||
} |
||||
|
||||
public function testGetPrincipalsByPathWithoutMail() { |
||||
$fooUser = $this->getMockBuilder('\OC\User\User') |
||||
->disableOriginalConstructor()->getMock(); |
||||
$fooUser |
||||
->expects($this->exactly(3)) |
||||
->method('getUID') |
||||
->will($this->returnValue('foo')); |
||||
$this->userManager |
||||
->expects($this->once()) |
||||
->method('get') |
||||
->with('foo') |
||||
->will($this->returnValue($fooUser)); |
||||
$this->config |
||||
->expects($this->once()) |
||||
->method('getUserValue') |
||||
->with('foo', 'settings', 'email') |
||||
->will($this->returnValue('')); |
||||
|
||||
$expectedResponse = [ |
||||
'uri' => 'principals/foo', |
||||
'{DAV:}displayname' => 'foo' |
||||
]; |
||||
$response = $this->connector->getPrincipalByPath('principals/foo'); |
||||
$this->assertSame($expectedResponse, $response); |
||||
} |
||||
|
||||
public function testGetPrincipalsByPathWithMail() { |
||||
$fooUser = $this->getMockBuilder('\OC\User\User') |
||||
->disableOriginalConstructor()->getMock(); |
||||
$fooUser |
||||
->expects($this->exactly(3)) |
||||
->method('getUID') |
||||
->will($this->returnValue('foo')); |
||||
$this->userManager |
||||
->expects($this->once()) |
||||
->method('get') |
||||
->with('foo') |
||||
->will($this->returnValue($fooUser)); |
||||
$this->config |
||||
->expects($this->once()) |
||||
->method('getUserValue') |
||||
->with('foo', 'settings', 'email') |
||||
->will($this->returnValue('foo@owncloud.org')); |
||||
|
||||
$expectedResponse = [ |
||||
'uri' => 'principals/foo', |
||||
'{DAV:}displayname' => 'foo', |
||||
'{http://sabredav.org/ns}email-address' => 'foo@owncloud.org' |
||||
]; |
||||
$response = $this->connector->getPrincipalByPath('principals/foo'); |
||||
$this->assertSame($expectedResponse, $response); |
||||
} |
||||
|
||||
public function testGetPrincipalsByPathEmpty() { |
||||
$this->userManager |
||||
->expects($this->once()) |
||||
->method('get') |
||||
->with('foo') |
||||
->will($this->returnValue(null)); |
||||
|
||||
$response = $this->connector->getPrincipalByPath('principals/foo'); |
||||
$this->assertSame(null, $response); |
||||
} |
||||
|
||||
public function testGetGroupMemberSet() { |
||||
$fooUser = $this->getMockBuilder('\OC\User\User') |
||||
->disableOriginalConstructor()->getMock(); |
||||
$fooUser |
||||
->expects($this->exactly(3)) |
||||
->method('getUID') |
||||
->will($this->returnValue('foo')); |
||||
$this->userManager |
||||
->expects($this->once()) |
||||
->method('get') |
||||
->with('foo') |
||||
->will($this->returnValue($fooUser)); |
||||
$this->config |
||||
->expects($this->once()) |
||||
->method('getUserValue') |
||||
->with('foo', 'settings', 'email') |
||||
->will($this->returnValue('foo@owncloud.org')); |
||||
|
||||
$response = $this->connector->getGroupMemberSet('principals/foo'); |
||||
$this->assertSame(['principals/foo'], $response); |
||||
} |
||||
|
||||
/** |
||||
* @expectedException \Sabre\DAV\Exception |
||||
* @expectedExceptionMessage Principal not found |
||||
*/ |
||||
public function testGetGroupMemberSetEmpty() { |
||||
$this->userManager |
||||
->expects($this->once()) |
||||
->method('get') |
||||
->with('foo') |
||||
->will($this->returnValue(null)); |
||||
|
||||
$this->connector->getGroupMemberSet('principals/foo'); |
||||
} |
||||
|
||||
public function testGetGroupMembership() { |
||||
$fooUser = $this->getMockBuilder('\OC\User\User') |
||||
->disableOriginalConstructor()->getMock(); |
||||
$fooUser |
||||
->expects($this->exactly(3)) |
||||
->method('getUID') |
||||
->will($this->returnValue('foo')); |
||||
$this->userManager |
||||
->expects($this->once()) |
||||
->method('get') |
||||
->with('foo') |
||||
->will($this->returnValue($fooUser)); |
||||
$this->config |
||||
->expects($this->once()) |
||||
->method('getUserValue') |
||||
->with('foo', 'settings', 'email') |
||||
->will($this->returnValue('foo@owncloud.org')); |
||||
|
||||
$expectedResponse = [ |
||||
'principals/foo/calendar-proxy-read', |
||||
'principals/foo/calendar-proxy-write' |
||||
]; |
||||
$response = $this->connector->getGroupMembership('principals/foo'); |
||||
$this->assertSame($expectedResponse, $response); |
||||
} |
||||
|
||||
/** |
||||
* @expectedException \Sabre\DAV\Exception |
||||
* @expectedExceptionMessage Principal not found |
||||
*/ |
||||
public function testGetGroupMembershipEmpty() { |
||||
$this->userManager |
||||
->expects($this->once()) |
||||
->method('get') |
||||
->with('foo') |
||||
->will($this->returnValue(null)); |
||||
|
||||
$this->connector->getGroupMembership('principals/foo'); |
||||
} |
||||
|
||||
/** |
||||
* @expectedException \Sabre\DAV\Exception |
||||
* @expectedExceptionMessage Setting members of the group is not supported yet |
||||
*/ |
||||
public function testSetGroupMembership() { |
||||
$this->connector->setGroupMemberSet('principals/foo', ['foo']); |
||||
} |
||||
|
||||
public function testUpdatePrincipal() { |
||||
$this->assertSame(0, $this->connector->updatePrincipal('foo', [])); |
||||
} |
||||
|
||||
public function testSearchPrincipals() { |
||||
$this->assertSame([], $this->connector->searchPrincipals('principals', [])); |
||||
} |
||||
} |
Loading…
Reference in new issue