diff options
Diffstat (limited to 'tests/lib/ContactsManagerTest.php')
-rw-r--r-- | tests/lib/ContactsManagerTest.php | 99 |
1 files changed, 72 insertions, 27 deletions
diff --git a/tests/lib/ContactsManagerTest.php b/tests/lib/ContactsManagerTest.php index 6a6cd5f421a..d2d46ce43b4 100644 --- a/tests/lib/ContactsManagerTest.php +++ b/tests/lib/ContactsManagerTest.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors * SPDX-FileCopyrightText: 2016 ownCloud, Inc. @@ -6,6 +7,8 @@ */ namespace Test; +use OC\ContactsManager; +use OCP\Constants; use OCP\IAddressBook; class ContactsManagerTest extends \Test\TestCase { @@ -14,10 +17,10 @@ class ContactsManagerTest extends \Test\TestCase { protected function setUp(): void { parent::setUp(); - $this->cm = new \OC\ContactsManager(); + $this->cm = new ContactsManager(); } - public function searchProvider() { + public static function searchProvider(): array { $search1 = [ 0 => [ 'N' => [0 => '', 1 => 'Jan', 2 => 'Jansen', 3 => '', 4 => '',], @@ -62,16 +65,18 @@ class ContactsManagerTest extends \Test\TestCase { ]; } - /** - * @dataProvider searchProvider - */ + #[\PHPUnit\Framework\Attributes\DataProvider('searchProvider')] public function testSearch($search1, $search2, $expectedResult): void { /** @var \PHPUnit\Framework\MockObject\MockObject|IAddressBook $addressbook */ - $addressbook1 = $this->getMockBuilder('\OCP\IAddressBook') + $addressbook1 = $this->getMockBuilder('\OCP\IAddressBookEnabled') ->disableOriginalConstructor() ->getMock(); $addressbook1->expects($this->once()) + ->method('isEnabled') + ->willReturn(true); + + $addressbook1->expects($this->once()) ->method('search') ->willReturn($search1); @@ -79,11 +84,15 @@ class ContactsManagerTest extends \Test\TestCase { ->method('getKey') ->willReturn('simple:1'); - $addressbook2 = $this->getMockBuilder('\OCP\IAddressBook') + $addressbook2 = $this->getMockBuilder('\OCP\IAddressBookEnabled') ->disableOriginalConstructor() ->getMock(); $addressbook2->expects($this->once()) + ->method('isEnabled') + ->willReturn(true); + + $addressbook2->expects($this->once()) ->method('search') ->willReturn($search2); @@ -98,16 +107,52 @@ class ContactsManagerTest extends \Test\TestCase { $this->assertEquals($expectedResult, $result); } + #[\PHPUnit\Framework\Attributes\DataProvider('searchProvider')] + public function testSearchDisabledAb($search1): void { + /** @var \PHPUnit\Framework\MockObject\MockObject|IAddressBookEnabled $addressbook */ + $addressbook1 = $this->getMockBuilder('\OCP\IAddressBookEnabled') + ->disableOriginalConstructor() + ->getMock(); + + $addressbook1->expects($this->once()) + ->method('isEnabled') + ->willReturn(true); + + $addressbook1->expects($this->once()) + ->method('search') + ->willReturn($search1); + + $addressbook1->expects($this->any()) + ->method('getKey') + ->willReturn('simple:1'); + + $addressbook2 = $this->getMockBuilder('\OCP\IAddressBookEnabled') + ->disableOriginalConstructor() + ->getMock(); + + $addressbook2->expects($this->once()) + ->method('isEnabled') + ->willReturn(false); + + $addressbook2->expects($this->never()) + ->method('search'); + + $this->cm->registerAddressBook($addressbook1); + $this->cm->registerAddressBook($addressbook2); + $result = $this->cm->search(''); + $this->assertEquals($search1, $result); + } + public function testDeleteHavePermission(): void { - /** @var \PHPUnit\Framework\MockObject\MockObject|IAddressBook $addressbook */ - $addressbook = $this->getMockBuilder('\OCP\IAddressBook') + /** @var \PHPUnit\Framework\MockObject\MockObject|IAddressBookEnabled $addressbook */ + $addressbook = $this->getMockBuilder('\OCP\IAddressBookEnabled') ->disableOriginalConstructor() ->getMock(); $addressbook->expects($this->any()) ->method('getPermissions') - ->willReturn(\OCP\Constants::PERMISSION_ALL); + ->willReturn(Constants::PERMISSION_ALL); $addressbook->expects($this->once()) ->method('delete') @@ -123,14 +168,14 @@ class ContactsManagerTest extends \Test\TestCase { } public function testDeleteNoPermission(): void { - /** @var \PHPUnit\Framework\MockObject\MockObject|IAddressBook $addressbook */ - $addressbook = $this->getMockBuilder('\OCP\IAddressBook') + /** @var \PHPUnit\Framework\MockObject\MockObject|IAddressBookEnabled $addressbook */ + $addressbook = $this->getMockBuilder('\OCP\IAddressBookEnabled') ->disableOriginalConstructor() ->getMock(); $addressbook->expects($this->any()) ->method('getPermissions') - ->willReturn(\OCP\Constants::PERMISSION_READ); + ->willReturn(Constants::PERMISSION_READ); $addressbook->expects($this->never()) ->method('delete'); @@ -145,8 +190,8 @@ class ContactsManagerTest extends \Test\TestCase { } public function testDeleteNoAddressbook(): void { - /** @var \PHPUnit\Framework\MockObject\MockObject|IAddressBook $addressbook */ - $addressbook = $this->getMockBuilder('\OCP\IAddressBook') + /** @var \PHPUnit\Framework\MockObject\MockObject|IAddressBookEnabled $addressbook */ + $addressbook = $this->getMockBuilder('\OCP\IAddressBookEnabled') ->disableOriginalConstructor() ->getMock(); @@ -163,14 +208,14 @@ class ContactsManagerTest extends \Test\TestCase { } public function testCreateOrUpdateHavePermission(): void { - /** @var \PHPUnit\Framework\MockObject\MockObject|IAddressBook $addressbook */ - $addressbook = $this->getMockBuilder('\OCP\IAddressBook') + /** @var \PHPUnit\Framework\MockObject\MockObject|IAddressBookEnabled $addressbook */ + $addressbook = $this->getMockBuilder('\OCP\IAddressBookEnabled') ->disableOriginalConstructor() ->getMock(); $addressbook->expects($this->any()) ->method('getPermissions') - ->willReturn(\OCP\Constants::PERMISSION_ALL); + ->willReturn(Constants::PERMISSION_ALL); $addressbook->expects($this->once()) ->method('createOrUpdate') @@ -186,14 +231,14 @@ class ContactsManagerTest extends \Test\TestCase { } public function testCreateOrUpdateNoPermission(): void { - /** @var \PHPUnit\Framework\MockObject\MockObject|IAddressBook $addressbook */ - $addressbook = $this->getMockBuilder('\OCP\IAddressBook') + /** @var \PHPUnit\Framework\MockObject\MockObject|IAddressBookEnabled $addressbook */ + $addressbook = $this->getMockBuilder('\OCP\IAddressBookEnabled') ->disableOriginalConstructor() ->getMock(); $addressbook->expects($this->any()) ->method('getPermissions') - ->willReturn(\OCP\Constants::PERMISSION_READ); + ->willReturn(Constants::PERMISSION_READ); $addressbook->expects($this->never()) ->method('createOrUpdate'); @@ -208,8 +253,8 @@ class ContactsManagerTest extends \Test\TestCase { } public function testCreateOrUpdateNOAdressbook(): void { - /** @var \PHPUnit\Framework\MockObject\MockObject|IAddressBook $addressbook */ - $addressbook = $this->getMockBuilder('\OCP\IAddressBook') + /** @var \PHPUnit\Framework\MockObject\MockObject|IAddressBookEnabled $addressbook */ + $addressbook = $this->getMockBuilder('\OCP\IAddressBookEnabled') ->disableOriginalConstructor() ->getMock(); @@ -231,8 +276,8 @@ class ContactsManagerTest extends \Test\TestCase { } public function testIsEnabledIfSo(): void { - /** @var \PHPUnit\Framework\MockObject\MockObject|IAddressBook $addressbook */ - $addressbook = $this->getMockBuilder('\OCP\IAddressBook') + /** @var \PHPUnit\Framework\MockObject\MockObject|IAddressBookEnabled $addressbook */ + $addressbook = $this->getMockBuilder('\OCP\IAddressBookEnabled') ->disableOriginalConstructor() ->getMock(); @@ -247,8 +292,8 @@ class ContactsManagerTest extends \Test\TestCase { public function testAddressBookEnumeration(): void { // create mock for the addressbook - /** @var \PHPUnit\Framework\MockObject\MockObject|IAddressBook $addressbook */ - $addressbook = $this->getMockBuilder('\OCP\IAddressBook') + /** @var \PHPUnit\Framework\MockObject\MockObject|IAddressBookEnabled $addressbook */ + $addressbook = $this->getMockBuilder('\OCP\IAddressBookEnabled') ->disableOriginalConstructor() ->getMock(); |