diff --git a/ecrire/tests/Urls/AbsUrlTest.php b/ecrire/tests/Urls/AbsUrlTest.php index 9e8d3ac5f1594c79a26595609c4c839a1dc15667..9c4c2b1cd374cc7ae9675c197aba30618b38324d 100644 --- a/ecrire/tests/Urls/AbsUrlTest.php +++ b/ecrire/tests/Urls/AbsUrlTest.php @@ -2,10 +2,6 @@ declare(strict_types=1); -/** - * Test unitaire de la fonction tester_url_absolue du fichier ./inc/utils.php - */ - namespace Spip\Test\Urls; use PHPUnit\Framework\Attributes\DataProvider; diff --git a/ecrire/tests/Urls/LiensAbsolusPriveTest.php b/ecrire/tests/Urls/LiensAbsolusPriveTest.php new file mode 100644 index 0000000000000000000000000000000000000000..20e70527942602a740de46bb25213a0fca1e9a08 --- /dev/null +++ b/ecrire/tests/Urls/LiensAbsolusPriveTest.php @@ -0,0 +1,33 @@ +<?php + +declare(strict_types=1); + + +namespace Spip\Test\Urls; + +use PHPUnit\Framework\TestCase; + +/** + * FIXME: Ce test fonctionnait (avec un hack dans les vieux tests legacy) + * Il redéfinissait _SPIP_TEST_CHDIR (mais qui est déjà défini en entrant ici maintenant) + */ +class LiensAbsolusPriveTest extends LiensAbsolusTest +{ + public static function setUpBeforeClass(): void { + #chdir(dirname(__DIR__, 2)); + find_in_path('./inc/utils.php', '', true); + } + + public function testVerifierEspace(): void { + if (!test_espace_prive()) { + $this->markTestIncomplete('FIXME: être considéré dans l’espace privé dans le test'); + } + $this->assertTrue(test_espace_prive(), 'On doit être dans l’espace privé'); + + } + + + public static function tearDownAfterClass(): void { + #chdir(_SPIP_TEST_CHDIR); + } +} diff --git a/ecrire/tests/Urls/LiensAbsolusTest.php b/ecrire/tests/Urls/LiensAbsolusTest.php new file mode 100644 index 0000000000000000000000000000000000000000..da58127fe43d5d232d3b982339fda48b3cb74b1d --- /dev/null +++ b/ecrire/tests/Urls/LiensAbsolusTest.php @@ -0,0 +1,56 @@ +<?php + +declare(strict_types=1); + + +namespace Spip\Test\Urls; + +use PHPUnit\Framework\Attributes\Depends; +use PHPUnit\Framework\TestCase; + +class LiensAbsolusTest extends TestCase +{ + public static function setUpBeforeClass(): void { + find_in_path('./inc/utils.php', '', true); + } + + public function testVerifierEspace() { + $this->assertFalse(test_espace_prive(), 'On doit être dans l’espace public'); + } + + #[Depends('testVerifierEspace')] + public function testLienPrive() { + $relatif = generer_url_ecrire('toto', 'truc=machin&chose=bidule', false, true); + $absolu = generer_url_ecrire('toto', 'truc=machin&chose=bidule', false, false); + $expected = 'bla bla <a href=\'' . str_replace('&', '&', $absolu) . '\'>lien prive</a>'; + $case = 'bla bla <a href=\'' . $relatif . '\'>lien prive</a>'; + $actual = liens_absolus($case); + $this->assertEquals($expected, $actual); + } + + #[Depends('testVerifierEspace')] + public function testLienPublic() { + $relatif = generer_url_public('toto', 'truc=machin&chose=bidule', false, true); + $absolu = generer_url_public('toto', 'truc=machin&chose=bidule', false, false); + $expected = 'bla bla <a href=\'' . str_replace('&', '&', $absolu) . '\'>lien public</a>'; + $case = 'bla bla <a href=\'' . $relatif . '\'>lien public</a>'; + $actual = liens_absolus($case); + $this->assertEquals($expected, $actual); + } + + #[Depends('testVerifierEspace')] + public function testLienMailto() { + $expected = 'bla bla <a href="mailto:toto">email</a>'; + $case = 'bla bla <a href="mailto:toto">email</a>'; + $actual = liens_absolus($case); + $this->assertEquals($expected, $actual); + } + + #[Depends('testVerifierEspace')] + public function testLienJavascript() { + $expected = 'bla bla <a href="javascript:open()">javascript</a>'; + $case = 'bla bla <a href="javascript:open()">javascript</a>'; + $actual = liens_absolus($case); + $this->assertEquals($expected, $actual); + } +} diff --git a/ecrire/tests/legacy/unit/filtres/liens_absolus.php b/ecrire/tests/legacy/unit/filtres/liens_absolus.php deleted file mode 100644 index b0d39e24fa4cf16af50ec636af3bbe68637c9ab9..0000000000000000000000000000000000000000 --- a/ecrire/tests/legacy/unit/filtres/liens_absolus.php +++ /dev/null @@ -1,66 +0,0 @@ -<?php - -declare(strict_types=1); - -if (!(isset($test) && $test)) { - $test = 'liens_absolus'; -} - -$remonte = __DIR__ . '/'; - -while (!is_file($remonte . 'test.inc')) { - $remonte .= '../'; -} - -require $remonte . 'test.inc'; - -include_spip('inc/filtres'); - -$essais['lien prive'] = - [ - "bla bla <a href='" . str_replace( - '&', - '&', - generer_url_ecrire('toto', 'truc=machin&chose=bidule', false, false) - ) . "'>lien prive</a>", - "bla bla <a href='" . generer_url_ecrire('toto', 'truc=machin&chose=bidule', false, true) . "'>lien prive</a>", - ]; - -$essais['lien public'] = - [ - "bla bla <a href='" . str_replace( - '&', - '&', - generer_url_public('toto', 'truc=machin&chose=bidule', false, false) - ) . "'>lien public</a>", - "bla bla <a href='" . generer_url_public('toto', 'truc=machin&chose=bidule', false, true) . "'>lien public</a>", - ]; - -$essais['mailto'] = - ["bla bla <a href='mailto:toto'>email</a>", "bla bla <a href='mailto:toto'>email</a>"]; - -$essais['javascript'] = - ["bla bla <a href='javascript:open()'>javascript</a>", "bla bla <a href='javascript:open()'>javascript</a>"]; - -// - -// hop ! on y va -// - -# tests invalides si _SPIP_SCRIPT vaut '' - -if (_SPIP_SCRIPT === '') { - die('NA _SPIP_SCRIPT=""'); -} - -# non applicable - -$err = tester_fun('liens_absolus', $essais); - -// si le tableau $err est pas vide ca va pas - -if ($err) { - die('<dl>' . implode('', $err) . '</dl>'); -} - -echo 'OK'; diff --git a/ecrire/tests/legacy/unit/filtres/liens_absolus_prive.php b/ecrire/tests/legacy/unit/filtres/liens_absolus_prive.php deleted file mode 100644 index 0f07416fbdabc76ebc4c7a3840fa09fa6ae833bd..0000000000000000000000000000000000000000 --- a/ecrire/tests/legacy/unit/filtres/liens_absolus_prive.php +++ /dev/null @@ -1,23 +0,0 @@ -<?php - -declare(strict_types=1); - -/* - * Le meme que liens_absolus.php mais on hacke _SPIP_TEST_INC - * pour que le chdir() au debut de test.inc nous transporte dans ecrire/ - * ceci avant que inc_version.php soit inclus ... - */ -// let's go ecrire/ -$dir_racine = dirname(__DIR__, 2); -while (!is_dir($dir_racine . '/ecrire')) { - $dir_racine = dirname($dir_racine); -} - -define('_SPIP_TEST_CHDIR', $dir_racine . '/ecrire'); -$test = 'liens_absolus_prive'; - -// si on rajoute ça ... -// ça serait presque mieux , mais generer_url_public fait pas de resolv_path() -//define('_SPIP_SCRIPT', '../../'); - -include __DIR__ . '/liens_absolus.php';