aboutsummaryrefslogtreecommitdiffstats
path: root/tests/unit/Module
diff options
context:
space:
mode:
authorHarald Eilertsen <haraldei@anduin.net>2024-11-09 15:45:40 +0100
committerHarald Eilertsen <haraldei@anduin.net>2024-11-10 16:43:48 +0100
commit57e69372d35b060dc29be2ff5527fc0ef19430e0 (patch)
treed7085cbd29796ad2627fc8660db0cb8afed3fb3f /tests/unit/Module
parent4e6696b049beec7ed4616b5a3f7e4a0b60d3be09 (diff)
downloadvolse-hubzilla-57e69372d35b060dc29be2ff5527fc0ef19430e0.tar.gz
volse-hubzilla-57e69372d35b060dc29be2ff5527fc0ef19430e0.tar.bz2
volse-hubzilla-57e69372d35b060dc29be2ff5527fc0ef19430e0.zip
Module\Item: Move processing of zot and as requests to functions.
These seem to be entirely independent, so moving the body of the if statements to separate functions should be fine.
Diffstat (limited to 'tests/unit/Module')
-rw-r--r--tests/unit/Module/ItemTest.php56
1 files changed, 56 insertions, 0 deletions
diff --git a/tests/unit/Module/ItemTest.php b/tests/unit/Module/ItemTest.php
new file mode 100644
index 000000000..b461a3685
--- /dev/null
+++ b/tests/unit/Module/ItemTest.php
@@ -0,0 +1,56 @@
+<?php
+/*
+ * SPDX-FileCopyrightText: 2024 Hubzilla Community
+ * SPDX-FileContributor: Harald Eilertsen
+ *
+ * SPDX-License-Identifier: MIT
+ */
+
+namespace Zotlabs\Tests\Unit\Module;
+
+use PHPUnit\Framework\Attributes\TestWith;
+
+class ItemTest extends TestCase {
+
+ #[TestWith(['application/x-zot+json'])]
+ #[TestWith(['application/x-zot-activity+json'])]
+ public function test_request_with_no_args_return_404(string $type): void {
+ $this->expect_status(404, 'Not found');
+
+ $_SERVER['HTTP_ACCEPT'] = $type;
+ $this->get('item');
+ }
+
+ #[TestWith(['application/x-zot+json'])]
+ #[TestWith(['application/x-zot-activity+json'])]
+ public function test_request_with_non_exiting_idem_id(string $type): void {
+ $this->expect_status(404, 'Not found');
+
+ $_SERVER['HTTP_ACCEPT'] = $type;
+ $this->get('item/non-existing-id');
+ }
+
+ /**
+ * Helper function to mock the `http_status_exit` function.
+ *
+ * The request will be terminated by throwing an exception, which
+ * will also terminate the test case. Iow. control will not return
+ * to the test case after the request has been made.
+ *
+ * @param int $status The expected HTTP status code.
+ * @param string $description The expected HTTP status description
+ */
+ private function expect_status(int $status, string $description): void {
+ $this->getFunctionMock('Zotlabs\Module', 'http_status_exit')
+ ->expects($this->once())
+ ->with($this->identicalTo($status), $this->identicalTo($description))
+ ->willReturnCallback(
+ function () {
+ throw new KillmeException();
+ }
+ );
+
+ $this->expectException(KillmeException::class);
+
+ }
+}