aboutsummaryrefslogtreecommitdiffstats
path: root/tests/lib/AppFramework/Http/DataResponseTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/lib/AppFramework/Http/DataResponseTest.php')
-rw-r--r--tests/lib/AppFramework/Http/DataResponseTest.php75
1 files changed, 75 insertions, 0 deletions
diff --git a/tests/lib/AppFramework/Http/DataResponseTest.php b/tests/lib/AppFramework/Http/DataResponseTest.php
new file mode 100644
index 00000000000..e9a2c511140
--- /dev/null
+++ b/tests/lib/AppFramework/Http/DataResponseTest.php
@@ -0,0 +1,75 @@
+<?php
+
+/**
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace Test\AppFramework\Http;
+
+use OCP\AppFramework\Http;
+use OCP\AppFramework\Http\DataResponse;
+use OCP\IRequest;
+use OCP\Server;
+
+class DataResponseTest extends \Test\TestCase {
+ /**
+ * @var DataResponse
+ */
+ private $response;
+
+ protected function setUp(): void {
+ parent::setUp();
+ $this->response = new DataResponse();
+ }
+
+
+ public function testSetData(): void {
+ $params = ['hi', 'yo'];
+ $this->response->setData($params);
+
+ $this->assertEquals(['hi', 'yo'], $this->response->getData());
+ }
+
+
+ public function testConstructorAllowsToSetData(): void {
+ $data = ['hi'];
+ $code = 300;
+ $response = new DataResponse($data, $code);
+
+ $this->assertEquals($data, $response->getData());
+ $this->assertEquals($code, $response->getStatus());
+ }
+
+
+ public function testConstructorAllowsToSetHeaders(): void {
+ $data = ['hi'];
+ $code = 300;
+ $headers = ['test' => 'something'];
+ $response = new DataResponse($data, $code, $headers);
+
+ $expectedHeaders = [
+ 'Cache-Control' => 'no-cache, no-store, must-revalidate',
+ 'Content-Security-Policy' => "default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'",
+ 'Feature-Policy' => "autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'",
+ 'X-Robots-Tag' => 'noindex, nofollow',
+ 'X-Request-Id' => Server::get(IRequest::class)->getId(),
+ ];
+ $expectedHeaders = array_merge($expectedHeaders, $headers);
+
+ $this->assertEquals($data, $response->getData());
+ $this->assertEquals($code, $response->getStatus());
+ $this->assertEquals($expectedHeaders, $response->getHeaders());
+ }
+
+
+ public function testChainability(): void {
+ $params = ['hi', 'yo'];
+ $this->response->setData($params)
+ ->setStatus(Http::STATUS_NOT_FOUND);
+
+ $this->assertEquals(Http::STATUS_NOT_FOUND, $this->response->getStatus());
+ $this->assertEquals(['hi', 'yo'], $this->response->getData());
+ }
+}