Skip to content
Extraits de code Groupes Projets
Valider 80dea2c3 rédigé par marcimat's avatar marcimat Validation de marcimat
Parcourir les fichiers

tests: tests liens_absolus en phpunit

Cela dit la partie qui testait le même code dans l’espace privé ne fonctionne plus
parent 200ff818
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -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;
......
<?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);
}
}
<?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('&amp;', '&#38;', $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('&amp;', '&#38;', $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);
}
}
<?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(
'&amp;',
'&#38;',
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(
'&amp;',
'&#38;',
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';
<?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';
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter