summaryrefslogtreecommitdiffstats
path: root/tests/Core
diff options
context:
space:
mode:
authorChristoph Wurst <christoph@winzerhof-wurst.at>2020-12-14 15:56:07 +0100
committerChristoph Wurst <christoph@winzerhof-wurst.at>2020-12-16 13:13:05 +0100
commit6995223b1ed202c7f8e920e83cb5b53efd7ce761 (patch)
tree76e839b9c3de3b4751a993f24f35f0cb93c0dbbd /tests/Core
parentd37034f1612279b07c78284771ac73fbd5a2a407 (diff)
downloadnextcloud-server-6995223b1ed202c7f8e920e83cb5b53efd7ce761.tar.gz
nextcloud-server-6995223b1ed202c7f8e920e83cb5b53efd7ce761.zip
Add well known handlers API
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
Diffstat (limited to 'tests/Core')
-rw-r--r--tests/Core/Controller/WellKnownControllerTest.php86
1 files changed, 86 insertions, 0 deletions
diff --git a/tests/Core/Controller/WellKnownControllerTest.php b/tests/Core/Controller/WellKnownControllerTest.php
new file mode 100644
index 00000000000..2a35ed5ac85
--- /dev/null
+++ b/tests/Core/Controller/WellKnownControllerTest.php
@@ -0,0 +1,86 @@
+<?php
+
+declare(strict_types=1);
+
+/*
+ * @copyright 2020 Christoph Wurst <christoph@winzerhof-wurst.at>
+ *
+ * @author 2020 Christoph Wurst <christoph@winzerhof-wurst.at>
+ *
+ * @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/>.
+ */
+
+namespace Tests\Core\Controller;
+
+use OC\Core\Controller\WellKnownController;
+use OC\Http\WellKnown\RequestManager;
+use OCP\AppFramework\Http\JSONResponse;
+use OCP\Http\WellKnown\IResponse;
+use OCP\IRequest;
+use PHPUnit\Framework\MockObject\MockObject;
+use Test\TestCase;
+
+class WellKnownControllerTest extends TestCase {
+
+ /** @var IRequest|MockObject */
+ private $request;
+
+ /** @var RequestManager|MockObject */
+ private $manager;
+
+ /** @var WellKnownController */
+ private $controller;
+
+ protected function setUp(): void {
+ parent::setUp();
+
+ $this->request = $this->createMock(IRequest::class);
+ $this->manager = $this->createMock(RequestManager::class);
+
+ $this->controller = new WellKnownController(
+ $this->request,
+ $this->manager,
+ );
+ }
+
+ public function testHandleNotProcessed(): void {
+ $httpResponse = $this->controller->handle("nodeinfo");
+
+ self::assertInstanceOf(JSONResponse::class, $httpResponse);
+ self::assertArrayHasKey('X-NEXTCLOUD-WELL-KNOWN', $httpResponse->getHeaders());
+ }
+
+ public function testHandle(): void {
+ $response = $this->createMock(IResponse::class);
+ $jsonResponse = $this->createMock(JSONResponse::class);
+ $response->expects(self::once())
+ ->method('toHttpResponse')
+ ->willReturn($jsonResponse);
+ $this->manager->expects(self::once())
+ ->method('process')
+ ->with(
+ "nodeinfo",
+ $this->request
+ )->willReturn($response);
+ $jsonResponse->expects(self::once())
+ ->method('addHeader')
+ ->willReturnSelf();
+
+ $httpResponse = $this->controller->handle("nodeinfo");
+
+ self::assertInstanceOf(JSONResponse::class, $httpResponse);
+ }
+}