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
49 lines
1.5 KiB
PHP
49 lines
1.5 KiB
PHP
<?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'));
|
|
}
|
|
}
|