From: Maximilian Walter Date: Sat, 14 Sep 2024 14:21:01 +0000 (+0200) Subject: Add test for OpenSearch endpoint X-Git-Tag: v24.10~1^2~13^2~1 X-Git-Url: http://source.bookstackapp.com/bookstack/commitdiff_plain/2f74cfb42c90785f9f1735319af28727cdec407a?ds=inline Add test for OpenSearch endpoint --- diff --git a/tests/OpensearchTest.php b/tests/OpensearchTest.php new file mode 100644 index 000000000..a68076b43 --- /dev/null +++ b/tests/OpensearchTest.php @@ -0,0 +1,42 @@ +get('/opensearch.xml'); + $resp->assertOk(); + + $html = $this->withHtml($resp); + + $html->assertElementExists('OpenSearchDescription > ShortName'); + $html->assertElementContains('OpenSearchDescription > ShortName', mb_strimwidth($appName, 0, 16)); + + $html->assertElementExists('OpenSearchDescription > Description'); + $html->assertElementContains('OpenSearchDescription > Description', trans('common.opensearch_description', [ + 'appName' => $appName, + ])); + + $html->assertElementExists('OpenSearchDescription > Image'); + + $html->assertElementExists('OpenSearchDescription > Url[rel="results"][template="' . htmlspecialchars($resultUrl) . '"]'); + $html->assertElementExists('OpenSearchDescription > Url[rel="self"][template="' . htmlspecialchars($selfUrl) . '"]'); + } + + public function test_opensearch_linked_to_from_home() + { + $appName = setting('app-name'); + $endpointUrl = url('/https/source.bookstackapp.com/opensearch.xml'); + + $resp = $this->asViewer()->get('/'); + $html = $this->withHtml($resp); + + $html->assertElementExists('head > link[rel="search"][type="application/opensearchdescription+xml"][title="' . htmlspecialchars($appName) . '"][href="' . htmlspecialchars($endpointUrl) . '"]'); + } +}