Finanzmanager/tests/64_AnmeldeMarkeTest.php
fds2610-bot a2867bd806 Fix #130: Marke der Anmeldeseite an die Seitenleiste angleichen
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 21:46:01 +02:00

78 lines
2.5 KiB
PHP

<?php
declare(strict_types=1);
/**
* Die Anmeldeseite (und jede andere Seite im schlichten Rahmen) trägt dieselbe
* Marke wie die Seitenleiste nach dem Anmelden: Coinstack-Symbol und
* zweifarbiger Schriftzug.
*/
class AnmeldeMarkeTest extends TestCase
{
protected string $testName = 'Test 64: Marke der Anmeldeseite';
public function run(): void
{
$this->anmeldungZeigtSymbolUndSchriftzug();
$this->stilblattGleichtDerSeitenleiste();
}
private function anmeldungZeigtSymbolUndSchriftzug(): void
{
$seite = $this->rendereAnmeldung();
$this->assert(
str_contains($seite, '<div class="anmelde-marke">'),
'Die Anmeldeseite hat eine eigene Marke'
);
$this->assert(
str_contains($seite, '<img src="/static/coinstack.png" alt="" class="marken-symbol">'),
'Die Marke führt das Coinstack-Symbol wie die Seitenleiste'
);
$this->assert(
str_contains($seite, '<span class="marken-text">Finanz<span>manager</span></span>'),
'Der Schriftzug ist wie in der Seitenleiste zweigeteilt'
);
$this->assert(
!str_contains($seite, 'class="marke gross"'),
'Die alte Marke im Stil einer Statusmarke ist verschwunden'
);
}
private function stilblattGleichtDerSeitenleiste(): void
{
$css = (string)file_get_contents(dirname(__DIR__) . '/public/static/app.css');
$this->assert(
(bool)preg_match('/\.anmelde-marke\s*\{[^}]*font-weight:\s*700;/', $css),
'Der Schriftzug ist fett wie in der Seitenleiste'
);
$this->assert(
(bool)preg_match('/\.anmelde-marke\s*\{[^}]*display:\s*flex;[^}]*align-items:\s*center;/', $css),
'Symbol und Schriftzug stehen nebeneinander auf einer Linie'
);
$this->assert(
(bool)preg_match('/\.anmelde-marke \.marken-text span\s*\{\s*color:\s*var\(--akzent-schrift\);/', $css),
'Die zweite Worthälfte trägt die Akzentfarbe'
);
$this->assert(
!preg_match('/\.marke\.gross\s*\{/', $css),
'Die alte Regel für die große Statusmarke ist entfernt'
);
}
private function rendereAnmeldung(): string
{
$csrfToken = 'test';
$titel = 'Anmeldung';
$flash = [];
ob_start();
try {
include dirname(__DIR__) . '/src/Views/auth/login.php';
} finally {
$html = (string)ob_get_clean();
}
return $html;
}
}