aboutsummaryrefslogtreecommitdiffstats
path: root/tests/lib/AppFramework/Http/StreamResponseTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/lib/AppFramework/Http/StreamResponseTest.php')
-rw-r--r--tests/lib/AppFramework/Http/StreamResponseTest.php82
1 files changed, 82 insertions, 0 deletions
diff --git a/tests/lib/AppFramework/Http/StreamResponseTest.php b/tests/lib/AppFramework/Http/StreamResponseTest.php
new file mode 100644
index 00000000000..87f6097a07a
--- /dev/null
+++ b/tests/lib/AppFramework/Http/StreamResponseTest.php
@@ -0,0 +1,82 @@
+<?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\IOutput;
+use OCP\AppFramework\Http\StreamResponse;
+
+class StreamResponseTest extends \Test\TestCase {
+ /** @var IOutput */
+ private $output;
+
+ protected function setUp(): void {
+ parent::setUp();
+ $this->output = $this->getMockBuilder('OCP\\AppFramework\\Http\\IOutput')
+ ->disableOriginalConstructor()
+ ->getMock();
+ }
+
+ public function testOutputNotModified(): void {
+ $path = __FILE__;
+ $this->output->expects($this->once())
+ ->method('getHttpResponseCode')
+ ->willReturn(Http::STATUS_NOT_MODIFIED);
+ $this->output->expects($this->never())
+ ->method('setReadfile');
+ $response = new StreamResponse($path);
+
+ $response->callback($this->output);
+ }
+
+ public function testOutputOk(): void {
+ $path = __FILE__;
+ $this->output->expects($this->once())
+ ->method('getHttpResponseCode')
+ ->willReturn(Http::STATUS_OK);
+ $this->output->expects($this->once())
+ ->method('setReadfile')
+ ->with($this->equalTo($path))
+ ->willReturn(true);
+ $response = new StreamResponse($path);
+
+ $response->callback($this->output);
+ }
+
+ public function testOutputNotFound(): void {
+ $path = __FILE__ . 'test';
+ $this->output->expects($this->once())
+ ->method('getHttpResponseCode')
+ ->willReturn(Http::STATUS_OK);
+ $this->output->expects($this->never())
+ ->method('setReadfile');
+ $this->output->expects($this->once())
+ ->method('setHttpResponseCode')
+ ->with($this->equalTo(Http::STATUS_NOT_FOUND));
+ $response = new StreamResponse($path);
+
+ $response->callback($this->output);
+ }
+
+ public function testOutputReadFileError(): void {
+ $path = __FILE__;
+ $this->output->expects($this->once())
+ ->method('getHttpResponseCode')
+ ->willReturn(Http::STATUS_OK);
+ $this->output->expects($this->once())
+ ->method('setReadfile')
+ ->willReturn(false);
+ $this->output->expects($this->once())
+ ->method('setHttpResponseCode')
+ ->with($this->equalTo(Http::STATUS_BAD_REQUEST));
+ $response = new StreamResponse($path);
+
+ $response->callback($this->output);
+ }
+}