|
|
|
|
@ -34,6 +34,10 @@ use OC\User\User;
|
|
|
|
|
use OCA\DAV\CalDAV\Proxy\Proxy;
|
|
|
|
|
use OCA\DAV\CalDAV\Proxy\ProxyMapper;
|
|
|
|
|
use OCA\DAV\Connector\Sabre\Principal;
|
|
|
|
|
use OCP\Accounts\IAccount;
|
|
|
|
|
use OCP\Accounts\IAccountManager;
|
|
|
|
|
use OCP\Accounts\IAccountProperty;
|
|
|
|
|
use OCP\Accounts\IAccountPropertyCollection;
|
|
|
|
|
use OCP\App\IAppManager;
|
|
|
|
|
use OCP\IConfig;
|
|
|
|
|
use OCP\IGroup;
|
|
|
|
|
@ -59,6 +63,9 @@ class PrincipalTest extends TestCase {
|
|
|
|
|
/** @var IGroupManager | MockObject */
|
|
|
|
|
private $groupManager;
|
|
|
|
|
|
|
|
|
|
/** @var IAccountManager|MockObject */
|
|
|
|
|
private $accountManager;
|
|
|
|
|
|
|
|
|
|
/** @var IManager | MockObject */
|
|
|
|
|
private $shareManager;
|
|
|
|
|
|
|
|
|
|
@ -81,6 +88,7 @@ class PrincipalTest extends TestCase {
|
|
|
|
|
protected function setUp(): void {
|
|
|
|
|
$this->userManager = $this->createMock(IUserManager::class);
|
|
|
|
|
$this->groupManager = $this->createMock(IGroupManager::class);
|
|
|
|
|
$this->accountManager = $this->createMock(IAccountManager::class);
|
|
|
|
|
$this->shareManager = $this->createMock(IManager::class);
|
|
|
|
|
$this->userSession = $this->createMock(IUserSession::class);
|
|
|
|
|
$this->appManager = $this->createMock(IAppManager::class);
|
|
|
|
|
@ -92,6 +100,7 @@ class PrincipalTest extends TestCase {
|
|
|
|
|
$this->connector = new Principal(
|
|
|
|
|
$this->userManager,
|
|
|
|
|
$this->groupManager,
|
|
|
|
|
$this->accountManager,
|
|
|
|
|
$this->shareManager,
|
|
|
|
|
$this->userSession,
|
|
|
|
|
$this->appManager,
|
|
|
|
|
@ -143,6 +152,45 @@ class PrincipalTest extends TestCase {
|
|
|
|
|
->withConsecutive([$fooUser], [$barUser])
|
|
|
|
|
->willReturnOnConsecutiveCalls('de', 'en');
|
|
|
|
|
|
|
|
|
|
$fooAccountPropertyCollection = $this->createMock(IAccountPropertyCollection::class);
|
|
|
|
|
$fooAccountPropertyCollection->expects($this->once())
|
|
|
|
|
->method('getProperties')
|
|
|
|
|
->with()
|
|
|
|
|
->willReturn([]);
|
|
|
|
|
$fooAccount = $this->createMock(IAccount::class);
|
|
|
|
|
$fooAccount->expects($this->once())
|
|
|
|
|
->method('getPropertyCollection')
|
|
|
|
|
->with(IAccountManager::COLLECTION_EMAIL)
|
|
|
|
|
->willReturn($fooAccountPropertyCollection);
|
|
|
|
|
|
|
|
|
|
$emailPropertyOne = $this->createMock(IAccountProperty::class);
|
|
|
|
|
$emailPropertyOne->expects($this->once())
|
|
|
|
|
->method('getValue')
|
|
|
|
|
->with()
|
|
|
|
|
->willReturn('alias@nextcloud.com');
|
|
|
|
|
$emailPropertyTwo = $this->createMock(IAccountProperty::class);
|
|
|
|
|
$emailPropertyTwo->expects($this->once())
|
|
|
|
|
->method('getValue')
|
|
|
|
|
->with()
|
|
|
|
|
->willReturn('alias2@nextcloud.com');
|
|
|
|
|
|
|
|
|
|
$barAccountPropertyCollection = $this->createMock(IAccountPropertyCollection::class);
|
|
|
|
|
$barAccountPropertyCollection->expects($this->once())
|
|
|
|
|
->method('getProperties')
|
|
|
|
|
->with()
|
|
|
|
|
->willReturn([$emailPropertyOne, $emailPropertyTwo]);
|
|
|
|
|
$barAccount = $this->createMock(IAccount::class);
|
|
|
|
|
$barAccount->expects($this->once())
|
|
|
|
|
->method('getPropertyCollection')
|
|
|
|
|
->with(IAccountManager::COLLECTION_EMAIL)
|
|
|
|
|
->willReturn($barAccountPropertyCollection);
|
|
|
|
|
|
|
|
|
|
$this->accountManager
|
|
|
|
|
->expects($this->exactly(2))
|
|
|
|
|
->method('getAccount')
|
|
|
|
|
->withConsecutive([$fooUser], [$barUser])
|
|
|
|
|
->willReturnOnConsecutiveCalls($fooAccount, $barAccount);
|
|
|
|
|
|
|
|
|
|
$expectedResponse = [
|
|
|
|
|
0 => [
|
|
|
|
|
'uri' => 'principals/users/foo',
|
|
|
|
|
@ -156,6 +204,7 @@ class PrincipalTest extends TestCase {
|
|
|
|
|
'{urn:ietf:params:xml:ns:caldav}calendar-user-type' => 'INDIVIDUAL',
|
|
|
|
|
'{http://nextcloud.com/ns}language' => 'en',
|
|
|
|
|
'{http://sabredav.org/ns}email-address' => 'bar@nextcloud.com',
|
|
|
|
|
'{DAV:}alternate-URI-set' => ['mailto:alias@nextcloud.com', 'mailto:alias2@nextcloud.com']
|
|
|
|
|
]
|
|
|
|
|
];
|
|
|
|
|
$response = $this->connector->getPrincipalsByPrefix('principals/users');
|
|
|
|
|
|