diff options
author | Mario Vavti <mario@mariovavti.com> | 2024-11-10 19:01:40 +0100 |
---|---|---|
committer | Mario Vavti <mario@mariovavti.com> | 2024-11-10 19:01:40 +0100 |
commit | b24b409a018f145927d8c5b72797494a7a3e9d35 (patch) | |
tree | ccc29e22f05571f449679c5b195d68352ae7ea34 /tests | |
parent | e52714ed167d8cd5c2091efc74b7eb6db1adc4ab (diff) | |
parent | 3791dfab3a73e84a007e3d8f5cd6cc4bdb014de2 (diff) | |
download | volse-hubzilla-b24b409a018f145927d8c5b72797494a7a3e9d35.tar.gz volse-hubzilla-b24b409a018f145927d8c5b72797494a7a3e9d35.tar.bz2 volse-hubzilla-b24b409a018f145927d8c5b72797494a7a3e9d35.zip |
Merge branch 'dev' into containers
Diffstat (limited to 'tests')
-rw-r--r-- | tests/unit/Module/AdminAccountEditTest.php | 1 | ||||
-rw-r--r-- | tests/unit/Module/ItemTest.php | 56 |
2 files changed, 56 insertions, 1 deletions
diff --git a/tests/unit/Module/AdminAccountEditTest.php b/tests/unit/Module/AdminAccountEditTest.php index fe682c527..818f30f26 100644 --- a/tests/unit/Module/AdminAccountEditTest.php +++ b/tests/unit/Module/AdminAccountEditTest.php @@ -11,7 +11,6 @@ namespace Zotlabs\Tests\Unit\Module; use DateTimeImmutable; use PHPUnit\Framework\Attributes\{Before, After}; -use Zotlabs\Model\Account; class AdminAccountEditTest extends TestCase { 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); + + } +} |