diff options
Diffstat (limited to 'apps/federatedfilesharing/tests/FederatedShareProviderTest.php')
-rw-r--r-- | apps/federatedfilesharing/tests/FederatedShareProviderTest.php | 189 |
1 files changed, 73 insertions, 116 deletions
diff --git a/apps/federatedfilesharing/tests/FederatedShareProviderTest.php b/apps/federatedfilesharing/tests/FederatedShareProviderTest.php index 002a8bac374..7e97510af22 100644 --- a/apps/federatedfilesharing/tests/FederatedShareProviderTest.php +++ b/apps/federatedfilesharing/tests/FederatedShareProviderTest.php @@ -1,5 +1,6 @@ <?php +declare(strict_types=1); /** * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors * SPDX-FileCopyrightText: 2016 ownCloud, Inc. @@ -38,68 +39,46 @@ use Psr\Log\LoggerInterface; * @group DB */ class FederatedShareProviderTest extends \Test\TestCase { - /** @var IDBConnection */ - protected $connection; - /** @var AddressHandler|MockObject */ - protected $addressHandler; - /** @var Notifications|MockObject */ - protected $notifications; - /** @var TokenHandler|MockObject */ - protected $tokenHandler; - /** @var IL10N */ - protected $l; - /** @var LoggerInterface */ - protected $logger; - /** @var IRootFolder|MockObject */ - protected $rootFolder; - /** @var IConfig|MockObject */ - protected $config; - /** @var IUserManager|MockObject */ - protected $userManager; - /** @var \OCP\GlobalScale\IConfig|MockObject */ - protected $gsConfig; - - /** @var IManager */ - protected $shareManager; - /** @var FederatedShareProvider */ - protected $provider; - /** @var IContactsManager|MockObject */ - protected $contactsManager; - - /** @var ICloudIdManager */ - private $cloudIdManager; - - /** @var MockObject|ICloudFederationProviderManager */ - private $cloudFederationProviderManager; + protected IDBConnection $connection; + protected AddressHandler&MockObject $addressHandler; + protected Notifications&MockObject $notifications; + protected TokenHandler&MockObject $tokenHandler; + protected IL10N $l; + protected LoggerInterface $logger; + protected IRootFolder&MockObject $rootFolder; + protected IConfig&MockObject $config; + protected IUserManager&MockObject $userManager; + protected \OCP\GlobalScale\IConfig&MockObject $gsConfig; + protected IManager $shareManager; + protected FederatedShareProvider $provider; + protected IContactsManager&MockObject $contactsManager; + private ICloudIdManager $cloudIdManager; + private ICloudFederationProviderManager&MockObject $cloudFederationProviderManager; protected function setUp(): void { parent::setUp(); $this->connection = Server::get(IDBConnection::class); - $this->notifications = $this->getMockBuilder('OCA\FederatedFileSharing\Notifications') - ->disableOriginalConstructor() - ->getMock(); - $this->tokenHandler = $this->getMockBuilder('OCA\FederatedFileSharing\TokenHandler') - ->disableOriginalConstructor() - ->getMock(); - $this->l = $this->getMockBuilder(IL10N::class)->getMock(); + $this->notifications = $this->createMock(Notifications::class); + $this->tokenHandler = $this->createMock(TokenHandler::class); + $this->l = $this->createMock(IL10N::class); $this->l->method('t') ->willReturnCallback(function ($text, $parameters = []) { return vsprintf($text, $parameters); }); - $this->logger = $this->getMockBuilder(LoggerInterface::class)->getMock(); - $this->rootFolder = $this->getMockBuilder('OCP\Files\IRootFolder')->getMock(); - $this->config = $this->getMockBuilder(IConfig::class)->getMock(); - $this->userManager = $this->getMockBuilder(IUserManager::class)->getMock(); + $this->logger = $this->createMock(LoggerInterface::class); + $this->rootFolder = $this->createMock(IRootFolder::class); + $this->config = $this->createMock(IConfig::class); + $this->userManager = $this->createMock(IUserManager::class); //$this->addressHandler = new AddressHandler(\OC::$server->getURLGenerator(), $this->l); - $this->addressHandler = $this->getMockBuilder('OCA\FederatedFileSharing\AddressHandler')->disableOriginalConstructor()->getMock(); + $this->addressHandler = $this->createMock(AddressHandler::class); $this->contactsManager = $this->createMock(IContactsManager::class); $this->cloudIdManager = new CloudIdManager( + $this->createMock(ICacheFactory::class), + $this->createMock(IEventDispatcher::class), $this->contactsManager, $this->createMock(IURLGenerator::class), $this->userManager, - $this->createMock(ICacheFactory::class), - $this->createMock(IEventDispatcher::class) ); $this->gsConfig = $this->createMock(\OCP\GlobalScale\IConfig::class); @@ -122,30 +101,28 @@ class FederatedShareProviderTest extends \Test\TestCase { $this->logger, ); - $this->shareManager = Server::get(\OCP\Share\IManager::class); + $this->shareManager = Server::get(IManager::class); } protected function tearDown(): void { - $this->connection->getQueryBuilder()->delete('share')->execute(); + $this->connection->getQueryBuilder()->delete('share')->executeStatement(); parent::tearDown(); } - public function dataTestCreate() { + public static function dataTestCreate(): array { return [ [null, null], [new \DateTime('2020-03-01T01:02:03'), '2020-03-01 01:02:03'], ]; } - /** - * @dataProvider dataTestCreate - */ - public function testCreate($expirationDate, $expectedDataDate): void { + #[\PHPUnit\Framework\Attributes\DataProvider('dataTestCreate')] + public function testCreate(?\DateTime $expirationDate, ?string $expectedDataDate): void { $share = $this->shareManager->newShare(); - /** @var File|MockObject $node */ - $node = $this->getMockBuilder(File::class)->getMock(); + /** @var File&MockObject $node */ + $node = $this->createMock(File::class); $node->method('getId')->willReturn(42); $node->method('getName')->willReturn('myFile'); @@ -190,7 +167,7 @@ class FederatedShareProviderTest extends \Test\TestCase { $stmt = $qb->select('*') ->from('share') ->where($qb->expr()->eq('id', $qb->createNamedParameter($share->getId()))) - ->execute(); + ->executeQuery(); $data = $stmt->fetch(); $stmt->closeCursor(); @@ -227,7 +204,7 @@ class FederatedShareProviderTest extends \Test\TestCase { public function testCreateCouldNotFindServer(): void { $share = $this->shareManager->newShare(); - $node = $this->getMockBuilder(File::class)->getMock(); + $node = $this->createMock(File::class); $node->method('getId')->willReturn(42); $node->method('getName')->willReturn('myFile'); @@ -277,7 +254,7 @@ class FederatedShareProviderTest extends \Test\TestCase { $stmt = $qb->select('*') ->from('share') ->where($qb->expr()->eq('id', $qb->createNamedParameter($share->getId()))) - ->execute(); + ->executeQuery(); $data = $stmt->fetch(); $stmt->closeCursor(); @@ -288,7 +265,7 @@ class FederatedShareProviderTest extends \Test\TestCase { public function testCreateException(): void { $share = $this->shareManager->newShare(); - $node = $this->getMockBuilder(File::class)->getMock(); + $node = $this->createMock(File::class); $node->method('getId')->willReturn(42); $node->method('getName')->willReturn('myFile'); @@ -338,7 +315,7 @@ class FederatedShareProviderTest extends \Test\TestCase { $stmt = $qb->select('*') ->from('share') ->where($qb->expr()->eq('id', $qb->createNamedParameter($share->getId()))) - ->execute(); + ->executeQuery(); $data = $stmt->fetch(); $stmt->closeCursor(); @@ -349,7 +326,7 @@ class FederatedShareProviderTest extends \Test\TestCase { public function testCreateShareWithSelf(): void { $share = $this->shareManager->newShare(); - $node = $this->getMockBuilder(File::class)->getMock(); + $node = $this->createMock(File::class); $node->method('getId')->willReturn(42); $node->method('getName')->willReturn('myFile'); @@ -381,7 +358,7 @@ class FederatedShareProviderTest extends \Test\TestCase { $stmt = $qb->select('*') ->from('share') ->where($qb->expr()->eq('id', $qb->createNamedParameter($share->getId()))) - ->execute(); + ->executeQuery(); $data = $stmt->fetch(); $stmt->closeCursor(); @@ -392,7 +369,7 @@ class FederatedShareProviderTest extends \Test\TestCase { public function testCreateAlreadyShared(): void { $share = $this->shareManager->newShare(); - $node = $this->getMockBuilder(File::class)->getMock(); + $node = $this->createMock(File::class); $node->method('getId')->willReturn(42); $node->method('getName')->willReturn('myFile'); @@ -440,11 +417,9 @@ class FederatedShareProviderTest extends \Test\TestCase { } } - /** - * @dataProvider dataTestUpdate - */ - public function testUpdate($owner, $sharedBy, $expirationDate): void { - $this->provider = $this->getMockBuilder('OCA\FederatedFileSharing\FederatedShareProvider') + #[\PHPUnit\Framework\Attributes\DataProvider('dataTestUpdate')] + public function testUpdate(string $owner, string $sharedBy, ?\DateTime $expirationDate): void { + $this->provider = $this->getMockBuilder(FederatedShareProvider::class) ->setConstructorArgs( [ $this->connection, @@ -460,11 +435,13 @@ class FederatedShareProviderTest extends \Test\TestCase { $this->cloudFederationProviderManager, $this->logger, ] - )->setMethods(['sendPermissionUpdate'])->getMock(); + ) + ->onlyMethods(['sendPermissionUpdate']) + ->getMock(); $share = $this->shareManager->newShare(); - $node = $this->getMockBuilder(File::class)->getMock(); + $node = $this->createMock(File::class); $node->method('getId')->willReturn(42); $node->method('getName')->willReturn('myFile'); @@ -520,7 +497,7 @@ class FederatedShareProviderTest extends \Test\TestCase { $this->assertEquals($expirationDate, $share->getExpirationDate()); } - public function dataTestUpdate() { + public static function dataTestUpdate(): array { return [ ['sharedBy', 'shareOwner', new \DateTime('2020-03-01T01:02:03')], ['shareOwner', 'shareOwner', null], @@ -528,7 +505,7 @@ class FederatedShareProviderTest extends \Test\TestCase { } public function testGetSharedBy(): void { - $node = $this->getMockBuilder(File::class)->getMock(); + $node = $this->createMock(File::class); $node->method('getId')->willReturn(42); $node->method('getName')->willReturn('myFile'); @@ -574,7 +551,7 @@ class FederatedShareProviderTest extends \Test\TestCase { } public function testGetSharedByWithNode(): void { - $node = $this->getMockBuilder(File::class)->getMock(); + $node = $this->createMock(File::class); $node->method('getId')->willReturn(42); $node->method('getName')->willReturn('myFile'); @@ -621,7 +598,7 @@ class FederatedShareProviderTest extends \Test\TestCase { } public function testGetSharedByWithReshares(): void { - $node = $this->getMockBuilder(File::class)->getMock(); + $node = $this->createMock(File::class); $node->method('getId')->willReturn(42); $node->method('getName')->willReturn('myFile'); @@ -663,7 +640,7 @@ class FederatedShareProviderTest extends \Test\TestCase { } public function testGetSharedByWithLimit(): void { - $node = $this->getMockBuilder(File::class)->getMock(); + $node = $this->createMock(File::class); $node->method('getId')->willReturn(42); $node->method('getName')->willReturn('myFile'); @@ -713,7 +690,7 @@ class FederatedShareProviderTest extends \Test\TestCase { $this->assertEquals('user2@server.com', $shares[0]->getSharedWith()); } - public function dataDeleteUser() { + public static function dataDeleteUser(): array { return [ ['a', 'b', 'c', 'a', true], ['a', 'b', 'c', 'b', false], @@ -724,7 +701,6 @@ class FederatedShareProviderTest extends \Test\TestCase { } /** - * @dataProvider dataDeleteUser * * @param string $owner The owner of the share (uid) * @param string $initiator The initiator of the share (uid) @@ -732,7 +708,8 @@ class FederatedShareProviderTest extends \Test\TestCase { * @param string $deletedUser The user that is deleted * @param bool $rowDeleted Is the row deleted in this setup */ - public function testDeleteUser($owner, $initiator, $recipient, $deletedUser, $rowDeleted): void { + #[\PHPUnit\Framework\Attributes\DataProvider('dataDeleteUser')] + public function testDeleteUser(string $owner, string $initiator, string $recipient, string $deletedUser, bool $rowDeleted): void { $qb = $this->connection->getQueryBuilder(); $qb->insert('share') ->setValue('share_type', $qb->createNamedParameter(IShare::TYPE_REMOTE)) @@ -742,7 +719,7 @@ class FederatedShareProviderTest extends \Test\TestCase { ->setValue('item_type', $qb->createNamedParameter('file')) ->setValue('item_source', $qb->createNamedParameter(42)) ->setValue('file_source', $qb->createNamedParameter(42)) - ->execute(); + ->executeStatement(); $id = $qb->getLastInsertId(); @@ -754,20 +731,15 @@ class FederatedShareProviderTest extends \Test\TestCase { ->where( $qb->expr()->eq('id', $qb->createNamedParameter($id)) ); - $cursor = $qb->execute(); + $cursor = $qb->executeQuery(); $data = $cursor->fetchAll(); $cursor->closeCursor(); $this->assertCount($rowDeleted ? 0 : 1, $data); } - /** - * @dataProvider dataTestIsOutgoingServer2serverShareEnabled - * - * @param string $isEnabled - * @param bool $expected - */ - public function testIsOutgoingServer2serverShareEnabled($internalOnly, $isEnabled, $expected): void { + #[\PHPUnit\Framework\Attributes\DataProvider('dataTestIsOutgoingServer2serverShareEnabled')] + public function testIsOutgoingServer2serverShareEnabled(bool $internalOnly, string $isEnabled, bool $expected): void { $this->gsConfig->expects($this->once())->method('onlyInternalFederation') ->willReturn($internalOnly); $this->config->expects($this->any())->method('getAppValue') @@ -779,7 +751,7 @@ class FederatedShareProviderTest extends \Test\TestCase { ); } - public function dataTestIsOutgoingServer2serverShareEnabled() { + public static function dataTestIsOutgoingServer2serverShareEnabled(): array { return [ [false, 'yes', true], [false, 'no', false], @@ -788,13 +760,8 @@ class FederatedShareProviderTest extends \Test\TestCase { ]; } - /** - * @dataProvider dataTestIsIncomingServer2serverShareEnabled - * - * @param string $isEnabled - * @param bool $expected - */ - public function testIsIncomingServer2serverShareEnabled($onlyInternal, $isEnabled, $expected): void { + #[\PHPUnit\Framework\Attributes\DataProvider('dataTestIsIncomingServer2serverShareEnabled')] + public function testIsIncomingServer2serverShareEnabled(bool $onlyInternal, string $isEnabled, bool $expected): void { $this->gsConfig->expects($this->once())->method('onlyInternalFederation') ->willReturn($onlyInternal); $this->config->expects($this->any())->method('getAppValue') @@ -806,7 +773,7 @@ class FederatedShareProviderTest extends \Test\TestCase { ); } - public function dataTestIsIncomingServer2serverShareEnabled() { + public static function dataTestIsIncomingServer2serverShareEnabled(): array { return [ [false, 'yes', true], [false, 'no', false], @@ -815,13 +782,8 @@ class FederatedShareProviderTest extends \Test\TestCase { ]; } - /** - * @dataProvider dataTestIsLookupServerQueriesEnabled - * - * @param string $isEnabled - * @param bool $expected - */ - public function testIsLookupServerQueriesEnabled($gsEnabled, $isEnabled, $expected): void { + #[\PHPUnit\Framework\Attributes\DataProvider('dataTestIsLookupServerQueriesEnabled')] + public function testIsLookupServerQueriesEnabled(bool $gsEnabled, string $isEnabled, bool $expected): void { $this->gsConfig->expects($this->once())->method('isGlobalScaleEnabled') ->willReturn($gsEnabled); $this->config->expects($this->any())->method('getAppValue') @@ -834,7 +796,7 @@ class FederatedShareProviderTest extends \Test\TestCase { } - public function dataTestIsLookupServerQueriesEnabled() { + public static function dataTestIsLookupServerQueriesEnabled(): array { return [ [true, 'yes', true], [true, 'no', true], @@ -846,13 +808,8 @@ class FederatedShareProviderTest extends \Test\TestCase { ]; } - /** - * @dataProvider dataTestIsLookupServerUploadEnabled - * - * @param string $isEnabled - * @param bool $expected - */ - public function testIsLookupServerUploadEnabled($gsEnabled, $isEnabled, $expected): void { + #[\PHPUnit\Framework\Attributes\DataProvider('dataTestIsLookupServerUploadEnabled')] + public function testIsLookupServerUploadEnabled(bool $gsEnabled, string $isEnabled, bool $expected): void { $this->gsConfig->expects($this->once())->method('isGlobalScaleEnabled') ->willReturn($gsEnabled); $this->config->expects($this->any())->method('getAppValue') @@ -864,7 +821,7 @@ class FederatedShareProviderTest extends \Test\TestCase { ); } - public function dataTestIsLookupServerUploadEnabled() { + public static function dataTestIsLookupServerUploadEnabled(): array { return [ [true, 'yes', false], [true, 'no', false], @@ -880,8 +837,8 @@ class FederatedShareProviderTest extends \Test\TestCase { $userManager = Server::get(IUserManager::class); $rootFolder = Server::get(IRootFolder::class); - $u1 = $userManager->createUser('testFed', md5(time())); - $u2 = $userManager->createUser('testFed2', md5(time())); + $u1 = $userManager->createUser('testFed', md5((string)time())); + $u2 = $userManager->createUser('testFed2', md5((string)time())); $folder1 = $rootFolder->getUserFolder($u1->getUID())->newFolder('foo'); $file1 = $folder1->newFile('bar1'); @@ -934,7 +891,7 @@ class FederatedShareProviderTest extends \Test\TestCase { $userManager = Server::get(IUserManager::class); $rootFolder = Server::get(IRootFolder::class); - $u1 = $userManager->createUser('testFed', md5(time())); + $u1 = $userManager->createUser('testFed', md5((string)time())); $folder1 = $rootFolder->getUserFolder($u1->getUID())->newFolder('foo'); $file1 = $folder1->newFile('bar1'); |