|
|
|
|
@ -90,6 +90,46 @@ class SystemAddressBookTest extends TestCase {
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testGetChildrenAsGuest(): void {
|
|
|
|
|
$this->config->expects(self::exactly(3))
|
|
|
|
|
->method('getAppValue')
|
|
|
|
|
->willReturnMap([
|
|
|
|
|
['core', 'shareapi_allow_share_dialog_user_enumeration', 'yes', 'yes'],
|
|
|
|
|
['core', 'shareapi_restrict_user_enumeration_to_group', 'no', 'no'],
|
|
|
|
|
['core', 'shareapi_restrict_user_enumeration_to_phone', 'no', 'no'],
|
|
|
|
|
]);
|
|
|
|
|
$user = $this->createMock(IUser::class);
|
|
|
|
|
$user->method('getUID')->willReturn('user');
|
|
|
|
|
$user->method('getBackendClassName')->willReturn('Guests');
|
|
|
|
|
$this->userSession->expects(self::once())
|
|
|
|
|
->method('getUser')
|
|
|
|
|
->willReturn($user);
|
|
|
|
|
$vcfWithScopes = <<<VCF
|
|
|
|
|
BEGIN:VCARD
|
|
|
|
|
VERSION:3.0
|
|
|
|
|
PRODID:-//Sabre//Sabre VObject 4.4.2//EN
|
|
|
|
|
UID:admin
|
|
|
|
|
FN;X-NC-SCOPE=v2-federated:admin
|
|
|
|
|
N;X-NC-SCOPE=v2-federated:admin;;;;
|
|
|
|
|
ADR;TYPE=OTHER;X-NC-SCOPE=v2-local:Testing test test test;;;;;;
|
|
|
|
|
EMAIL;TYPE=OTHER;X-NC-SCOPE=v2-federated:miau_lalala@gmx.net
|
|
|
|
|
TEL;TYPE=OTHER;X-NC-SCOPE=v2-local:+435454454544
|
|
|
|
|
CLOUD:admin@http://localhost
|
|
|
|
|
END:VCARD
|
|
|
|
|
VCF;
|
|
|
|
|
$originalCard = [
|
|
|
|
|
'carddata' => $vcfWithScopes,
|
|
|
|
|
];
|
|
|
|
|
$this->cardDavBackend->expects(self::once())
|
|
|
|
|
->method('getCard')
|
|
|
|
|
->with(123, 'Guests:user.vcf')
|
|
|
|
|
->willReturn($originalCard);
|
|
|
|
|
|
|
|
|
|
$children = $this->addressBook->getChildren();
|
|
|
|
|
|
|
|
|
|
self::assertCount(1, $children);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testGetFilteredChildForFederation(): void {
|
|
|
|
|
$this->config->expects(self::exactly(3))
|
|
|
|
|
->method('getAppValue')
|
|
|
|
|
@ -172,6 +212,24 @@ VCF;
|
|
|
|
|
$this->addressBook->getChild("LDAP:user.vcf");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testGetChildAsGuest(): void {
|
|
|
|
|
$this->config->expects(self::exactly(3))
|
|
|
|
|
->method('getAppValue')
|
|
|
|
|
->willReturnMap([
|
|
|
|
|
['core', 'shareapi_allow_share_dialog_user_enumeration', 'yes', 'yes'],
|
|
|
|
|
['core', 'shareapi_restrict_user_enumeration_to_group', 'no', 'no'],
|
|
|
|
|
['core', 'shareapi_restrict_user_enumeration_to_phone', 'no', 'no'],
|
|
|
|
|
]);
|
|
|
|
|
$user = $this->createMock(IUser::class);
|
|
|
|
|
$user->method('getBackendClassName')->willReturn('Guests');
|
|
|
|
|
$this->userSession->expects(self::once())
|
|
|
|
|
->method('getUser')
|
|
|
|
|
->willReturn($user);
|
|
|
|
|
$this->expectException(Forbidden::class);
|
|
|
|
|
|
|
|
|
|
$this->addressBook->getChild("LDAP:user.vcf");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testGetChildWithGroupEnumerationRestriction(): void {
|
|
|
|
|
$this->config->expects(self::exactly(3))
|
|
|
|
|
->method('getAppValue')
|
|
|
|
|
@ -322,6 +380,26 @@ VCF;
|
|
|
|
|
self::assertCount(2, $cards);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testGetMultipleChildrenAsGuest(): void {
|
|
|
|
|
$this->config
|
|
|
|
|
->method('getAppValue')
|
|
|
|
|
->willReturnMap([
|
|
|
|
|
['core', 'shareapi_allow_share_dialog_user_enumeration', 'yes', 'yes'],
|
|
|
|
|
['core', 'shareapi_restrict_user_enumeration_to_group', 'no', 'no'],
|
|
|
|
|
['core', 'shareapi_restrict_user_enumeration_to_phone', 'no', 'no'],
|
|
|
|
|
]);
|
|
|
|
|
$user = $this->createMock(IUser::class);
|
|
|
|
|
$user->method('getUID')->willReturn('user');
|
|
|
|
|
$user->method('getBackendClassName')->willReturn('Guests');
|
|
|
|
|
$this->userSession->expects(self::once())
|
|
|
|
|
->method('getUser')
|
|
|
|
|
->willReturn($user);
|
|
|
|
|
|
|
|
|
|
$cards = $this->addressBook->getMultipleChildren(['Database:user1.vcf', 'LDAP:user2.vcf']);
|
|
|
|
|
|
|
|
|
|
self::assertEmpty($cards);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testGetMultipleChildren(): void {
|
|
|
|
|
$this->config
|
|
|
|
|
->method('getAppValue')
|
|
|
|
|
|