fix: remove automatically appended footer legal links (1.8.1)
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 12:30:34 +02:00
1 parent ab86312e87
commit 8f475d1374
12 files changed
+40 -62

No files matched your search

+12 -11
View File
@@ -1118,12 +1118,9 @@ final class CmsTest extends TestCase
self::assertStringContainsString("script-src 'none'", (string) $zweite->headers->get('Content-Security-Policy'));
}
public function testTheLegalLineCanLiveInsideTheFooterInsteadOfUnderneathIt(): void
public function testLegalLinksAppearOnlyWhereAnAuthorPlacesThem(): void
{
// Umut: „ganz unten Einwilligung ändern, Datenschutz usw. ist links, komplett bitte besser
// lösen." Die eingebaute Leiste klebte als heller Streifen unter einem dunklen Fuß. Als
// Baustein steht sie dort, wo sie hingehört, und erbt die Farben ihres Bereichs.
// Zwei verschiedene Seiten: die Zeile fuehrt zu Datenschutz und Impressum.
// Die hinterlegten Adressen erzeugen keine zusätzliche Leiste unter dem Footer.
$datenschutz = $this->pages->createPage('datenschutz', null, 'page', DemoContent::starter('Datenschutz'));
$seite = $this->pages->findForEditor($datenschutz);
$this->pages->publish($datenschutz, $seite['draft_revision_id'], $seite['version']);
@@ -1132,9 +1129,10 @@ final class CmsTest extends TestCase
$document['schemaVersion'] = 19;
$this->pages->publish('page-1', $this->pages->saveDraft('page-1', $document, 0), 1);
// Ohne Baustein: die eingebaute Leiste am Seitenende.
// Ohne selbst platzierte Links bleibt die Seite ohne Rechtszeile.
$html = $this->request('/')->getContent();
self::assertStringContainsString('<nav class="legal-bar"', $html);
self::assertStringNotContainsString('<nav class="legal-bar"', $html);
self::assertStringNotContainsString('<a href="/datenschutz">', $html);
// Mit Baustein: nur noch dieser, und zwar an seiner Stelle im Dokument.
$document['blocks'][] = ['id' => 'rechtszeile', 'type' => 'legal', 'props' => []];
@@ -1142,7 +1140,7 @@ final class CmsTest extends TestCase
$this->pages->publish('page-1', $this->pages->saveDraft('page-1', $document, $version), $version + 1);
$mit = $this->request('/')->getContent();
self::assertStringContainsString('<nav id="rechtszeile" class="block-legal"', $mit);
self::assertStringNotContainsString('<nav class="legal-bar"', $mit, 'Zweimal dieselbe Zeile ist schlechter als einmal.');
self::assertStringNotContainsString('<nav class="legal-bar"', $mit);
self::assertStringContainsString('Datenschutz', $mit);
}
@@ -3610,12 +3608,12 @@ final class CmsTest extends TestCase
}
self::assertSame('', $this->site->load()[$key]);
}
// A page that exists is accepted and then linked on every page.
// A page that exists is accepted; placing its link remains an editorial choice.
$this->publishedPage('datenschutz', 'Datenschutz');
$this->site->save(['homePath' => 'home', 'privacyPath' => 'datenschutz']);
self::assertSame('datenschutz', $this->site->load()['privacyPath']);
$this->pages->publish('page-1', $this->pages->saveDraft('page-1', DemoContent::pages()['home'], 0), 1);
self::assertStringContainsString('<a href="/datenschutz">Datenschutz</a>', $this->request('/')->getContent());
self::assertStringNotContainsString('<a href="/datenschutz">Datenschutz</a>', $this->request('/')->getContent());
}
public function testADeliveredPageIncrementsOneCounterAndTheAdministrationDoesNot(): void
@@ -3650,7 +3648,10 @@ final class CmsTest extends TestCase
public function testTheQuestionAppearsUntilItIsAnsweredAndCanBeChangedAgain(): void
{
$this->pages->publish('page-1', $this->pages->saveDraft('page-1', DemoContent::pages()['home'], 0), 1);
$document = DemoContent::pages()['home'];
$document['schemaVersion'] = 19;
$document['blocks'][] = ['id' => 'consent-links', 'type' => 'legal', 'props' => []];
$this->pages->publish('page-1', $this->pages->saveDraft('page-1', $document, 0), 1);
$this->askConsent();
$response = $this->request('/');