Merge pull request #53179 from nextcloud/tests/noid/federated-file-sharing

test: Migrate federated file sharing to PHPUnit 10
This commit is contained in:
Joas Schilling 2025-05-29 15:21:53 +02:00 committed by GitHub
commit 14533b67b7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
22 changed files with 365 additions and 579 deletions

View file

@ -1,5 +1,6 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@ -16,31 +17,20 @@ use OCP\ICacheFactory;
use OCP\IL10N;
use OCP\IURLGenerator;
use OCP\IUserManager;
use PHPUnit\Framework\MockObject\MockObject;
class AddressHandlerTest extends \Test\TestCase {
/** @var IManager|\PHPUnit\Framework\MockObject\MockObject */
protected $contactsManager;
/** @var AddressHandler */
private $addressHandler;
/** @var IURLGenerator | \PHPUnit\Framework\MockObject\MockObject */
private $urlGenerator;
/** @var IL10N | \PHPUnit\Framework\MockObject\MockObject */
private $il10n;
/** @var CloudIdManager */
private $cloudIdManager;
protected IManager&MockObject $contactsManager;
private IURLGenerator&MockObject $urlGenerator;
private IL10N&MockObject $il10n;
private CloudIdManager $cloudIdManager;
private AddressHandler $addressHandler;
protected function setUp(): void {
parent::setUp();
$this->urlGenerator = $this->getMockBuilder(IURLGenerator::class)
->getMock();
$this->il10n = $this->getMockBuilder(IL10N::class)
->getMock();
$this->urlGenerator = $this->createMock(IURLGenerator::class);
$this->il10n = $this->createMock(IL10N::class);
$this->contactsManager = $this->createMock(IManager::class);
$this->cloudIdManager = new CloudIdManager(
@ -54,7 +44,7 @@ class AddressHandlerTest extends \Test\TestCase {
$this->addressHandler = new AddressHandler($this->urlGenerator, $this->il10n, $this->cloudIdManager);
}
public function dataTestSplitUserRemote() {
public static function dataTestSplitUserRemote(): array {
$userPrefix = ['user@name', 'username'];
$protocols = ['', 'http://', 'https://'];
$remotes = [
@ -92,12 +82,8 @@ class AddressHandlerTest extends \Test\TestCase {
/**
* @dataProvider dataTestSplitUserRemote
*
* @param string $remote
* @param string $expectedUser
* @param string $expectedUrl
*/
public function testSplitUserRemote($remote, $expectedUser, $expectedUrl): void {
public function testSplitUserRemote(string $remote, string $expectedUser, string $expectedUrl): void {
$this->contactsManager->expects($this->any())
->method('search')
->willReturn([]);
@ -107,7 +93,7 @@ class AddressHandlerTest extends \Test\TestCase {
$this->assertSame($expectedUrl, $remoteUrl);
}
public function dataTestSplitUserRemoteError() {
public static function dataTestSplitUserRemoteError(): array {
return [
// Invalid path
['user@'],
@ -127,10 +113,8 @@ class AddressHandlerTest extends \Test\TestCase {
/**
* @dataProvider dataTestSplitUserRemoteError
*
* @param string $id
*/
public function testSplitUserRemoteError($id): void {
public function testSplitUserRemoteError(string $id): void {
$this->expectException(HintException::class);
$this->addressHandler->splitUserRemote($id);
@ -138,20 +122,14 @@ class AddressHandlerTest extends \Test\TestCase {
/**
* @dataProvider dataTestCompareAddresses
*
* @param string $user1
* @param string $server1
* @param string $user2
* @param string $server2
* @param bool $expected
*/
public function testCompareAddresses($user1, $server1, $user2, $server2, $expected): void {
public function testCompareAddresses(string $user1, string $server1, string $user2, string $server2, bool $expected): void {
$this->assertSame($expected,
$this->addressHandler->compareAddresses($user1, $server1, $user2, $server2)
);
}
public function dataTestCompareAddresses() {
public static function dataTestCompareAddresses(): array {
return [
['user1', 'http://server1', 'user1', 'http://server1', true],
['user1', 'https://server1', 'user1', 'http://server1', true],
@ -173,35 +151,29 @@ class AddressHandlerTest extends \Test\TestCase {
/**
* @dataProvider dataTestRemoveProtocolFromUrl
*
* @param string $url
* @param string $expectedResult
*/
public function testRemoveProtocolFromUrl($url, $expectedResult): void {
public function testRemoveProtocolFromUrl(string $url, string $expectedResult): void {
$result = $this->addressHandler->removeProtocolFromUrl($url);
$this->assertSame($expectedResult, $result);
}
public function dataTestRemoveProtocolFromUrl() {
public static function dataTestRemoveProtocolFromUrl(): array {
return [
['http://owncloud.org', 'owncloud.org'],
['https://owncloud.org', 'owncloud.org'],
['owncloud.org', 'owncloud.org'],
['http://example.tld', 'example.tld'],
['https://example.tld', 'example.tld'],
['example.tld', 'example.tld'],
];
}
/**
* @dataProvider dataTestUrlContainProtocol
*
* @param string $url
* @param bool $expectedResult
*/
public function testUrlContainProtocol($url, $expectedResult): void {
public function testUrlContainProtocol(string $url, bool $expectedResult): void {
$result = $this->addressHandler->urlContainProtocol($url);
$this->assertSame($expectedResult, $result);
}
public function dataTestUrlContainProtocol() {
public static function dataTestUrlContainProtocol(): array {
return [
['http://nextcloud.com', true],
['https://nextcloud.com', true],

View file

@ -1,4 +1,6 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@ -31,64 +33,35 @@ use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
class MountPublicLinkControllerTest extends \Test\TestCase {
/** @var IContactsManager|MockObject */
protected $contactsManager;
/** @var MountPublicLinkController */
private $controller;
/** @var IRequest|MockObject */
private $request;
/** @var FederatedShareProvider|MockObject */
private $federatedShareProvider;
/** @var IManager|MockObject */
private $shareManager;
/** @var AddressHandler|MockObject */
private $addressHandler;
/** @var IRootFolder|MockObject */
private $rootFolder;
/** @var IUserManager|MockObject */
private $userManager;
/** @var ISession|MockObject */
private $session;
/** @var IL10N|MockObject */
private $l10n;
/** @var IUserSession|MockObject */
private $userSession;
/** @var IClientService|MockObject */
private $clientService;
/** @var IShare */
private $share;
/** @var ICloudIdManager */
private $cloudIdManager;
protected IContactsManager&MockObject $contactsManager;
private IRequest&MockObject $request;
private FederatedShareProvider&MockObject $federatedShareProvider;
private IManager&MockObject $shareManager;
private AddressHandler&MockObject $addressHandler;
private IRootFolder&MockObject $rootFolder;
private IUserManager&MockObject $userManager;
private ISession&MockObject $session;
private IL10N&MockObject $l10n;
private IUserSession&MockObject $userSession;
private IClientService&MockObject $clientService;
private IShare $share;
private ICloudIdManager $cloudIdManager;
private MountPublicLinkController $controller;
protected function setUp(): void {
parent::setUp();
$this->request = $this->getMockBuilder(IRequest::class)->disableOriginalConstructor()->getMock();
$this->federatedShareProvider = $this->getMockBuilder('OCA\FederatedFileSharing\FederatedShareProvider')
->disableOriginalConstructor()->getMock();
$this->shareManager = $this->getMockBuilder(IManager::class)->disableOriginalConstructor()->getMock();
$this->addressHandler = $this->getMockBuilder('OCA\FederatedFileSharing\AddressHandler')
->disableOriginalConstructor()->getMock();
$this->rootFolder = $this->getMockBuilder('OCP\Files\IRootFolder')->disableOriginalConstructor()->getMock();
$this->userManager = $this->getMockBuilder(IUserManager::class)->disableOriginalConstructor()->getMock();
$this->request = $this->createMock(IRequest::class);
$this->federatedShareProvider = $this->createMock(FederatedShareProvider::class);
$this->shareManager = $this->createMock(IManager::class);
$this->addressHandler = $this->createMock(AddressHandler::class);
$this->rootFolder = $this->createMock(IRootFolder::class);
$this->userManager = $this->createMock(IUserManager::class);
$this->share = new Share($this->rootFolder, $this->userManager);
$this->session = $this->getMockBuilder(ISession::class)->disableOriginalConstructor()->getMock();
$this->l10n = $this->getMockBuilder(IL10N::class)->disableOriginalConstructor()->getMock();
$this->userSession = $this->getMockBuilder(IUserSession::class)->disableOriginalConstructor()->getMock();
$this->clientService = $this->getMockBuilder('OCP\Http\Client\IClientService')->disableOriginalConstructor()->getMock();
$this->session = $this->createMock(ISession::class);
$this->l10n = $this->createMock(IL10N::class);
$this->userSession = $this->createMock(IUserSession::class);
$this->clientService = $this->createMock(IClientService::class);
$this->contactsManager = $this->createMock(IContactsManager::class);
$this->cloudIdManager = new CloudIdManager(
$this->contactsManager,
@ -114,23 +87,16 @@ class MountPublicLinkControllerTest extends \Test\TestCase {
/**
* @dataProvider dataTestCreateFederatedShare
*
* @param string $shareWith
* @param bool $outgoingSharesAllowed
* @param bool $validShareWith
* @param string $token
* @param bool $validToken
* @param bool $createSuccessful
* @param string $expectedReturnData
*/
public function testCreateFederatedShare($shareWith,
$outgoingSharesAllowed,
$validShareWith,
$token,
$validToken,
$createSuccessful,
$expectedReturnData,
$permissions,
public function testCreateFederatedShare(
string $shareWith,
bool $outgoingSharesAllowed,
bool $validShareWith,
string $token,
bool $validToken,
bool $createSuccessful,
string $expectedReturnData,
int $permissions,
): void {
$this->federatedShareProvider->expects($this->any())
->method('isOutgoingServer2serverShareEnabled')
@ -188,7 +154,7 @@ class MountPublicLinkControllerTest extends \Test\TestCase {
}
}
public function dataTestCreateFederatedShare() {
public static function dataTestCreateFederatedShare(): array {
return [
//shareWith, outgoingSharesAllowed, validShareWith, token, validToken, createSuccessful, expectedReturnData
['user@server', true, true, 'token', true, true, 'server', 31],

View file

@ -1,5 +1,6 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@ -23,6 +24,7 @@ use OCP\IRequest;
use OCP\IUserManager;
use OCP\Share;
use OCP\Share\IShare;
use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
/**
@ -32,65 +34,32 @@ use Psr\Log\LoggerInterface;
* @group DB
*/
class RequestHandlerControllerTest extends \Test\TestCase {
private $owner = 'owner';
private $user1 = 'user1';
private $user2 = 'user2';
private $ownerCloudId = 'owner@server0.org';
private $user1CloudId = 'user1@server1.org';
private $user2CloudId = 'user2@server2.org';
private string $owner = 'owner';
private string $user1 = 'user1';
private string $user2 = 'user2';
private string $ownerCloudId = 'owner@server0.org';
private string $user1CloudId = 'user1@server1.org';
/** @var RequestHandlerController */
private $requestHandler;
/** @var FederatedShareProvider|\PHPUnit\Framework\MockObject\MockObject */
private $federatedShareProvider;
/** @var Notifications|\PHPUnit\Framework\MockObject\MockObject */
private $notifications;
/** @var AddressHandler|\PHPUnit\Framework\MockObject\MockObject */
private $addressHandler;
/** @var IUserManager|\PHPUnit\Framework\MockObject\MockObject */
private $userManager;
/** @var IShare|\PHPUnit\Framework\MockObject\MockObject */
private $share;
/** @var ICloudIdManager|\PHPUnit\Framework\MockObject\MockObject */
private $cloudIdManager;
/** @var LoggerInterface|\PHPUnit\Framework\MockObject\MockObject */
private $logger;
/** @var IRequest|\PHPUnit\Framework\MockObject\MockObject */
private $request;
/** @var IDBConnection|\PHPUnit\Framework\MockObject\MockObject */
private $connection;
/** @var Share\IManager|\PHPUnit\Framework\MockObject\MockObject */
private $shareManager;
/** @var ICloudFederationFactory|\PHPUnit\Framework\MockObject\MockObject */
private $cloudFederationFactory;
/** @var ICloudFederationProviderManager|\PHPUnit\Framework\MockObject\MockObject */
private $cloudFederationProviderManager;
/** @var ICloudFederationProvider|\PHPUnit\Framework\MockObject\MockObject */
private $cloudFederationProvider;
/** @var ICloudFederationShare|\PHPUnit\Framework\MockObject\MockObject */
private $cloudFederationShare;
/** @var IEventDispatcher|\PHPUnit\Framework\MockObject\MockObject */
private $eventDispatcher;
private RequestHandlerController $requestHandler;
private FederatedShareProvider&MockObject $federatedShareProvider;
private Notifications&MockObject $notifications;
private AddressHandler&MockObject $addressHandler;
private IUserManager&MockObject $userManager;
private IShare&MockObject $share;
private ICloudIdManager&MockObject $cloudIdManager;
private LoggerInterface&MockObject $logger;
private IRequest&MockObject $request;
private IDBConnection&MockObject $connection;
private Share\IManager&MockObject $shareManager;
private ICloudFederationFactory&MockObject $cloudFederationFactory;
private ICloudFederationProviderManager&MockObject $cloudFederationProviderManager;
private ICloudFederationProvider&MockObject $cloudFederationProvider;
private ICloudFederationShare&MockObject $cloudFederationShare;
private IEventDispatcher&MockObject $eventDispatcher;
protected function setUp(): void {
$this->share = $this->getMockBuilder(IShare::class)->getMock();
$this->federatedShareProvider = $this->getMockBuilder('OCA\FederatedFileSharing\FederatedShareProvider')
->disableOriginalConstructor()->getMock();
$this->share = $this->createMock(IShare::class);
$this->federatedShareProvider = $this->createMock(FederatedShareProvider::class);
$this->federatedShareProvider->expects($this->any())
->method('isOutgoingServer2serverShareEnabled')->willReturn(true);
$this->federatedShareProvider->expects($this->any())
@ -98,11 +67,9 @@ class RequestHandlerControllerTest extends \Test\TestCase {
$this->federatedShareProvider->expects($this->any())->method('getShareById')
->willReturn($this->share);
$this->notifications = $this->getMockBuilder('OCA\FederatedFileSharing\Notifications')
->disableOriginalConstructor()->getMock();
$this->addressHandler = $this->getMockBuilder('OCA\FederatedFileSharing\AddressHandler')
->disableOriginalConstructor()->getMock();
$this->userManager = $this->getMockBuilder(IUserManager::class)->getMock();
$this->notifications = $this->createMock(Notifications::class);
$this->addressHandler = $this->createMock(AddressHandler::class);
$this->userManager = $this->createMock(IUserManager::class);
$this->cloudIdManager = $this->createMock(ICloudIdManager::class);
$this->request = $this->createMock(IRequest::class);
$this->connection = $this->createMock(IDBConnection::class);
@ -149,7 +116,7 @@ class RequestHandlerControllerTest extends \Test\TestCase {
'file'
)->willReturn($this->cloudFederationShare);
/** @var ICloudFederationProvider|\PHPUnit\Framework\MockObject\MockObject $provider */
/** @var ICloudFederationProvider&MockObject $provider */
$this->cloudFederationProviderManager->expects($this->once())
->method('getCloudFederationProvider')
->with('file')

View file

@ -1,5 +1,6 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@ -38,61 +39,39 @@ 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->contactsManager,
@ -122,16 +101,16 @@ 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'],
@ -141,11 +120,11 @@ class FederatedShareProviderTest extends \Test\TestCase {
/**
* @dataProvider dataTestCreate
*/
public function testCreate($expirationDate, $expectedDataDate): void {
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 +169,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 +206,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 +256,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 +267,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 +317,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 +328,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 +360,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 +371,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');
@ -443,8 +422,8 @@ class FederatedShareProviderTest extends \Test\TestCase {
/**
* @dataProvider dataTestUpdate
*/
public function testUpdate($owner, $sharedBy, $expirationDate): void {
$this->provider = $this->getMockBuilder('OCA\FederatedFileSharing\FederatedShareProvider')
public function testUpdate(string $owner, string $sharedBy, ?\DateTime $expirationDate): void {
$this->provider = $this->getMockBuilder(FederatedShareProvider::class)
->setConstructorArgs(
[
$this->connection,
@ -460,11 +439,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 +501,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 +509,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 +555,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 +602,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 +644,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 +694,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],
@ -732,7 +713,7 @@ 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 {
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 +723,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,7 +735,7 @@ class FederatedShareProviderTest extends \Test\TestCase {
->where(
$qb->expr()->eq('id', $qb->createNamedParameter($id))
);
$cursor = $qb->execute();
$cursor = $qb->executeQuery();
$data = $cursor->fetchAll();
$cursor->closeCursor();
@ -763,11 +744,8 @@ class FederatedShareProviderTest extends \Test\TestCase {
/**
* @dataProvider dataTestIsOutgoingServer2serverShareEnabled
*
* @param string $isEnabled
* @param bool $expected
*/
public function testIsOutgoingServer2serverShareEnabled($internalOnly, $isEnabled, $expected): void {
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 +757,7 @@ class FederatedShareProviderTest extends \Test\TestCase {
);
}
public function dataTestIsOutgoingServer2serverShareEnabled() {
public static function dataTestIsOutgoingServer2serverShareEnabled(): array {
return [
[false, 'yes', true],
[false, 'no', false],
@ -790,11 +768,8 @@ class FederatedShareProviderTest extends \Test\TestCase {
/**
* @dataProvider dataTestIsIncomingServer2serverShareEnabled
*
* @param string $isEnabled
* @param bool $expected
*/
public function testIsIncomingServer2serverShareEnabled($onlyInternal, $isEnabled, $expected): void {
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 +781,7 @@ class FederatedShareProviderTest extends \Test\TestCase {
);
}
public function dataTestIsIncomingServer2serverShareEnabled() {
public static function dataTestIsIncomingServer2serverShareEnabled(): array {
return [
[false, 'yes', true],
[false, 'no', false],
@ -817,11 +792,8 @@ class FederatedShareProviderTest extends \Test\TestCase {
/**
* @dataProvider dataTestIsLookupServerQueriesEnabled
*
* @param string $isEnabled
* @param bool $expected
*/
public function testIsLookupServerQueriesEnabled($gsEnabled, $isEnabled, $expected): void {
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 +806,7 @@ class FederatedShareProviderTest extends \Test\TestCase {
}
public function dataTestIsLookupServerQueriesEnabled() {
public static function dataTestIsLookupServerQueriesEnabled(): array {
return [
[true, 'yes', true],
[true, 'no', true],
@ -848,11 +820,8 @@ class FederatedShareProviderTest extends \Test\TestCase {
/**
* @dataProvider dataTestIsLookupServerUploadEnabled
*
* @param string $isEnabled
* @param bool $expected
*/
public function testIsLookupServerUploadEnabled($gsEnabled, $isEnabled, $expected): void {
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 +833,7 @@ class FederatedShareProviderTest extends \Test\TestCase {
);
}
public function dataTestIsLookupServerUploadEnabled() {
public static function dataTestIsLookupServerUploadEnabled(): array {
return [
[true, 'yes', false],
[true, 'no', false],
@ -880,8 +849,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 +903,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');

View file

@ -1,5 +1,6 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@ -8,6 +9,7 @@
namespace OCA\FederatedFileSharing\Tests;
use OCA\FederatedFileSharing\AddressHandler;
use OCA\FederatedFileSharing\BackgroundJob\RetryJob;
use OCA\FederatedFileSharing\Notifications;
use OCP\BackgroundJob\IJobList;
use OCP\EventDispatcher\IEventDispatcher;
@ -19,38 +21,22 @@ use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
class NotificationsTest extends \Test\TestCase {
/** @var AddressHandler|MockObject */
private $addressHandler;
/** @var IClientService|MockObject */
private $httpClientService;
/** @var IDiscoveryService|MockObject */
private $discoveryService;
/** @var IJobList|MockObject */
private $jobList;
/** @var ICloudFederationProviderManager|MockObject */
private $cloudFederationProviderManager;
/** @var ICloudFederationFactory|MockObject */
private $cloudFederationFactory;
/** @var IEventDispatcher|MockObject */
private $eventDispatcher;
/** @var LoggerInterface|MockObject */
private $logger;
private AddressHandler&MockObject $addressHandler;
private IClientService&MockObject $httpClientService;
private IDiscoveryService&MockObject $discoveryService;
private IJobList&MockObject $jobList;
private ICloudFederationProviderManager&MockObject $cloudFederationProviderManager;
private ICloudFederationFactory&MockObject $cloudFederationFactory;
private IEventDispatcher&MockObject $eventDispatcher;
private LoggerInterface&MockObject $logger;
protected function setUp(): void {
parent::setUp();
$this->jobList = $this->getMockBuilder('OCP\BackgroundJob\IJobList')->getMock();
$this->discoveryService = $this->getMockBuilder(IDiscoveryService::class)->getMock();
$this->httpClientService = $this->getMockBuilder('OCP\Http\Client\IClientService')->getMock();
$this->addressHandler = $this->getMockBuilder('OCA\FederatedFileSharing\AddressHandler')
->disableOriginalConstructor()->getMock();
$this->jobList = $this->createMock(IJobList::class);
$this->discoveryService = $this->createMock(IDiscoveryService::class);
$this->httpClientService = $this->createMock(IClientService::class);
$this->addressHandler = $this->createMock(AddressHandler::class);
$this->logger = $this->createMock(LoggerInterface::class);
$this->cloudFederationProviderManager = $this->createMock(ICloudFederationProviderManager::class);
$this->cloudFederationFactory = $this->createMock(ICloudFederationFactory::class);
@ -58,14 +44,11 @@ class NotificationsTest extends \Test\TestCase {
}
/**
* get instance of Notifications class
*
* @param array $mockedMethods methods which should be mocked
* @return Notifications | \PHPUnit\Framework\MockObject\MockObject
* @return Notifications|MockObject
*/
private function getInstance(array $mockedMethods = []) {
if (empty($mockedMethods)) {
$instance = new Notifications(
return new Notifications(
$this->addressHandler,
$this->httpClientService,
$this->discoveryService,
@ -75,34 +58,30 @@ class NotificationsTest extends \Test\TestCase {
$this->eventDispatcher,
$this->logger,
);
} else {
$instance = $this->getMockBuilder('OCA\FederatedFileSharing\Notifications')
->setConstructorArgs(
[
$this->addressHandler,
$this->httpClientService,
$this->discoveryService,
$this->jobList,
$this->cloudFederationProviderManager,
$this->cloudFederationFactory,
$this->eventDispatcher,
$this->logger,
]
)->setMethods($mockedMethods)->getMock();
}
return $instance;
return $this->getMockBuilder(Notifications::class)
->setConstructorArgs(
[
$this->addressHandler,
$this->httpClientService,
$this->discoveryService,
$this->jobList,
$this->cloudFederationProviderManager,
$this->cloudFederationFactory,
$this->eventDispatcher,
$this->logger,
]
)
->onlyMethods($mockedMethods)
->getMock();
}
/**
* @dataProvider dataTestSendUpdateToRemote
*
* @param int $try
* @param array $httpRequestResult
* @param bool $expected
*/
public function testSendUpdateToRemote($try, $httpRequestResult, $expected): void {
public function testSendUpdateToRemote(int $try, array $httpRequestResult, bool $expected): void {
$remote = 'http://remote';
$id = 42;
$timestamp = 63576;
@ -120,7 +99,7 @@ class NotificationsTest extends \Test\TestCase {
if ($try === 0 && $expected === false) {
$this->jobList->expects($this->once())->method('add')
->with(
'OCA\FederatedFileSharing\BackgroundJob\RetryJob',
RetryJob::class,
[
'remote' => $remote,
'remoteId' => $id,
@ -141,7 +120,7 @@ class NotificationsTest extends \Test\TestCase {
}
public function dataTestSendUpdateToRemote() {
public static function dataTestSendUpdateToRemote(): array {
return [
// test if background job is added correctly
[0, ['success' => true, 'result' => json_encode(['ocs' => ['meta' => ['statuscode' => 200]]])], true],

View file

@ -1,4 +1,6 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@ -12,17 +14,14 @@ use OCP\AppFramework\Services\IInitialState;
use OCP\GlobalScale\IConfig;
use OCP\IL10N;
use OCP\IURLGenerator;
use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class AdminTest extends TestCase {
/** @var Admin */
private $admin;
/** @var FederatedShareProvider */
private $federatedShareProvider;
/** @var IConfig|\PHPUnit\Framework\MockObject\MockObject */
private $gsConfig;
/** @var IInitialState|\PHPUnit\Framework\MockObject\MockObject */
private $initialState;
private FederatedShareProvider&MockObject $federatedShareProvider;
private IConfig $gsConfig;
private IInitialState&MockObject $initialState;
private Admin $admin;
protected function setUp(): void {
parent::setUp();
@ -43,7 +42,7 @@ class AdminTest extends TestCase {
);
}
public function sharingStateProvider() {
public static function sharingStateProvider(): array {
return [
[
true,
@ -56,9 +55,8 @@ class AdminTest extends TestCase {
/**
* @dataProvider sharingStateProvider
* @param bool $state
*/
public function testGetForm($state): void {
public function testGetForm(bool $state): void {
$this->federatedShareProvider
->expects($this->once())
->method('isOutgoingServer2serverShareEnabled')
@ -98,20 +96,24 @@ class AdminTest extends TestCase {
$this->gsConfig->expects($this->once())->method('onlyInternalFederation')
->willReturn($state);
$calls = [
['internalOnly', $state],
['sharingFederatedDocUrl', 'doc-link'],
['outgoingServer2serverShareEnabled', $state],
['incomingServer2serverShareEnabled', $state],
['federatedGroupSharingSupported', $state],
['outgoingServer2serverGroupShareEnabled', $state],
['incomingServer2serverGroupShareEnabled', $state],
['lookupServerEnabled', $state],
['lookupServerUploadEnabled', $state],
['federatedTrustedShareAutoAccept', $state],
];
$this->initialState->expects($this->exactly(10))
->method('provideInitialState')
->withConsecutive(
['internalOnly', $state],
['sharingFederatedDocUrl', 'doc-link'],
['outgoingServer2serverShareEnabled', $state],
['incomingServer2serverShareEnabled', $state],
['federatedGroupSharingSupported', $state],
['outgoingServer2serverGroupShareEnabled', $state],
['incomingServer2serverGroupShareEnabled', $state],
['lookupServerEnabled', $state],
['lookupServerUploadEnabled', $state],
['federatedTrustedShareAutoAccept', $state]
);
->willReturnCallback(function () use (&$calls) {
$expected = array_shift($calls);
$this->assertSame($expected, func_get_args());
});
$expected = new TemplateResponse('federatedfilesharing', 'settings-admin', [], '');
$this->assertEquals($expected, $this->admin->getForm());

View file

@ -1,5 +1,6 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@ -9,6 +10,7 @@ namespace OCA\FederatedFileSharing\Tests;
use OC\Files\Filesystem;
use OC\Group\Database;
use OCP\Files\IRootFolder;
use OCP\IGroupManager;
use OCP\IUserManager;
use OCP\IUserSession;
@ -70,12 +72,7 @@ abstract class TestCase extends \Test\TestCase {
parent::tearDownAfterClass();
}
/**
* @param string $user
* @param bool $create
* @param bool $password
*/
protected static function loginHelper($user, $create = false, $password = false) {
protected static function loginHelper(string $user, bool $create = false, bool $password = false) {
if ($password === false) {
$password = $user;
}
@ -96,7 +93,7 @@ abstract class TestCase extends \Test\TestCase {
Server::get(IUserSession::class)->setUser(null);
Filesystem::tearDown();
Server::get(IUserSession::class)->login($user, $password);
\OC::$server->getUserFolder($user);
\OCP\Server::get(IRootFolder::class)->getUserFolder($user);
\OC_Util::setupFS($user);
}

View file

@ -1,5 +1,6 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@ -9,17 +10,12 @@ namespace OCA\FederatedFileSharing\Tests;
use OCA\FederatedFileSharing\TokenHandler;
use OCP\Security\ISecureRandom;
use PHPUnit\Framework\MockObject\MockObject;
class TokenHandlerTest extends \Test\TestCase {
/** @var TokenHandler */
private $tokenHandler;
/** @var ISecureRandom | \PHPUnit\Framework\MockObject\MockObject */
private $secureRandom;
/** @var int */
private $expectedTokenLength = 15;
private TokenHandler $tokenHandler;
private ISecureRandom&MockObject $secureRandom;
private int $expectedTokenLength = 15;
protected function setUp(): void {
parent::setUp();

View file

@ -1,4 +1,6 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@ -18,7 +20,7 @@ use Test\TestCase;
* @group DB
*/
class GenericTest extends TestCase {
public function dataFilters() {
public static function dataFilters(): array {
return [
[Favorites::class],
[FileChanges::class],
@ -27,18 +29,16 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataFilters
* @param string $filterClass
*/
public function testImplementsInterface($filterClass): void {
public function testImplementsInterface(string $filterClass): void {
$filter = Server::get($filterClass);
$this->assertInstanceOf(IFilter::class, $filter);
}
/**
* @dataProvider dataFilters
* @param string $filterClass
*/
public function testGetIdentifier($filterClass): void {
public function testGetIdentifier(string $filterClass): void {
/** @var IFilter $filter */
$filter = Server::get($filterClass);
$this->assertIsString($filter->getIdentifier());
@ -46,9 +46,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataFilters
* @param string $filterClass
*/
public function testGetName($filterClass): void {
public function testGetName(string $filterClass): void {
/** @var IFilter $filter */
$filter = Server::get($filterClass);
$this->assertIsString($filter->getName());
@ -56,9 +55,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataFilters
* @param string $filterClass
*/
public function testGetPriority($filterClass): void {
public function testGetPriority(string $filterClass): void {
/** @var IFilter $filter */
$filter = Server::get($filterClass);
$priority = $filter->getPriority();
@ -69,9 +67,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataFilters
* @param string $filterClass
*/
public function testGetIcon($filterClass): void {
public function testGetIcon(string $filterClass): void {
/** @var IFilter $filter */
$filter = Server::get($filterClass);
$this->assertIsString($filter->getIcon());
@ -80,9 +77,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataFilters
* @param string $filterClass
*/
public function testFilterTypes($filterClass): void {
public function testFilterTypes(string $filterClass): void {
/** @var IFilter $filter */
$filter = Server::get($filterClass);
$this->assertIsArray($filter->filterTypes([]));
@ -90,9 +86,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataFilters
* @param string $filterClass
*/
public function testAllowedApps($filterClass): void {
public function testAllowedApps(string $filterClass): void {
/** @var IFilter $filter */
$filter = Server::get($filterClass);
$this->assertIsArray($filter->allowedApps());

View file

@ -1,4 +1,6 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@ -26,23 +28,14 @@ use Test\TestCase;
* @package OCA\Files\Tests\Activity
*/
class ProviderTest extends TestCase {
/** @var IFactory|MockObject */
protected $l10nFactory;
/** @var IURLGenerator|MockObject */
protected $url;
/** @var IManager|MockObject */
protected $activityManager;
/** @var IUserManager|MockObject */
protected $userManager;
/** @var IRootFolder|MockObject */
protected $rootFolder;
/** @var ICloudIdManager|MockObject */
protected $cloudIdManager;
/** @var IContactsManager|MockObject */
protected $contactsManager;
/** @var IEventMerger|MockObject */
protected $eventMerger;
protected IFactory&MockObject $l10nFactory;
protected IURLGenerator&MockObject $url;
protected IManager&MockObject $activityManager;
protected IUserManager&MockObject $userManager;
protected IRootFolder&MockObject $rootFolder;
protected ICloudIdManager&MockObject $cloudIdManager;
protected IContactsManager&MockObject $contactsManager;
protected IEventMerger&MockObject $eventMerger;
protected function setUp(): void {
parent::setUp();
@ -74,7 +67,7 @@ class ProviderTest extends TestCase {
$this->contactsManager,
$this->eventMerger,
])
->setMethods($methods)
->onlyMethods($methods)
->getMock();
}
return new Provider(
@ -89,7 +82,7 @@ class ProviderTest extends TestCase {
);
}
public function dataGetFile() {
public static function dataGetFile(): array {
return [
[[42 => '/FortyTwo.txt'], null, '42', 'FortyTwo.txt', 'FortyTwo.txt'],
[['23' => '/Twenty/Three.txt'], null, '23', 'Three.txt', 'Twenty/Three.txt'],
@ -99,13 +92,8 @@ class ProviderTest extends TestCase {
/**
* @dataProvider dataGetFile
* @param mixed $parameter
* @param mixed $eventId
* @param int $id
* @param string $name
* @param string $path
*/
public function testGetFile($parameter, $eventId, $id, $name, $path): void {
public function testGetFile(array|string $parameter, ?int $eventId, string $id, string $name, string $path): void {
$provider = $this->getProvider();
if ($eventId !== null) {
@ -139,7 +127,7 @@ class ProviderTest extends TestCase {
self::invokePrivate($provider, 'getFile', ['/Foo/Bar.txt', null]);
}
public function dataGetUser() {
public static function dataGetUser(): array {
return [
['test', 'Test user', null, ['type' => 'user', 'id' => 'test', 'name' => 'Test user']],
['test@http://localhost', null, ['user' => 'test', 'displayId' => 'test@localhost', 'remote' => 'localhost', 'name' => null], ['type' => 'user', 'id' => 'test', 'name' => 'test@localhost', 'server' => 'localhost']],
@ -150,10 +138,6 @@ class ProviderTest extends TestCase {
/**
* @dataProvider dataGetUser
* @param string $uid
* @param string|null $userDisplayName
* @param array|null $cloudIdData
* @param array $expected
*/
public function testGetUser(string $uid, ?string $userDisplayName, ?array $cloudIdData, array $expected): void {
$provider = $this->getProvider();

View file

@ -1,4 +1,6 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@ -12,7 +14,7 @@ use OCP\Server;
use Test\TestCase;
class GenericTest extends TestCase {
public function dataSettings() {
public static function dataSettings(): array {
return [
[FavoriteAction::class],
[FileChanged::class],
@ -22,18 +24,16 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataSettings
* @param string $settingClass
*/
public function testImplementsInterface($settingClass): void {
public function testImplementsInterface(string $settingClass): void {
$setting = Server::get($settingClass);
$this->assertInstanceOf(ISetting::class, $setting);
}
/**
* @dataProvider dataSettings
* @param string $settingClass
*/
public function testGetIdentifier($settingClass): void {
public function testGetIdentifier(string $settingClass): void {
/** @var ISetting $setting */
$setting = Server::get($settingClass);
$this->assertIsString($setting->getIdentifier());
@ -41,9 +41,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataSettings
* @param string $settingClass
*/
public function testGetName($settingClass): void {
public function testGetName(string $settingClass): void {
/** @var ISetting $setting */
$setting = Server::get($settingClass);
$this->assertIsString($setting->getName());
@ -51,9 +50,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataSettings
* @param string $settingClass
*/
public function testGetPriority($settingClass): void {
public function testGetPriority(string $settingClass): void {
/** @var ISetting $setting */
$setting = Server::get($settingClass);
$priority = $setting->getPriority();
@ -64,9 +62,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataSettings
* @param string $settingClass
*/
public function testCanChangeStream($settingClass): void {
public function testCanChangeStream(string $settingClass): void {
/** @var ISetting $setting */
$setting = Server::get($settingClass);
$this->assertIsBool($setting->canChangeStream());
@ -74,9 +71,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataSettings
* @param string $settingClass
*/
public function testIsDefaultEnabledStream($settingClass): void {
public function testIsDefaultEnabledStream(string $settingClass): void {
/** @var ISetting $setting */
$setting = Server::get($settingClass);
$this->assertIsBool($setting->isDefaultEnabledStream());
@ -84,9 +80,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataSettings
* @param string $settingClass
*/
public function testCanChangeMail($settingClass): void {
public function testCanChangeMail(string $settingClass): void {
/** @var ISetting $setting */
$setting = Server::get($settingClass);
$this->assertIsBool($setting->canChangeMail());
@ -94,9 +89,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataSettings
* @param string $settingClass
*/
public function testIsDefaultEnabledMail($settingClass): void {
public function testIsDefaultEnabledMail(string $settingClass): void {
/** @var ISetting $setting */
$setting = Server::get($settingClass);
$this->assertIsBool($setting->isDefaultEnabledMail());

View file

@ -18,6 +18,7 @@ class AdvancedCapabilitiesTest extends TestCase {
protected AdvancedCapabilities $capabilities;
protected function setUp(): void {
parent::setUp();
$this->service = $this->createMock(SettingsService::class);
$this->capabilities = new AdvancedCapabilities($this->service);
}

View file

@ -1,5 +1,6 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@ -33,16 +34,16 @@ class DeleteOrphanedItemsJobTest extends \Test\TestCase {
$this->logger = Server::get(LoggerInterface::class);
}
protected function cleanMapping($table) {
protected function cleanMapping(string $table): void {
$query = $this->connection->getQueryBuilder();
$query->delete($table)->execute();
$query->delete($table)->executeStatement();
}
protected function getMappings($table) {
protected function getMappings(string $table): array {
$query = $this->connection->getQueryBuilder();
$query->select('*')
->from($table);
$result = $query->execute();
$result = $query->executeQuery();
$mapping = $result->fetchAll();
$result->closeCursor();
@ -61,7 +62,7 @@ class DeleteOrphanedItemsJobTest extends \Test\TestCase {
'storage' => $query->createNamedParameter(1337, IQueryBuilder::PARAM_INT),
'path' => $query->createNamedParameter('apps/files/tests/deleteorphanedtagsjobtest.php'),
'path_hash' => $query->createNamedParameter(md5('apps/files/tests/deleteorphanedtagsjobtest.php')),
])->execute();
])->executeStatement();
$fileId = $query->getLastInsertId();
// Existing file
@ -71,7 +72,7 @@ class DeleteOrphanedItemsJobTest extends \Test\TestCase {
'objectid' => $query->createNamedParameter($fileId, IQueryBuilder::PARAM_INT),
'objecttype' => $query->createNamedParameter('files'),
'systemtagid' => $query->createNamedParameter(1337, IQueryBuilder::PARAM_INT),
])->execute();
])->executeStatement();
// Non-existing file
$query = $this->connection->getQueryBuilder();
@ -80,13 +81,13 @@ class DeleteOrphanedItemsJobTest extends \Test\TestCase {
'objectid' => $query->createNamedParameter($fileId + 1, IQueryBuilder::PARAM_INT),
'objecttype' => $query->createNamedParameter('files'),
'systemtagid' => $query->createNamedParameter(1337, IQueryBuilder::PARAM_INT),
])->execute();
])->executeStatement();
$mapping = $this->getMappings('systemtag_object_mapping');
$this->assertCount(2, $mapping);
$job = new DeleteOrphanedItems($this->timeFactory, $this->connection, $this->logger);
$this->invokePrivate($job, 'cleanSystemTags');
self::invokePrivate($job, 'cleanSystemTags');
$mapping = $this->getMappings('systemtag_object_mapping');
$this->assertCount(1, $mapping);
@ -94,7 +95,7 @@ class DeleteOrphanedItemsJobTest extends \Test\TestCase {
$query = $this->connection->getQueryBuilder();
$query->delete('filecache')
->where($query->expr()->eq('fileid', $query->createNamedParameter($fileId, IQueryBuilder::PARAM_INT)))
->execute();
->executeStatement();
$this->cleanMapping('systemtag_object_mapping');
}
@ -110,7 +111,7 @@ class DeleteOrphanedItemsJobTest extends \Test\TestCase {
'storage' => $query->createNamedParameter(1337, IQueryBuilder::PARAM_INT),
'path' => $query->createNamedParameter('apps/files/tests/deleteorphanedtagsjobtest.php'),
'path_hash' => $query->createNamedParameter(md5('apps/files/tests/deleteorphanedtagsjobtest.php')),
])->execute();
])->executeStatement();
$fileId = $query->getLastInsertId();
// Existing file
@ -120,7 +121,7 @@ class DeleteOrphanedItemsJobTest extends \Test\TestCase {
'objid' => $query->createNamedParameter($fileId, IQueryBuilder::PARAM_INT),
'type' => $query->createNamedParameter('files'),
'categoryid' => $query->createNamedParameter(1337, IQueryBuilder::PARAM_INT),
])->execute();
])->executeStatement();
// Non-existing file
$query = $this->connection->getQueryBuilder();
@ -129,13 +130,13 @@ class DeleteOrphanedItemsJobTest extends \Test\TestCase {
'objid' => $query->createNamedParameter($fileId + 1, IQueryBuilder::PARAM_INT),
'type' => $query->createNamedParameter('files'),
'categoryid' => $query->createNamedParameter(1337, IQueryBuilder::PARAM_INT),
])->execute();
])->executeStatement();
$mapping = $this->getMappings('vcategory_to_object');
$this->assertCount(2, $mapping);
$job = new DeleteOrphanedItems($this->timeFactory, $this->connection, $this->logger);
$this->invokePrivate($job, 'cleanUserTags');
self::invokePrivate($job, 'cleanUserTags');
$mapping = $this->getMappings('vcategory_to_object');
$this->assertCount(1, $mapping);
@ -143,7 +144,7 @@ class DeleteOrphanedItemsJobTest extends \Test\TestCase {
$query = $this->connection->getQueryBuilder();
$query->delete('filecache')
->where($query->expr()->eq('fileid', $query->createNamedParameter($fileId, IQueryBuilder::PARAM_INT)))
->execute();
->executeStatement();
$this->cleanMapping('vcategory_to_object');
}
@ -159,7 +160,7 @@ class DeleteOrphanedItemsJobTest extends \Test\TestCase {
'storage' => $query->createNamedParameter(1337, IQueryBuilder::PARAM_INT),
'path' => $query->createNamedParameter('apps/files/tests/deleteorphanedtagsjobtest.php'),
'path_hash' => $query->createNamedParameter(md5('apps/files/tests/deleteorphanedtagsjobtest.php')),
])->execute();
])->executeStatement();
$fileId = $query->getLastInsertId();
// Existing file
@ -170,7 +171,7 @@ class DeleteOrphanedItemsJobTest extends \Test\TestCase {
'object_type' => $query->createNamedParameter('files'),
'actor_id' => $query->createNamedParameter('Alice', IQueryBuilder::PARAM_INT),
'actor_type' => $query->createNamedParameter('users'),
])->execute();
])->executeStatement();
// Non-existing file
$query = $this->connection->getQueryBuilder();
@ -180,13 +181,13 @@ class DeleteOrphanedItemsJobTest extends \Test\TestCase {
'object_type' => $query->createNamedParameter('files'),
'actor_id' => $query->createNamedParameter('Alice', IQueryBuilder::PARAM_INT),
'actor_type' => $query->createNamedParameter('users'),
])->execute();
])->executeStatement();
$mapping = $this->getMappings('comments');
$this->assertCount(2, $mapping);
$job = new DeleteOrphanedItems($this->timeFactory, $this->connection, $this->logger);
$this->invokePrivate($job, 'cleanComments');
self::invokePrivate($job, 'cleanComments');
$mapping = $this->getMappings('comments');
$this->assertCount(1, $mapping);
@ -194,7 +195,7 @@ class DeleteOrphanedItemsJobTest extends \Test\TestCase {
$query = $this->connection->getQueryBuilder();
$query->delete('filecache')
->where($query->expr()->eq('fileid', $query->createNamedParameter($fileId, IQueryBuilder::PARAM_INT)))
->execute();
->executeStatement();
$this->cleanMapping('comments');
}
@ -210,7 +211,7 @@ class DeleteOrphanedItemsJobTest extends \Test\TestCase {
'storage' => $query->createNamedParameter(1337, IQueryBuilder::PARAM_INT),
'path' => $query->createNamedParameter('apps/files/tests/deleteorphanedtagsjobtest.php'),
'path_hash' => $query->createNamedParameter(md5('apps/files/tests/deleteorphanedtagsjobtest.php')),
])->execute();
])->executeStatement();
$fileId = $query->getLastInsertId();
// Existing file
@ -220,7 +221,7 @@ class DeleteOrphanedItemsJobTest extends \Test\TestCase {
'object_id' => $query->createNamedParameter($fileId, IQueryBuilder::PARAM_INT),
'object_type' => $query->createNamedParameter('files'),
'user_id' => $query->createNamedParameter('Alice', IQueryBuilder::PARAM_INT),
])->execute();
])->executeStatement();
// Non-existing file
$query = $this->connection->getQueryBuilder();
@ -229,13 +230,13 @@ class DeleteOrphanedItemsJobTest extends \Test\TestCase {
'object_id' => $query->createNamedParameter($fileId + 1, IQueryBuilder::PARAM_INT),
'object_type' => $query->createNamedParameter('files'),
'user_id' => $query->createNamedParameter('Alice', IQueryBuilder::PARAM_INT),
])->execute();
])->executeStatement();
$mapping = $this->getMappings('comments_read_markers');
$this->assertCount(2, $mapping);
$job = new DeleteOrphanedItems($this->timeFactory, $this->connection, $this->logger);
$this->invokePrivate($job, 'cleanCommentMarkers');
self::invokePrivate($job, 'cleanCommentMarkers');
$mapping = $this->getMappings('comments_read_markers');
$this->assertCount(1, $mapping);
@ -243,7 +244,7 @@ class DeleteOrphanedItemsJobTest extends \Test\TestCase {
$query = $this->connection->getQueryBuilder();
$query->delete('filecache')
->where($query->expr()->eq('fileid', $query->createNamedParameter($fileId, IQueryBuilder::PARAM_INT)))
->execute();
->executeStatement();
$this->cleanMapping('comments_read_markers');
}
}

View file

@ -1,5 +1,6 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@ -32,10 +33,8 @@ class ScanFilesTest extends TestCase {
use UserTrait;
use MountProviderTrait;
/** @var ScanFiles */
private $scanFiles;
/** @var IUserMountCache */
private $mountCache;
private ScanFiles $scanFiles;
private IUserMountCache $mountCache;
protected function setUp(): void {
parent::setUp();
@ -46,7 +45,7 @@ class ScanFilesTest extends TestCase {
$connection = Server::get(IDBConnection::class);
$this->mountCache = Server::get(IUserMountCache::class);
$this->scanFiles = $this->getMockBuilder('\OCA\Files\BackgroundJob\ScanFiles')
$this->scanFiles = $this->getMockBuilder(ScanFiles::class)
->setConstructorArgs([
$config,
$dispatcher,
@ -54,12 +53,12 @@ class ScanFilesTest extends TestCase {
$connection,
$this->createMock(ITimeFactory::class)
])
->setMethods(['runScanner'])
->onlyMethods(['runScanner'])
->getMock();
}
private function runJob() {
$this->invokePrivate($this->scanFiles, 'run', [[]]);
private function runJob(): void {
self::invokePrivate($this->scanFiles, 'run', [[]]);
}
private function getUser(string $userId): IUser {

View file

@ -1,5 +1,6 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@ -56,7 +57,7 @@ class DeleteOrphanedFilesTest extends TestCase {
parent::tearDown();
}
protected function getFile($fileId) {
protected function getFile(int $fileId): array {
$query = $this->connection->getQueryBuilder();
$query->select('*')
->from('filecache')
@ -64,7 +65,7 @@ class DeleteOrphanedFilesTest extends TestCase {
return $query->executeQuery()->fetchAll();
}
protected function getMounts($storageId) {
protected function getMounts(int $storageId): array {
$query = $this->connection->getQueryBuilder();
$query->select('*')
->from('mounts')
@ -76,12 +77,8 @@ class DeleteOrphanedFilesTest extends TestCase {
* Test clearing orphaned files
*/
public function testClearFiles(): void {
$input = $this->getMockBuilder(InputInterface::class)
->disableOriginalConstructor()
->getMock();
$output = $this->getMockBuilder(OutputInterface::class)
->disableOriginalConstructor()
->getMock();
$input = $this->createMock(InputInterface::class);
$output = $this->createMock(OutputInterface::class);
$rootFolder = Server::get(IRootFolder::class);
@ -112,14 +109,18 @@ class DeleteOrphanedFilesTest extends TestCase {
$this->assertSame(1, $deletedRows, 'Asserts that storage got deleted');
// parent folder, `files`, ´test` and `welcome.txt` => 4 elements
$calls = [
'3 orphaned file cache entries deleted',
'0 orphaned file cache extended entries deleted',
'1 orphaned mount entries deleted',
];
$output
->expects($this->exactly(3))
->method('writeln')
->withConsecutive(
['3 orphaned file cache entries deleted'],
['0 orphaned file cache extended entries deleted'],
['1 orphaned mount entries deleted'],
);
->willReturnCallback(function (string $message) use (&$calls) {
$expected = array_shift($calls);
$this->assertSame($expected, $message);
});
$this->command->execute($input, $output);

View file

@ -1,5 +1,6 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@ -31,6 +32,7 @@ use OCP\IUserSession;
use OCP\Share\IAttributes;
use OCP\Share\IManager;
use OCP\Share\IShare;
use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
use Test\TestCase;
@ -40,41 +42,25 @@ use Test\TestCase;
* @package OCA\Files\Controller
*/
class ApiControllerTest extends TestCase {
/** @var string */
private $appName = 'files';
/** @var IUser */
private $user;
/** @var IRequest */
private $request;
/** @var TagService */
private $tagService;
/** @var IPreview|\PHPUnit\Framework\MockObject\MockObject */
private $preview;
/** @var ApiController */
private $apiController;
/** @var \OCP\Share\IManager */
private $shareManager;
/** @var IConfig */
private $config;
/** @var Folder|\PHPUnit\Framework\MockObject\MockObject */
private $userFolder;
/** @var UserConfig|\PHPUnit\Framework\MockObject\MockObject */
private $userConfig;
/** @var ViewConfig|\PHPUnit\Framework\MockObject\MockObject */
private $viewConfig;
/** @var IL10N|\PHPUnit\Framework\MockObject\MockObject */
private $l10n;
/** @var IRootFolder|\PHPUnit\Framework\MockObject\MockObject */
private $rootFolder;
/** @var LoggerInterface|\PHPUnit\Framework\MockObject\MockObject */
private $logger;
private string $appName = 'files';
private IUser $user;
private IRequest $request;
private TagService $tagService;
private IPreview&MockObject $preview;
private ApiController $apiController;
private IManager $shareManager;
private IConfig $config;
private Folder&MockObject $userFolder;
private UserConfig&MockObject $userConfig;
private ViewConfig&MockObject $viewConfig;
private IL10N&MockObject $l10n;
private IRootFolder&MockObject $rootFolder;
private LoggerInterface&MockObject $logger;
protected function setUp(): void {
parent::setUp();
$this->request = $this->getMockBuilder(IRequest::class)
->disableOriginalConstructor()
->getMock();
$this->request = $this->createMock(IRequest::class);
$this->user = $this->createMock(IUser::class);
$this->user->expects($this->any())
->method('getUID')
@ -83,19 +69,11 @@ class ApiControllerTest extends TestCase {
$userSession->expects($this->any())
->method('getUser')
->willReturn($this->user);
$this->tagService = $this->getMockBuilder(TagService::class)
->disableOriginalConstructor()
->getMock();
$this->shareManager = $this->getMockBuilder(IManager::class)
->disableOriginalConstructor()
->getMock();
$this->preview = $this->getMockBuilder(IPreview::class)
->disableOriginalConstructor()
->getMock();
$this->tagService = $this->createMock(TagService::class);
$this->shareManager = $this->createMock(IManager::class);
$this->preview = $this->createMock(IPreview::class);
$this->config = $this->createMock(IConfig::class);
$this->userFolder = $this->getMockBuilder(Folder::class)
->disableOriginalConstructor()
->getMock();
$this->userFolder = $this->createMock(Folder::class);
$this->userConfig = $this->createMock(UserConfig::class);
$this->viewConfig = $this->createMock(ViewConfig::class);
$this->l10n = $this->createMock(IL10N::class);

View file

@ -1,5 +1,6 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@ -60,12 +61,12 @@ class ConversionApiControllerTest extends TestCase {
);
}
public function testThrowsNotFoundException() {
public function testThrowsNotFoundException(): void {
$this->expectException(OCSNotFoundException::class);
$this->conversionApiController->convert(42, 'image/png');
}
public function testThrowsOcsException() {
public function testThrowsOcsException(): void {
$this->userFolder->method('getFirstNodeById')->with(42)->willReturn($this->file);
$this->fileConversionManager->method('convert')->willThrowException(new \Exception());
@ -73,7 +74,7 @@ class ConversionApiControllerTest extends TestCase {
$this->conversionApiController->convert(42, 'image/png');
}
public function testConvert() {
public function testConvert(): void {
$convertedFileAbsolutePath = $this->user . '/files/test.png';
$this->userFolder->method('getFirstNodeById')->with(42)->willReturn($this->file);

View file

@ -1,5 +1,6 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@ -192,7 +193,7 @@ class ViewControllerTest extends TestCase {
$this->assertEquals($expected, $this->viewController->index('MyDir', 'MyView'));
}
public function dataTestShortRedirect(): array {
public static function dataTestShortRedirect(): array {
// openfile is true by default
// opendetails is undefined by default
// both will be evaluated as truthy
@ -212,7 +213,7 @@ class ViewControllerTest extends TestCase {
/**
* @dataProvider dataTestShortRedirect
*/
public function testShortRedirect($openfile, $opendetails, $result) {
public function testShortRedirect(?string $openfile, ?string $opendetails, string $result): void {
$this->appManager->expects($this->any())
->method('isEnabledForUser')
->with('files')
@ -239,7 +240,7 @@ class ViewControllerTest extends TestCase {
->with(123456)
->willReturn($node);
$response = $this->viewController->showFile(123456, $opendetails, $openfile);
$response = $this->viewController->showFile('123456', $opendetails, $openfile);
$this->assertStringContainsString($result, $response->getHeaders()['Location']);
}
@ -248,13 +249,13 @@ class ViewControllerTest extends TestCase {
->method('isEnabledForUser')
->willReturn(true);
$parentNode = $this->getMockBuilder(Folder::class)->getMock();
$parentNode = $this->createMock(Folder::class);
$parentNode->expects($this->once())
->method('getPath')
->willReturn('testuser1/files_trashbin/files/test.d1462861890/sub');
$baseFolderFiles = $this->getMockBuilder(Folder::class)->getMock();
$baseFolderTrash = $this->getMockBuilder(Folder::class)->getMock();
$baseFolderFiles = $this->createMock(Folder::class);
$baseFolderTrash = $this->createMock(Folder::class);
$this->rootFolder->expects($this->any())
->method('getUserFolder')
@ -270,7 +271,7 @@ class ViewControllerTest extends TestCase {
->with(123)
->willReturn(null);
$node = $this->getMockBuilder(File::class)->getMock();
$node = $this->createMock(File::class);
$node->expects($this->once())
->method('getParent')
->willReturn($parentNode);

View file

@ -1,15 +1,17 @@
<?php
use OC\Files\FileInfo;
use OCA\Files\Helper;
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
* SPDX-License-Identifier: AGPL-3.0-only
*/
use OC\Files\FileInfo;
use OCA\Files\Helper;
class HelperTest extends \Test\TestCase {
private function makeFileInfo($name, $size, $mtime, $isDir = false) {
private static function makeFileInfo($name, $size, $mtime, $isDir = false): FileInfo {
return new FileInfo(
'/' . $name,
null,
@ -28,7 +30,7 @@ class HelperTest extends \Test\TestCase {
/**
* Returns a file list for testing
*/
private function getTestFileList() {
private static function getTestFileList(): array {
return [
self::makeFileInfo('a.txt', 4, 2.3 * pow(10, 9)),
self::makeFileInfo('q.txt', 5, 150),
@ -39,7 +41,7 @@ class HelperTest extends \Test\TestCase {
];
}
public function sortDataProvider() {
public static function sortDataProvider(): array {
return [
[
'name',

View file

@ -1,5 +1,6 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@ -10,6 +11,7 @@ namespace OCA\Files\Tests\Service;
use OCA\Files\Service\TagService;
use OCP\Activity\IManager;
use OCP\Files\Folder;
use OCP\Files\IRootFolder;
use OCP\Files\NotFoundException;
use OCP\ITagManager;
use OCP\ITags;
@ -17,6 +19,7 @@ use OCP\IUser;
use OCP\IUserManager;
use OCP\IUserSession;
use OCP\Server;
use PHPUnit\Framework\MockObject\MockObject;
/**
* Class TagServiceTest
@ -26,32 +29,12 @@ use OCP\Server;
* @package OCA\Files
*/
class TagServiceTest extends \Test\TestCase {
/**
* @var string
*/
private $user;
/** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject */
private $userSession;
/** @var IManager|\PHPUnit\Framework\MockObject\MockObject */
private $activityManager;
/**
* @var Folder
*/
private $root;
/**
* @var TagService|\PHPUnit\Framework\MockObject\MockObject
*/
private $tagService;
/**
* @var ITags
*/
private $tagger;
private string $user;
private IUserSession&MockObject $userSession;
private IManager&MockObject $activityManager;
private Folder $root;
private TagService&MockObject $tagService;
private ITags $tagger;
protected function setUp(): void {
parent::setUp();
@ -70,17 +53,13 @@ class TagServiceTest extends \Test\TestCase {
->withAnyParameters()
->willReturn($user);
$this->root = \OC::$server->getUserFolder();
$this->root = \OCP\Server::get(IRootFolder::class)->getUserFolder($this->user);
$this->tagger = Server::get(ITagManager::class)->load('files');
$this->tagService = $this->getTagService(['addActivity']);
$this->tagService = $this->getTagService();
}
/**
* @param array $methods
* @return TagService|\PHPUnit\Framework\MockObject\MockObject
*/
protected function getTagService(array $methods = []) {
protected function getTagService(array $methods = []): TagService&MockObject {
return $this->getMockBuilder(TagService::class)
->setConstructorArgs([
$this->userSession,
@ -88,7 +67,7 @@ class TagServiceTest extends \Test\TestCase {
$this->tagger,
$this->root,
])
->setMethods($methods)
->onlyMethods($methods)
->getMock();
}
@ -98,6 +77,8 @@ class TagServiceTest extends \Test\TestCase {
if ($user !== null) {
$user->delete();
}
parent::tearDown();
}
public function testUpdateFileTags(): void {

View file

@ -157,7 +157,7 @@ class RegistrationContext {
/** @var ServiceRegistration<\OCP\Files\Conversion\IConversionProvider>[] */
private array $fileConversionProviders = [];
/** @var ServiceRegistration<IMailProvider>[] */
private $mailProviders = [];

View file

@ -118,7 +118,7 @@ class TextProcessingTest extends \Test\TestCase {
$this->eventDispatcher = new EventDispatcher(
new \Symfony\Component\EventDispatcher\EventDispatcher(),
$this->serverContainer,
\OC::$server->get(LoggerInterface::class),
\OCP\Server::get(LoggerInterface::class),
);
$this->registrationContext = $this->createMock(RegistrationContext::class);
@ -176,11 +176,11 @@ class TextProcessingTest extends \Test\TestCase {
$this->manager = new Manager(
$this->serverContainer,
$this->coordinator,
\OC::$server->get(LoggerInterface::class),
\OCP\Server::get(LoggerInterface::class),
$this->jobList,
$this->taskMapper,
$config,
\OC::$server->get(\OCP\TaskProcessing\IManager::class),
$this->createMock(\OCP\TaskProcessing\IManager::class),
);
}
@ -239,7 +239,7 @@ class TextProcessingTest extends \Test\TestCase {
// run background job
$bgJob = new TaskBackgroundJob(
\OC::$server->get(ITimeFactory::class),
\OCP\Server::get(ITimeFactory::class),
$this->manager,
$this->eventDispatcher,
);
@ -314,7 +314,7 @@ class TextProcessingTest extends \Test\TestCase {
// run background job
$bgJob = new TaskBackgroundJob(
\OC::$server->get(ITimeFactory::class),
\OCP\Server::get(ITimeFactory::class),
$this->manager,
$this->eventDispatcher,
);
@ -343,9 +343,9 @@ class TextProcessingTest extends \Test\TestCase {
$this->currentTime = $this->currentTime->add(new \DateInterval('P1Y'));
// run background job
$bgJob = new RemoveOldTasksBackgroundJob(
\OC::$server->get(ITimeFactory::class),
\OCP\Server::get(ITimeFactory::class),
$this->taskMapper,
\OC::$server->get(LoggerInterface::class),
\OCP\Server::get(LoggerInterface::class),
);
$bgJob->setArgument([]);
$bgJob->start($this->jobList);