From e8c815da12d9747e1a9e6827d5163ff765849898 Mon Sep 17 00:00:00 2001 From: Matthieu Marcillaud <marcimat@rezo.net> Date: Tue, 11 Jul 2023 14:46:56 +0200 Subject: [PATCH] tests: tests de xml 'hack' en phpunit --- ecrire/tests/Xml/XmlHackTest.php | 39 ++++++++++++++ ecrire/tests/Xml/data/xmlhack.html | 2 + ecrire/tests/Xml/data/xmlhack_inclure.html | 1 + .../xml => Xml/data}/xmlhack_inclure_dyn.html | 0 .../data}/xmlhack_inclure_dyn_php.html | 0 .../xml => Xml/data}/xmlhack_inclure_php.html | 0 ecrire/tests/Xml/data/xmlhack_php.html | 2 + ecrire/tests/legacy/unit/xml/xmlhack.html | 14 ----- .../legacy/unit/xml/xmlhack_fonctions.php | 5 -- .../legacy/unit/xml/xmlhack_inclure.html | 1 - ecrire/tests/legacy/unit/xml/xmlhack_php.html | 14 ----- .../legacy/unit/xml/xmlhack_php_fonctions.php | 5 -- .../unit/xml/xmlhack_recuperer_fond.php | 53 ------------------- 13 files changed, 44 insertions(+), 92 deletions(-) create mode 100644 ecrire/tests/Xml/XmlHackTest.php create mode 100644 ecrire/tests/Xml/data/xmlhack.html create mode 100644 ecrire/tests/Xml/data/xmlhack_inclure.html rename ecrire/tests/{legacy/unit/xml => Xml/data}/xmlhack_inclure_dyn.html (100%) rename ecrire/tests/{legacy/unit/xml => Xml/data}/xmlhack_inclure_dyn_php.html (100%) rename ecrire/tests/{legacy/unit/xml => Xml/data}/xmlhack_inclure_php.html (100%) create mode 100644 ecrire/tests/Xml/data/xmlhack_php.html delete mode 100644 ecrire/tests/legacy/unit/xml/xmlhack.html delete mode 100644 ecrire/tests/legacy/unit/xml/xmlhack_fonctions.php delete mode 100644 ecrire/tests/legacy/unit/xml/xmlhack_inclure.html delete mode 100644 ecrire/tests/legacy/unit/xml/xmlhack_php.html delete mode 100644 ecrire/tests/legacy/unit/xml/xmlhack_php_fonctions.php delete mode 100644 ecrire/tests/legacy/unit/xml/xmlhack_recuperer_fond.php diff --git a/ecrire/tests/Xml/XmlHackTest.php b/ecrire/tests/Xml/XmlHackTest.php new file mode 100644 index 0000000000..80ea872246 --- /dev/null +++ b/ecrire/tests/Xml/XmlHackTest.php @@ -0,0 +1,39 @@ +<?php + +declare(strict_types=1); + +namespace Spip\Test\Xml; + +use PHPUnit\Framework\Attributes\DataProvider; +use Spip\Test\SquelettesTestCase; + +/** + * Le hack xml repère dans le squelette la sequence "< ?xml" + * et évite de l'éxecuter en php + */ +class XmlHackTest extends SquelettesTestCase +{ + #[DataProvider('providerXmlIsNotPhp')] + public function testXmlIsNotPhp(string $squelette): void { + $skel = $this->relativePath(__DIR__ . '/data/' . $squelette); + $out = recuperer_fond($skel, [], [ + 'raw' => true, + 'trim' => true + ]); + $this->assertEmpty($out['erreur'] ?? null); + $this->assertNotEmpty($out['texte']); + $xml = simplexml_load_string($out['texte']); + $this->assertOk((string) $xml[0]); + } + + public static function providerXmlIsNotPhp(): array { + return [ + ['xmlhack'], + ['xmlhack_php'], + ['xmlhack_inclure'], + ['xmlhack_inclure_php'], + ['xmlhack_inclure_dyn'], + ['xmlhack_inclure_dyn_php'], + ]; + } +} diff --git a/ecrire/tests/Xml/data/xmlhack.html b/ecrire/tests/Xml/data/xmlhack.html new file mode 100644 index 0000000000..8d90939bae --- /dev/null +++ b/ecrire/tests/Xml/data/xmlhack.html @@ -0,0 +1,2 @@ +<?xml version="1.0"[ encoding="(#CHARSET)"]?> +<tag>OK</tag> diff --git a/ecrire/tests/Xml/data/xmlhack_inclure.html b/ecrire/tests/Xml/data/xmlhack_inclure.html new file mode 100644 index 0000000000..950b7e8edf --- /dev/null +++ b/ecrire/tests/Xml/data/xmlhack_inclure.html @@ -0,0 +1 @@ +[(#INCLURE{fond=#DOSSIER_SQUELETTE/xmlhack})] diff --git a/ecrire/tests/legacy/unit/xml/xmlhack_inclure_dyn.html b/ecrire/tests/Xml/data/xmlhack_inclure_dyn.html similarity index 100% rename from ecrire/tests/legacy/unit/xml/xmlhack_inclure_dyn.html rename to ecrire/tests/Xml/data/xmlhack_inclure_dyn.html diff --git a/ecrire/tests/legacy/unit/xml/xmlhack_inclure_dyn_php.html b/ecrire/tests/Xml/data/xmlhack_inclure_dyn_php.html similarity index 100% rename from ecrire/tests/legacy/unit/xml/xmlhack_inclure_dyn_php.html rename to ecrire/tests/Xml/data/xmlhack_inclure_dyn_php.html diff --git a/ecrire/tests/legacy/unit/xml/xmlhack_inclure_php.html b/ecrire/tests/Xml/data/xmlhack_inclure_php.html similarity index 100% rename from ecrire/tests/legacy/unit/xml/xmlhack_inclure_php.html rename to ecrire/tests/Xml/data/xmlhack_inclure_php.html diff --git a/ecrire/tests/Xml/data/xmlhack_php.html b/ecrire/tests/Xml/data/xmlhack_php.html new file mode 100644 index 0000000000..b771fb9c95 --- /dev/null +++ b/ecrire/tests/Xml/data/xmlhack_php.html @@ -0,0 +1,2 @@ +<?xml version="1.0"[ encoding="(#CHARSET)"]?> +<tag><?php echo 'OK'; ?></tag> diff --git a/ecrire/tests/legacy/unit/xml/xmlhack.html b/ecrire/tests/legacy/unit/xml/xmlhack.html deleted file mode 100644 index 839ecf4701..0000000000 --- a/ecrire/tests/legacy/unit/xml/xmlhack.html +++ /dev/null @@ -1,14 +0,0 @@ -[(#REM) - - le hack xml repere dans le squelette la sequence "< ?xml" - et evite de l'executer en php - -] - -#CACHE{0}<!-- -filtre:spip_xml_parse -filtre:reset -filtre:reset ---> -<?xml version="1.0"[ encoding="(#CHARSET)"]?> -<tag>OK</tag> \ No newline at end of file diff --git a/ecrire/tests/legacy/unit/xml/xmlhack_fonctions.php b/ecrire/tests/legacy/unit/xml/xmlhack_fonctions.php deleted file mode 100644 index f53060ed3c..0000000000 --- a/ecrire/tests/legacy/unit/xml/xmlhack_fonctions.php +++ /dev/null @@ -1,5 +0,0 @@ -<?php - -declare(strict_types=1); - -include_spip('inc/xml'); diff --git a/ecrire/tests/legacy/unit/xml/xmlhack_inclure.html b/ecrire/tests/legacy/unit/xml/xmlhack_inclure.html deleted file mode 100644 index 8b8017680c..0000000000 --- a/ecrire/tests/legacy/unit/xml/xmlhack_inclure.html +++ /dev/null @@ -1 +0,0 @@ -[(#INCLURE{fond=#DOSSIER_SQUELETTE/xmlhack})] \ No newline at end of file diff --git a/ecrire/tests/legacy/unit/xml/xmlhack_php.html b/ecrire/tests/legacy/unit/xml/xmlhack_php.html deleted file mode 100644 index c7f8c11df9..0000000000 --- a/ecrire/tests/legacy/unit/xml/xmlhack_php.html +++ /dev/null @@ -1,14 +0,0 @@ -[(#REM) - - le hack xml repere dans le squelette la sequence "< ?xml" - et evite de l'executer en php - -] - -#CACHE{0}<!-- -filtre:spip_xml_parse -filtre:reset -filtre:reset ---> -<?xml version="1.0"[ encoding="(#CHARSET)"]?> -<tag><?php echo 'OK'; ?></tag> \ No newline at end of file diff --git a/ecrire/tests/legacy/unit/xml/xmlhack_php_fonctions.php b/ecrire/tests/legacy/unit/xml/xmlhack_php_fonctions.php deleted file mode 100644 index f53060ed3c..0000000000 --- a/ecrire/tests/legacy/unit/xml/xmlhack_php_fonctions.php +++ /dev/null @@ -1,5 +0,0 @@ -<?php - -declare(strict_types=1); - -include_spip('inc/xml'); diff --git a/ecrire/tests/legacy/unit/xml/xmlhack_recuperer_fond.php b/ecrire/tests/legacy/unit/xml/xmlhack_recuperer_fond.php deleted file mode 100644 index e59c464051..0000000000 --- a/ecrire/tests/legacy/unit/xml/xmlhack_recuperer_fond.php +++ /dev/null @@ -1,53 +0,0 @@ -<?php - -declare(strict_types=1); - -$test = 'xmlhack_recuperer_fond'; - -$remonte = __DIR__ . '/'; - -while (!is_file($remonte . 'test.inc')) { - $remonte .= '../'; -} - -require $remonte . 'test.inc'; - -include_spip('public/assembler'); - -$dir = substr(dirname(__DIR__, 2), strlen(_SPIP_TEST_CHDIR) + 1); - -$out = recuperer_fond($dir . '/unit/xml/xmlhack'); - -// regarder si le hack a marche - -include_spip('inc/xml'); - -$tree = spip_xml_parse($out); - -$ok = reset($tree); - -$ok = reset($ok); - -if ($ok !== 'OK') { - echo '<dl> Erreur sur le xml produit (xmlhack) : ' . serialize($tree) . '</dl>'; -} - -$out = recuperer_fond($dir . '/unit/xml/xmlhack_php'); - -// regarder si le hack a marche - -include_spip('inc/xml'); - -$tree = spip_xml_parse($out); - -$ok1 = reset($tree); - -$ok1 = reset($ok1); - -if ($ok1 !== 'OK') { - echo '<dl> Erreur sur le xml produit (xmlhack_php) : ' . serialize($tree) . '</dl>'; -} - -if ($ok && $ok1) { - echo 'OK'; -} -- GitLab