diff options
Diffstat (limited to 'tests/lib/OCS')
-rw-r--r-- | tests/lib/OCS/ApiHelperTest.php | 49 | ||||
-rw-r--r-- | tests/lib/OCS/DiscoveryServiceTest.php | 38 | ||||
-rw-r--r-- | tests/lib/OCS/MapStatusCodeTest.php | 43 | ||||
-rw-r--r-- | tests/lib/OCS/ProviderTest.php | 99 |
4 files changed, 99 insertions, 130 deletions
diff --git a/tests/lib/OCS/ApiHelperTest.php b/tests/lib/OCS/ApiHelperTest.php new file mode 100644 index 00000000000..334fca7169e --- /dev/null +++ b/tests/lib/OCS/ApiHelperTest.php @@ -0,0 +1,49 @@ +<?php + +declare(strict_types=1); + +/** + * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors + * SPDX-FileCopyrightText: 2016 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + +namespace Test\OCS; + +use OC\OCS\ApiHelper; +use OCP\IRequest; + +class ApiHelperTest extends \Test\TestCase { + public static function versionDataScriptNameProvider(): array { + return [ + // Valid script name + [ + '/master/ocs/v2.php', true, + ], + + // Invalid script names + [ + '/master/ocs/v2.php/someInvalidPathName', false, + ], + [ + '/master/ocs/v1.php', false, + ], + [ + '', false, + ], + ]; + } + + #[\PHPUnit\Framework\Attributes\DataProvider('versionDataScriptNameProvider')] + public function testIsV2(string $scriptName, bool $expected): void { + $request = $this->getMockBuilder(IRequest::class) + ->disableOriginalConstructor() + ->getMock(); + $request + ->expects($this->once()) + ->method('getScriptName') + ->willReturn($scriptName); + + $this->assertEquals($expected, $this->invokePrivate(new ApiHelper, 'isV2', [$request])); + } +} diff --git a/tests/lib/OCS/DiscoveryServiceTest.php b/tests/lib/OCS/DiscoveryServiceTest.php index da3897163cb..422c97f4221 100644 --- a/tests/lib/OCS/DiscoveryServiceTest.php +++ b/tests/lib/OCS/DiscoveryServiceTest.php @@ -1,22 +1,8 @@ <?php + /** - * @copyright Copyright (c) 2017 Bjoern Schiessle <bjoern@schiessle.org> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ namespace Test\OCS; @@ -28,13 +14,13 @@ use OCP\OCS\IDiscoveryService; use Test\TestCase; class DiscoveryServiceTest extends TestCase { - /** @var \PHPUnit\Framework\MockObject\MockObject | ICacheFactory */ + /** @var \PHPUnit\Framework\MockObject\MockObject | ICacheFactory */ private $cacheFactory; - /** @var \PHPUnit\Framework\MockObject\MockObject | IClientService */ + /** @var \PHPUnit\Framework\MockObject\MockObject | IClientService */ private $clientService; - /** @var IDiscoveryService */ + /** @var IDiscoveryService */ private $discoveryService; protected function setUp(): void { @@ -50,17 +36,17 @@ class DiscoveryServiceTest extends TestCase { } /** - * @dataProvider dataTestIsSafeUrl * * @param string $url * @param bool $expected */ - public function testIsSafeUrl($url, $expected) { + #[\PHPUnit\Framework\Attributes\DataProvider('dataTestIsSafeUrl')] + public function testIsSafeUrl($url, $expected): void { $result = $this->invokePrivate($this->discoveryService, 'isSafeUrl', [$url]); $this->assertSame($expected, $result); } - public function dataTestIsSafeUrl() { + public static function dataTestIsSafeUrl(): array { return [ ['api/ocs/v1.php/foo', true], ['/api/ocs/v1.php/foo', true], @@ -73,18 +59,18 @@ class DiscoveryServiceTest extends TestCase { } /** - * @dataProvider dataTestGetEndpoints * * @param array $decodedServices * @param string $service * @param array $expected */ - public function testGetEndpoints($decodedServices, $service, $expected) { + #[\PHPUnit\Framework\Attributes\DataProvider('dataTestGetEndpoints')] + public function testGetEndpoints($decodedServices, $service, $expected): void { $result = $this->invokePrivate($this->discoveryService, 'getEndpoints', [$decodedServices, $service]); $this->assertSame($expected, $result); } - public function dataTestGetEndpoints() { + public static function dataTestGetEndpoints(): array { return [ [['services' => ['myService' => ['endpoints' => []]]], 'myService', []], [['services' => ['myService' => ['endpoints' => ['foo' => '/bar']]]], 'myService', ['foo' => '/bar']], diff --git a/tests/lib/OCS/MapStatusCodeTest.php b/tests/lib/OCS/MapStatusCodeTest.php deleted file mode 100644 index 3022323870a..00000000000 --- a/tests/lib/OCS/MapStatusCodeTest.php +++ /dev/null @@ -1,43 +0,0 @@ -<?php -/** - * @author Thomas Müller <thomas.mueller@tmit.eu> - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> - * - */ - -namespace Test\OCS; - -use OCP\AppFramework\Http; - -class MapStatusCodeTest extends \Test\TestCase { - /** - * @dataProvider providesStatusCodes - */ - public function testStatusCodeMapper($expected, $sc) { - $result = \OC_API::mapStatusCodes($sc); - $this->assertEquals($expected, $result); - } - - public function providesStatusCodes() { - return [ - [Http::STATUS_OK, 100], - [Http::STATUS_BAD_REQUEST, 104], - [Http::STATUS_BAD_REQUEST, 1000], - [201, 201], - ]; - } -} diff --git a/tests/lib/OCS/ProviderTest.php b/tests/lib/OCS/ProviderTest.php index f66bd2eab01..87e01d8301b 100644 --- a/tests/lib/OCS/ProviderTest.php +++ b/tests/lib/OCS/ProviderTest.php @@ -1,32 +1,22 @@ <?php + /** - * @author Lukas Reschke <lukas@owncloud.com> - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> - * + * SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors + * SPDX-FileCopyrightText: 2016 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-only */ namespace Test\OCS; use OC\OCS\Provider; +use OCP\App\IAppManager; +use OCP\AppFramework\Http\JSONResponse; +use OCP\IRequest; class ProviderTest extends \Test\TestCase { - /** @var \OCP\IRequest */ + /** @var IRequest */ private $request; - /** @var \OCP\App\IAppManager */ + /** @var IAppManager */ private $appManager; /** @var Provider */ private $ocsProvider; @@ -39,19 +29,18 @@ class ProviderTest extends \Test\TestCase { $this->ocsProvider = new Provider('ocs_provider', $this->request, $this->appManager); } - public function testBuildProviderListWithoutAnythingEnabled() { + public function testBuildProviderListWithoutAnythingEnabled(): void { $this->appManager ->expects($this->exactly(4)) ->method('isEnabledForUser') - ->withConsecutive( - ['files_sharing'], - ['federation'], - ['activity'], - ['provisioning_api'] - ) - ->willReturn(false); - - $expected = new \OCP\AppFramework\Http\JSONResponse( + ->willReturnMap([ + ['files_sharing', null, false], + ['federation', null, false], + ['activity', null, false], + ['provisioning_api', null, false], + ]); + + $expected = new JSONResponse( [ 'version' => 2, 'services' => [ @@ -70,24 +59,18 @@ class ProviderTest extends \Test\TestCase { $this->assertEquals($expected, $this->ocsProvider->buildProviderList()); } - public function testBuildProviderListWithSharingEnabled() { + public function testBuildProviderListWithSharingEnabled(): void { $this->appManager ->expects($this->exactly(4)) ->method('isEnabledForUser') - ->withConsecutive( - ['files_sharing'], - ['federation'], - ['activity'], - ['provisioning_api'] - ) - ->willReturnOnConsecutiveCalls( - true, - false, - false, - false - ); - - $expected = new \OCP\AppFramework\Http\JSONResponse( + ->willReturnMap([ + ['files_sharing', null, true], + ['federation', null, false], + ['activity', null, false], + ['provisioning_api', null, false], + ]); + + $expected = new JSONResponse( [ 'version' => 2, 'services' => [ @@ -119,24 +102,18 @@ class ProviderTest extends \Test\TestCase { $this->assertEquals($expected, $this->ocsProvider->buildProviderList()); } - public function testBuildProviderListWithFederationEnabled() { + public function testBuildProviderListWithFederationEnabled(): void { $this->appManager ->expects($this->exactly(4)) ->method('isEnabledForUser') - ->withConsecutive( - ['files_sharing'], - ['federation'], - ['activity'], - ['provisioning_api'] - ) - ->willReturnOnConsecutiveCalls( - false, - true, - false, - false - ); - - $expected = new \OCP\AppFramework\Http\JSONResponse( + ->willReturnMap([ + ['files_sharing', null, false], + ['federation', null, true], + ['activity', null, false], + ['provisioning_api', null, false], + ]); + + $expected = new JSONResponse( [ 'version' => 2, 'services' => [ @@ -163,13 +140,13 @@ class ProviderTest extends \Test\TestCase { $this->assertEquals($expected, $this->ocsProvider->buildProviderList()); } - public function testBuildProviderListWithEverythingEnabled() { + public function testBuildProviderListWithEverythingEnabled(): void { $this->appManager ->expects($this->any()) ->method('isEnabledForUser') ->willReturn(true); - $expected = new \OCP\AppFramework\Http\JSONResponse( + $expected = new JSONResponse( [ 'version' => 2, 'services' => [ |