aboutsummaryrefslogtreecommitdiffstats
path: root/tests/lib/AppFramework/Controller/PublicShareControllerTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/lib/AppFramework/Controller/PublicShareControllerTest.php')
-rw-r--r--tests/lib/AppFramework/Controller/PublicShareControllerTest.php83
1 files changed, 38 insertions, 45 deletions
diff --git a/tests/lib/AppFramework/Controller/PublicShareControllerTest.php b/tests/lib/AppFramework/Controller/PublicShareControllerTest.php
index f2a60a574af..e676b8a0d7e 100644
--- a/tests/lib/AppFramework/Controller/PublicShareControllerTest.php
+++ b/tests/lib/AppFramework/Controller/PublicShareControllerTest.php
@@ -1,24 +1,8 @@
<?php
+
/**
- * @copyright 2018, Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @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: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace Test\AppFramework\Controller;
@@ -27,37 +11,51 @@ use OCP\AppFramework\PublicShareController;
use OCP\IRequest;
use OCP\ISession;
-class PublicShareControllerTest extends \Test\TestCase {
+class TestController extends PublicShareController {
+ public function __construct(
+ string $appName,
+ IRequest $request,
+ ISession $session,
+ private string $hash,
+ private bool $isProtected,
+ ) {
+ parent::__construct($appName, $request, $session);
+ }
+
+ protected function getPasswordHash(): string {
+ return $this->hash;
+ }
+
+ public function isValidToken(): bool {
+ return false;
+ }
+ protected function isPasswordProtected(): bool {
+ return $this->isProtected;
+ }
+}
+
+class PublicShareControllerTest extends \Test\TestCase {
/** @var IRequest|\PHPUnit\Framework\MockObject\MockObject */
private $request;
/** @var ISession|\PHPUnit\Framework\MockObject\MockObject */
private $session;
- /** @var PublicShareController|\PHPUnit\Framework\MockObject\MockObject */
- private $controller;
-
-
protected function setUp(): void {
parent::setUp();
$this->request = $this->createMock(IRequest::class);
$this->session = $this->createMock(ISession::class);
-
- $this->controller = $this->getMockBuilder(PublicShareController::class)
- ->setConstructorArgs([
- 'app',
- $this->request,
- $this->session
- ])->getMock();
}
- public function testGetToken() {
- $this->controller->setToken('test');
- $this->assertEquals('test', $this->controller->getToken());
+ public function testGetToken(): void {
+ $controller = new TestController('app', $this->request, $this->session, 'hash', false);
+
+ $controller->setToken('test');
+ $this->assertEquals('test', $controller->getToken());
}
- public function dataIsAuthenticated() {
+ public static function dataIsAuthenticated(): array {
return [
[false, 'token1', 'token1', 'hash1', 'hash1', true],
[false, 'token1', 'token1', 'hash1', 'hash2', true],
@@ -70,12 +68,9 @@ class PublicShareControllerTest extends \Test\TestCase {
];
}
- /**
- * @dataProvider dataIsAuthenticated
- */
- public function testIsAuthenticatedNotPasswordProtected(bool $protected, string $token1, string $token2, string $hash1, string $hash2, bool $expected) {
- $this->controller->method('isPasswordProtected')
- ->willReturn($protected);
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataIsAuthenticated')]
+ public function testIsAuthenticatedNotPasswordProtected(bool $protected, string $token1, string $token2, string $hash1, string $hash2, bool $expected): void {
+ $controller = new TestController('app', $this->request, $this->session, $hash2, $protected);
$this->session->method('get')
->willReturnMap([
@@ -83,10 +78,8 @@ class PublicShareControllerTest extends \Test\TestCase {
['public_link_authenticated_password_hash', $hash1],
]);
- $this->controller->setToken($token2);
- $this->controller->method('getPasswordHash')
- ->willReturn($hash2);
+ $controller->setToken($token2);
- $this->assertEquals($expected, $this->controller->isAuthenticated());
+ $this->assertEquals($expected, $controller->isAuthenticated());
}
}