diff --git a/ecrire/tests/Filtre/EntitesHtmlTest.php b/ecrire/tests/Filtre/EntitesHtmlTest.php new file mode 100644 index 0000000000000000000000000000000000000000..1b2227113e60b638cf68060be923a3e71911a57b --- /dev/null +++ b/ecrire/tests/Filtre/EntitesHtmlTest.php @@ -0,0 +1,90 @@ +<?php + +declare(strict_types=1); + +namespace Spip\Test\Filtre; + +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\TestCase; + +class EntitesHtmlTest extends TestCase +{ + public static function setUpBeforeClass(): void { + find_in_path('inc/filtres.php', '', true); + } + + #[DataProvider('providerEntitesHtml')] + public function testEntitesHtml($expected, ...$args): void { + $actual = entites_html(...$args); + $this->assertSame($expected, $actual); + } + + public static function providerEntitesHtml(): array { + return [ + 'empty' => [ + 'expected' => '', + 'texte' => '', + 'tout' => false, + ], + 'zero' => [ + 'expected' => '0', + 'texte' => '0', + 'tout' => false, + ], + 'liens' => [ + 'expected' => 'Un texte avec des <a href="http://spip.net">liens</a> [Article 1->art1] [spip->http://www.spip.net] http://www.spip.net', + 'texte' =>'Un texte avec des <a href="http://spip.net">liens</a> [Article 1->art1] [spip->http://www.spip.net] http://www.spip.net', + 'tout' => false, + ], + 'entites_echappees' => [ + 'expected' => 'Un texte avec des entit&eacute;s echap&eacute; &amp;&lt;&gt;&quot;', + 'texte' => 'Un texte avec des entit&eacute;s echap&eacute; &amp;&lt;&gt;&quot;', + 'tout' => false, + ], + 'entites_numeriques' => [ + 'expected' => 'Un texte avec des entités numériques &#38;&#60;&#62;&quot;', + 'texte' => 'Un texte avec des entités numériques &<>"', + 'tout' => false, + ], + 'entites_numeriques_echappees' => [ + 'expected' => 'Un texte avec des entit&#233;s num&#233;riques echap&#233;es &#38;&#60;&#62;&quot;', + 'texte' => 'Un texte avec des entit&#233;s num&#233;riques echap&#233;es &#38;&#60;&#62;&quot;', + 'tout' => false, + ], + 'sans_entites' => [ + 'expected' => 'Un texte sans entites &<>"'', + 'texte' => 'Un texte sans entites &<>"\'', + 'tout' => false, + ], + 'code' => [ + 'expected' => '<code>&#233;</code>é', + 'texte' => '<code>é</code>é', + ], + 'raccourcis_spip' => [ + 'expected' => '{{{Des raccourcis}}} {italique} {{gras}} <code>du code</code>', + 'texte' => '{{{Des raccourcis}}} {italique} {{gras}} <code>du code</code>', + 'tout' => false, + ], + 'modele_inexistant' => [ + 'expected' => 'Un modele <modeleinexistant|lien=[->http://www.spip.net]>', + 'texte' => 'Un modele <modeleinexistant|lien=[->http://www.spip.net]>', + 'tout' => false, + ], + 'multiligne' => [ + 'expected' => <<<TEXT + Un texte avec des retour + a la ligne et meme des + + paragraphes + TEXT, + 'texte' => <<<TEXT + Un texte avec des retour + a la ligne et meme des + + paragraphes + TEXT, + 'tout' => false, + ], + ]; + } +} diff --git a/ecrire/tests/legacy/unit/filtres/entites_html.php b/ecrire/tests/legacy/unit/filtres/entites_html.php deleted file mode 100644 index 0082ec08ef9b8cf3a6f6cfa646de033d77ea3d4f..0000000000000000000000000000000000000000 --- a/ecrire/tests/legacy/unit/filtres/entites_html.php +++ /dev/null @@ -1,110 +0,0 @@ -<?php - -declare(strict_types=1); - -$test = 'entites_html'; - -$remonte = __DIR__ . '/'; - -while (!is_file($remonte . 'test.inc')) { - $remonte .= '../'; -} - -require $remonte . 'test.inc'; - -include_spip('inc/filtres'); - -$essais[] = - ['<code>&#233;</code>é', '<code>é</code>é']; - -// - -// hop ! on y va -// - -$err = tester_fun('entites_html', $essais); - -// si le tableau $err est pas vide ca va pas - -if ($err) { - die('<dl>' . implode('', $err) . '</dl>'); -} - -echo 'OK'; - -function essais_entites_html() { - return [ - 0 => - [ - 0 => '', - 1 => '', - 2 => false, - ], - 1 => - [ - 0 => '0', - 1 => '0', - 2 => false, - ], - 2 => - [ - 0 => 'Un texte avec des <a href="http://spip.net">liens</a> [Article 1->art1] [spip->http://www.spip.net] http://www.spip.net', - 1 => 'Un texte avec des <a href="http://spip.net">liens</a> [Article 1->art1] [spip->http://www.spip.net] http://www.spip.net', - 2 => false, - ], - 3 => - [ - 0 => 'Un texte avec des entit&eacute;s &&lt;&gt;&quot;', - 1 => 'Un texte avec des entités &<>"', - 2 => false, - ], - 4 => - [ - 0 => 'Un texte avec des entit&eacute;s echap&eacute; &amp;&lt;&gt;&quot;', - 1 => 'Un texte avec des entit&eacute;s echap&eacute; &amp;&lt;&gt;&quot;', - 2 => false, - ], - 5 => - [ - 0 => 'Un texte avec des entités numériques &#38;&#60;&#62;&quot;', - 1 => 'Un texte avec des entités numériques &<>"', - 2 => false, - ], - 6 => - [ - 0 => 'Un texte avec des entit&#233;s num&#233;riques echap&#233;es &#38;&#60;&#62;&quot;', - 1 => 'Un texte avec des entit&#233;s num&#233;riques echap&#233;es &#38;&#60;&#62;&quot;', - 2 => false, - ], - 7 => - [ - 0 => "Un texte sans entites &<>"'", - 1 => 'Un texte sans entites &<>"\'', - 2 => false, - ], - 8 => - [ - 0 => '{{{Des raccourcis}}} {italique} {{gras}} <code>du code</code>', - 1 => '{{{Des raccourcis}}} {italique} {{gras}} <code>du code</code>', - 2 => false, - ], - 9 => - [ - 0 => 'Un modele <modeleinexistant|lien=[->http://www.spip.net]>', - 1 => 'Un modele <modeleinexistant|lien=[->http://www.spip.net]>', - 2 => false, - ], - 10 => - [ - 0 => 'Un texte avec des retour -a la ligne et meme des - -paragraphes', - 1 => 'Un texte avec des retour -a la ligne et meme des - -paragraphes', - 2 => false, - ], - ]; -}