Add device visibility and responsive navigation for 1.10.0
CMS quality / php (8.2) (push) Canceled after 0s
CMS quality / php (8.4) (push) Canceled after 0s
CMS quality / browser (push) Canceled after 0s
CMS quality / mysql (push) Canceled after 0s

This commit is contained in:
kantarci committed 2026-09-14 14:46:55 +02:00
1 parent eea6747d9e
commit 37c2942d1d
18 files changed
+493 -26

No files matched your search

+7 -4
View File
@@ -574,7 +574,8 @@ final class CmsTest extends TestCase
self::assertStringContainsString('href="https://hausklar.app"', $html);
self::assertStringContainsString('href="tel:+4972219957150"', $html);
// The home link is the current page; an anchor inside it is not.
self::assertSame(1, substr_count($html, 'aria-current="page"'));
// Desktop and collapsed menu carry the same marker; CSS exposes one variant at a time.
self::assertSame(2, substr_count($html, 'aria-current="page"'));
self::assertMatchesRegularExpression('~<a href="/" aria-current="page">\s*<span class="nav-label"><span>Start</span></span>\s*</a>~', $html);
// On another page the marker moves and nothing else changes.
@@ -2569,7 +2570,7 @@ final class CmsTest extends TestCase
self::assertStringContainsString('<header class="site-header">', $html);
self::assertStringContainsString('<p id="area-header-name" class="block-text">kantsites</p>', $html);
self::assertStringContainsString('aria-label="Hauptnavigation"', $html);
self::assertStringContainsString('>Start</a>', $html);
self::assertStringContainsString('<span class="nav-label"><span>Start</span></span>', $html);
// Changing the header reaches every page at once, because it is one shared document.
$header = $this->partials->findByKind('header');
@@ -2699,7 +2700,8 @@ final class CmsTest extends TestCase
self::assertSame('_blank', $crawler->filter($selector)->attr('target'));
self::assertSame('noopener', $crawler->filter($selector)->attr('rel'));
}
self::assertCount(2, $crawler->filter('.site-header .menu-list a[target="_blank"][rel="noopener"]'));
self::assertCount(2, $crawler->filter('.site-header .block-menu > .menu-list a[target="_blank"][rel="noopener"]'));
self::assertCount(2, $crawler->filter('.site-header .menu-burger a[target="_blank"][rel="noopener"]'));
$document['blocks'][array_key_last($document['blocks'])]['props']['newTab'] = 'yes';
$this->expectException(InvalidDocument::class);
(new DocumentValidator())->validate($document);
@@ -3295,7 +3297,8 @@ final class CmsTest extends TestCase
$html = $this->request('/')->getContent();
self::assertStringContainsString('class="block-menu menu-'.$layout, $html);
// The burger opens with a details element, so it works on a page that runs no script.
self::assertSame('burger' === $layout, str_contains($html, 'menu-burger'));
$crawler = new \Symfony\Component\DomCrawler\Crawler($html);
self::assertCount('vertical' === $layout ? 0 : 1, $crawler->filter('#nav > details.menu-burger'));
self::assertStringContainsString("script-src 'none'", (string) $this->request('/')->headers->get('Content-Security-Policy'));
}