Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 22 additions & 50 deletions apps/federatedfilesharing/tests/AddressHandlerTest.php
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<?php

declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
Expand All @@ -16,31 +17,20 @@
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(
Expand All @@ -54,7 +44,7 @@ protected function setUp(): void {
$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 = [
Expand Down Expand Up @@ -92,12 +82,8 @@ public function dataTestSplitUserRemote() {

/**
* @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([]);
Expand All @@ -107,7 +93,7 @@ public function testSplitUserRemote($remote, $expectedUser, $expectedUrl): void
$this->assertSame($expectedUrl, $remoteUrl);
}

public function dataTestSplitUserRemoteError() {
public static function dataTestSplitUserRemoteError(): array {
return [
// Invalid path
['user@'],
Expand All @@ -127,31 +113,23 @@ public function dataTestSplitUserRemoteError() {

/**
* @dataProvider dataTestSplitUserRemoteError
*
* @param string $id
*/
public function testSplitUserRemoteError($id): void {
public function testSplitUserRemoteError(string $id): void {
$this->expectException(HintException::class);

$this->addressHandler->splitUserRemote($id);
}

/**
* @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],
Expand All @@ -173,35 +151,29 @@ public function dataTestCompareAddresses() {

/**
* @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],
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
<?php

declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
Expand Down Expand Up @@ -31,64 +33,35 @@
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,
Expand All @@ -114,23 +87,16 @@ protected function setUp(): void {

/**
* @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')
Expand Down Expand Up @@ -188,7 +154,7 @@ function (IShare $share) use ($createSuccessful, $shareWith, $expectedReturnData
}
}

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],
Expand Down
Loading
Loading