sanitizer = new HtmlSanitizer($purifier); } // ── Balises autorisées ───────────────────────────────────────── /** * Les balises de texte courantes doivent être conservées. */ public function testTextTagsPreserved(): void { $html = '
Un texte avec emphase et soulignement.
'; $result = $this->sanitizer->sanitize($html); $this->assertStringContainsString('texte', $result); $this->assertStringContainsString('emphase', $result); $this->assertStringContainsString('soulignement', $result); } /** * Les titres h1 à h6 doivent être conservés. */ public function testHeadingsPreserved(): void { $html = '
';
$result = $this->sanitizer->sanitize($html);
$this->assertStringContainsString('code ici'; $result = $this->sanitizer->sanitize($html); $this->assertStringContainsString('
', $result);
}
// ── Balises et attributs dangereux — suppression XSS ───────────
/**
* Les balises ';
$result = $this->sanitizer->sanitize($html);
$this->assertStringNotContainsString('">XSS';
$result = $this->sanitizer->sanitize($html);
$this->assertStringNotContainsString('data:', $result);
}
/**
* La balise