test: Testsuite fuer Kernlogik, QR-Codes, Domains und Sicherheit
232 Tests, unter anderem: - Slug-Erzeugung, Kollisionsbehandlung und Validierung - URL-Validierung inklusive IDN, Prozentkodierung und abgelehnter Protokolle; Punycode gegengeprueft gegen idn_to_ascii - QR-Erzeugung in allen Groessen, mit Logo und Level-H-Automatik - Weiterleitung gegen eine echte SQLite-Datenbank samt Domain- Aufloesung ueber den Host-Header - Update einer bestehenden Installation auf mehrere Domains - Angriffsseitig: gefaelschte Proxy-Header, Host-Header-Injektion, SVG mit Skripten, XXE und externen Referenzen
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Tests;
|
||||
|
||||
use App\Support\Color;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
final class ColorTest extends TestCase
|
||||
{
|
||||
public function testNormalizeHex(): void
|
||||
{
|
||||
self::assertSame('#ffffff', Color::normalizeHex('#FFF'));
|
||||
self::assertSame('#000000', Color::normalizeHex('000000'));
|
||||
self::assertSame('#2c5cc5', Color::normalizeHex('#2C5CC5'));
|
||||
self::assertSame('#000000', Color::normalizeHex('keine-farbe'));
|
||||
self::assertSame('#ffffff', Color::normalizeHex('quatsch', '#ffffff'));
|
||||
}
|
||||
|
||||
public function testContrastRatioExtremes(): void
|
||||
{
|
||||
self::assertSame(21.0, Color::contrastRatio('#000000', '#ffffff'));
|
||||
self::assertSame(1.0, Color::contrastRatio('#123456', '#123456'));
|
||||
}
|
||||
|
||||
public function testWarningForLowContrast(): void
|
||||
{
|
||||
self::assertNotNull(Color::qrWarning('#888888', '#999999'));
|
||||
self::assertNull(Color::qrWarning('#000000', '#ffffff'));
|
||||
self::assertNull(Color::qrWarning('#0b4f9e', '#ffffff'));
|
||||
}
|
||||
|
||||
public function testWarningForInvertedCodes(): void
|
||||
{
|
||||
$warning = Color::qrWarning('#ffffff', '#000000');
|
||||
|
||||
self::assertNotNull($warning);
|
||||
self::assertStringContainsString('invertierte', $warning);
|
||||
}
|
||||
|
||||
public function testToRgb(): void
|
||||
{
|
||||
self::assertSame([255, 255, 255], Color::toRgb('#ffffff'));
|
||||
self::assertSame([44, 92, 197], Color::toRgb('#2c5cc5'));
|
||||
self::assertSame([0, 0, 0], Color::toRgb('#000'));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user