Skip to content

Commit

Permalink
Add test for OpenSearch endpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
maximilian-walter committed Sep 30, 2024
1 parent 1302e3c commit 2f74cfb
Showing 1 changed file with 42 additions and 0 deletions.
42 changes: 42 additions & 0 deletions tests/OpensearchTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
<?php

namespace Tests;

class OpensearchTest extends TestCase
{
public function test_opensearch_endpoint()
{
$appName = setting('app-name');
$resultUrl = url('/search') . '?term={searchTerms}';
$selfUrl = url('/opensearch.xml');

$resp = $this->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('/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) . '"]');
}
}

0 comments on commit 2f74cfb

Please sign in to comment.