feat(tests): corrections tests et outils

pull/5581/head
JamesRezo 1 month ago
parent 7e3c810c85
commit aa1a340904

2
.gitattributes vendored

@ -11,5 +11,5 @@ docker-compose.yml export-ignore
/lib/ export-ignore
/mutualisation/ export-ignore
/sites/ export-ignore
/tests/ export-ignore
/ecrire/tests/ export-ignore
/themes/ export-ignore

2
.gitignore vendored

@ -2,10 +2,12 @@
/vendor/
/composer.phar
/composer.local.*
/phpunit.xml
/phpcs.xml
/phpstan.neon
/docker-compose.override.yml
/docker-compose.yml
/.phpunit.cache
# SPIP
/IMG/

@ -21,3 +21,46 @@ maintenu par sa communauté avec tendresse.
- [Reporter une faille de sécurité](https://www.spip.net/fr_article6688.html)
- [SECURITY.md](SECURITY.md)
## Tests pour SPIP
Suite de tests basée sur PHPUnit, avec un wrapper pour les tests historiques écrits en script PHP standalone ou en squelette HTML
### Commandes spécifiques
Lancer tous les tests
```bash
vendor/bin/phpunit --colors tests
```
Voir le détail de tous les tests lancés (y compris leurs noms)
```bash
vendor/bin/phpunit --colors --debug tests
```
Lister toutes les suites de tests :
```bash
vendor/bin/phpunit --colors --debug --list-suites
```
Lister tous les tests :
```bash
vendor/bin/phpunit --colors --debug --list-tests
```
Pour filtrer les tests et n'en executer que certains :
```bash
vendor/bin/phpunit --colors --debug tests --filter=unit/propre/
vendor/bin/phpunit --colors --debug --filter=testCouper
```
### Legacy
Les tests historiques écrits sous forme de PHP ou de squelette HTML sont joués via les 2 composants `LegacyUnitHtmlTest.php` et `LegacyUnitPhpTest.php`
Il est encore possible de lancer dans le navigateur la suite de tests legacy via l'url `monsite.spip/tests/` mais cette méthode est depréciée et ne lancera pas les tests écrits directement pour PHPUnit

@ -37,7 +37,10 @@
"dealerdirect/phpcodesniffer-composer-installer": "^1.0",
"phpcompatibility/php-compatibility": "10.x-dev",
"phpstan/phpstan": "^1.10",
"spip/coding-standards": "^1.3"
"spip/coding-standards": "^1.3",
"phpunit/phpunit": "^10.1",
"symplify/easy-coding-standard": "^11.3",
"lolli42/finediff": "^1.0"
},
"suggest": {
"ext-curl": "*",
@ -45,7 +48,8 @@
"ext-mbstring": "Faster than the polyfill for string actions",
"ext-mysqli": "*",
"ext-pdo": "*",
"ext-pdo_sqlite": "*"
"ext-pdo_sqlite": "*",
"ext-iconv": "Can be used as fallback when ext-mbstring is not available"
},
"repositories": {
"spip": {
@ -58,9 +62,15 @@
"Spip\\": "ecrire/src/"
}
},
"autoload-dev": {
"psr-4": {
"Spip\\Test\\": "ecrire/tests/"
}
},
"archive": {
"exclude": [
"!vendor",
"phpunit.xml.dist",
"phpcs.xml.dist",
"phpstan.neon.dist",
"phpstan-baseline.neon",

1837
composer.lock generated

File diff suppressed because it is too large Load Diff

@ -12,7 +12,7 @@ declare(strict_types=1);
* Pour plus de détails voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
namespace Spip\Core\Tests\Action;
namespace Spip\Test\Action;
use PHPUnit\Framework\TestCase;

@ -2,7 +2,7 @@
declare(strict_types=1);
namespace Spip\Core\Tests\Api;
namespace Spip\Test\Api;
use PHPUnit\Framework\TestCase;

@ -12,7 +12,7 @@ declare(strict_types=1);
* Pour plus de détails voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
namespace Spip\Core\Tests\Config;
namespace Spip\Test\Config;
use PHPUnit\Framework\TestCase;

@ -12,7 +12,7 @@ declare(strict_types=1);
* Pour plus de détails voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
namespace Spip\Core\Tests\Config;
namespace Spip\Test\Config;
use PHPUnit\Framework\TestCase;

@ -12,7 +12,7 @@ declare(strict_types=1);
* Pour plus de détails voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
namespace Spip\Core\Tests\Config;
namespace Spip\Test\Config;
use PHPUnit\Framework\TestCase;

@ -2,7 +2,7 @@
declare(strict_types=1);
namespace Spip\Core\Testing\Constraint;
namespace Spip\Test\Constraint;
use PHPUnit\Framework\Constraint\Constraint;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction need_proxy du fichier ./inc/distant.php
*/
namespace Spip\Core\Tests\Distant;
namespace Spip\Test\Distant;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction url_to_ascii du fichier ./inc/distant.php
*/
namespace Spip\Core\Tests\Distant;
namespace Spip\Test\Distant;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction valider_url_distante du fichier ./inc/distant.php
*/
namespace Spip\Core\Tests\Distant;
namespace Spip\Test\Distant;
use PHPUnit\Framework\TestCase;

@ -2,7 +2,7 @@
declare(strict_types=1);
namespace Spip\Core\Testing\Exception;
namespace Spip\Test\Exception;
class TemplateCompilationErrorException extends \Exception
{

@ -2,7 +2,7 @@
declare(strict_types=1);
namespace Spip\Core\Testing\Exception;
namespace Spip\Test\Exception;
class TemplateNotFoundException extends \Exception
{

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction ajouter_class du fichier ./inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre;
namespace Spip\Test\Filtre;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction antispam du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre;
namespace Spip\Test\Filtre;
use PHPUnit\Framework\TestCase;
@ -22,5 +22,4 @@ class AntispamTest extends TestCase
$actual = antispam('email@domain.tld');
$this->assertStringNotContainsString('@', $actual);
}
}

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction appliquer_filtre du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre;
namespace Spip\Test\Filtre;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction chercher_filtre du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre;
namespace Spip\Test\Filtre;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction commuter_class du fichier ./inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre;
namespace Spip\Test\Filtre;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction corriger_entites_html du fichier ./inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre;
namespace Spip\Test\Filtre;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction affdate_court du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre\Date;
namespace Spip\Test\Filtre\Date;
use PHPUnit\Framework\TestCase;

@ -2,7 +2,7 @@
declare(strict_types=1);
namespace Spip\Core\Tests\Filtre\Date;
namespace Spip\Test\Filtre\Date;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction affdate_heure du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre\Date;
namespace Spip\Test\Filtre\Date;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction affdate_jourcourt du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre\Date;
namespace Spip\Test\Filtre\Date;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction affdate_mois_annee du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre\Date;
namespace Spip\Test\Filtre\Date;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction annee du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre\Date;
namespace Spip\Test\Filtre\Date;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction date_ical du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre\Date;
namespace Spip\Test\Filtre\Date;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction date_interface du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre\Date;
namespace Spip\Test\Filtre\Date;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction date_relative du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre\Date;
namespace Spip\Test\Filtre\Date;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction heures_minutes du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre\Date;
namespace Spip\Test\Filtre\Date;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction heures du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre\Date;
namespace Spip\Test\Filtre\Date;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction jour du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre\Date;
namespace Spip\Test\Filtre\Date;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction journum du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre\Date;
namespace Spip\Test\Filtre\Date;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction minutes du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre\Date;
namespace Spip\Test\Filtre\Date;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction mois du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre\Date;
namespace Spip\Test\Filtre\Date;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction nom_jour du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre\Date;
namespace Spip\Test\Filtre\Date;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction nom_mois du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre\Date;
namespace Spip\Test\Filtre\Date;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction normaliser_date du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre\Date;
namespace Spip\Test\Filtre\Date;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction recup_date du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre\Date;
namespace Spip\Test\Filtre\Date;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction recup_heure du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre\Date;
namespace Spip\Test\Filtre\Date;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction saison du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre\Date;
namespace Spip\Test\Filtre\Date;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction vider_date du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre\Date;
namespace Spip\Test\Filtre\Date;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction div du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre;
namespace Spip\Test\Filtre;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction echapper_tags du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre;
namespace Spip\Test\Filtre;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction extraire_multi du fichier ./inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre;
namespace Spip\Test\Filtre;
use PHPUnit\Framework\TestCase;
@ -206,50 +206,50 @@ class ExtraireBalisesTest extends TestCase
'<div class="message">Hello <div class="inside">World<div>!</div></div></div>',
'div'
],
'div_3_et_autofermante_1' =>[
'div_3_et_autofermante_1' => [
['<div class="message">Hello <div class="inside">World<div>! <div/> </div></div></div>'],
'<div class="message">Hello <div class="inside">World<div>! <div/> </div></div></div>',
'div'
],
'div_3_et_autofermante_2' =>[
'div_3_et_autofermante_2' => [
['<div class="message">Hello <div class="inside">World<div>!<div/></div><div/></div></div>'],
'<div class="message">Hello <div class="inside">World<div>!<div/></div><div/></div></div>',
'div'
],
'div_3_et_autofermante_3' =>[
'div_3_et_autofermante_3' => [
['<div class="message">Hello <div class="inside">World<div>!<div/></div><div/></div><div/></div>'],
'<div class="message">Hello <div class="inside">World<div>!<div/></div><div/></div><div/></div>',
'div'
],
'div_3_et_autofermante_4' =>[
'div_3_et_autofermante_4' => [
['<div class="message">Hello <div class="inside">World<div>!<div/></div><div/></div><div/></div>', '<div/>'],
'<div class="message">Hello <div class="inside">World<div>!<div/></div><div/></div><div/></div><div/>',
'div'
],
'div_3_et_autofermante_5' =>[
'div_3_et_autofermante_5' => [
['<div/>', '<div class="message">Hello <div class="inside">World<div>!<div/></div><div/></div><div/></div>', '<div/>'],
'<div/><div class="message">Hello <div class="inside">World<div>!<div/></div><div/></div><div/></div><div/>',
'div'
],
'div_3_et_autofermante_5_nbmax' =>[
'div_3_et_autofermante_5_nbmax' => [
['<div/>'],
'<div/><div class="message">Hello <div class="inside">World<div>!<div/></div><div/></div><div/></div><div/>',
'div',
['nb_max' => 1]
],
'div_3_et_autofermante_5_profondeur_2' =>[
'div_3_et_autofermante_5_profondeur_2' => [
['<div class="hello">Hello</div>', '<div class="world">World</div>', '<div>!</div>', '<div/>'],
'<div class="message"><div class="hello">Hello</div> <div class="world">World</div><div>!</div> <div/></div>',
'div',
['profondeur' => '2'],
],
'div_3_et_autofermante_5_profondeur_3' =>[
'div_3_et_autofermante_5_profondeur_3' => [
[],
'<div class="message"><div class="hello">Hello</div> <div class="world">World</div><div>!</div> <div/></div>',
'div',
['profondeur' => '3'],
],
'div_3_et_autofermante_5_profondeur_3_2' =>[
'div_3_et_autofermante_5_profondeur_3_2' => [
['<div>lo</div>'],
'<div class="message"><div class="hello">Hel<div>lo</div></div> <div class="world">World</div><div>!</div> <div/></div>',
'div',

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction extraire_multi du fichier ./inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre;
namespace Spip\Test\Filtre;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction filtre_balise_img_dist du fichier ./inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre;
namespace Spip\Test\Filtre;
use PHPUnit\Framework\TestCase;
@ -24,7 +24,7 @@ class FiltreBaliseImgDistTest extends TestCase
{
static $f = null;
// chercher la fonction si elle n'existe pas
if ($f === null && ! function_exists($f = 'filtre_balise_img_dist')) {
if ($f === null && !function_exists($f = 'filtre_balise_img_dist')) {
find_in_path('inc/filtres.php', '', true);
$f = chercher_filtre($f);
}
@ -35,12 +35,13 @@ class FiltreBaliseImgDistTest extends TestCase
public static function providerFiltresFiltreBaliseImgDist(): array
{
return [[
return [
[
0 => "<img src='https://www.spip.net/IMG/logo/siteon0.png' alt='' width='300' height='223' />",
1 => 'https://www.spip.net/IMG/logo/siteon0.png',
],
0 => "<img src='https://www.spip.net/IMG/logo/siteon0.png' alt='' width='300' height='223' />",
1 => 'https://www.spip.net/IMG/logo/siteon0.png',
],
[
0 => "<img src='prive/images/logo-spip.png' alt='' width='231' height='172' />",
1 => 'prive/images/logo-spip.png',

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction filtrer_entites du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre;
namespace Spip\Test\Filtre;
use PHPUnit\Framework\TestCase;

@ -6,13 +6,11 @@ declare(strict_types=1);
* Test unitaire de la fonction affdate_court du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre\Form;
namespace Spip\Test\Filtre\Form;
use PHPUnit\Framework\TestCase;
class FormHiddenArboTest extends FormHiddenCase
{
public const TYPE = 'arbo';
}

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction affdate_court du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre\Form;
namespace Spip\Test\Filtre\Form;
use PHPUnit\Framework\TestCase;
@ -43,7 +43,8 @@ class FormHiddenCase extends TestCase
}
}
protected static function getIdRubrique(): ?int {
protected static function getIdRubrique(): ?int
{
include_spip('base/abstract_sql');
$id_rubrique = sql_getfetsel(
'id_rubrique',

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction affdate_court du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre\Form;
namespace Spip\Test\Filtre\Form;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction affdate_court du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre\Form;
namespace Spip\Test\Filtre\Form;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction affdate_court du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre\Form;
namespace Spip\Test\Filtre\Form;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction affdate_court du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre\Form;
namespace Spip\Test\Filtre\Form;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction affdate_court du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre\Form;
namespace Spip\Test\Filtre\Form;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction affdate_court du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre\Form;
namespace Spip\Test\Filtre\Form;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction hauteur du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre;
namespace Spip\Test\Filtre;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction identifiant_slug du fichier ./inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre;
namespace Spip\Test\Filtre;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction inserer_attribut du fichier ./inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre;
namespace Spip\Test\Filtre;
use PHPUnit\Framework\TestCase;

@ -12,7 +12,7 @@ declare(strict_types=1);
* Pour plus de détails voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
namespace Spip\Core\Tests\Filtre;
namespace Spip\Test\Filtre;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction largeur du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre;
namespace Spip\Test\Filtre;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction lien_ou_expose du fichier ./inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre;
namespace Spip\Test\Filtre;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction filtre_text_csv_dist du fichier inc/filtres_mime.php
*/
namespace Spip\Core\Tests\Filtre\Mime;
namespace Spip\Test\Filtre\Mime;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction filtre_text_dist du fichier inc/filtres_mime.php
*/
namespace Spip\Core\Tests\Filtre\Mime;
namespace Spip\Test\Filtre\Mime;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction protocole_verifier du fichier ./inc/filtres_mini.php
*/
namespace Spip\Core\Tests\Filtre\Mini;
namespace Spip\Test\Filtre\Mini;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction modulo du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre;
namespace Spip\Test\Filtre;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction moins du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre;
namespace Spip\Test\Filtre;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction mult du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre;
namespace Spip\Test\Filtre;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction plus du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre;
namespace Spip\Test\Filtre;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction post_autobr du fichier ./inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre;
namespace Spip\Test\Filtre;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction proteger_amp du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre;
namespace Spip\Test\Filtre;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction recuperer_numero du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre;
namespace Spip\Test\Filtre;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction secondes du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre;
namespace Spip\Test\Filtre;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction sinon du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre;
namespace Spip\Test\Filtre;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction spip_htmlentities du fichier ./inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre;
namespace Spip\Test\Filtre;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction spip_htmlspecialchars du fichier ./inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre;
namespace Spip\Test\Filtre;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction supprimer_class du fichier ./inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre;
namespace Spip\Test\Filtre;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction supprimer_numero du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre;
namespace Spip\Test\Filtre;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction supprimer_tags du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre;
namespace Spip\Test\Filtre;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction taille_en_octets du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre;
namespace Spip\Test\Filtre;
use PHPUnit\Framework\TestCase;
@ -47,7 +47,7 @@ class TailleEnOctetsTest extends TestCase
public static function providerFiltresTailleEnOctetsBI(): array
{
$list = [
0 =>'',
0 => '',
-1 => '',
1 => '1 octets',
2 => '2 octets',
@ -69,7 +69,7 @@ class TailleEnOctetsTest extends TestCase
public static function providerFiltresTailleEnOctetsSI(): array
{
$list = [
0 =>'',
0 => '',
-1 => '',
1 => '1 octets',
2 => '2 octets',

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction taille_image du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre;
namespace Spip\Test\Filtre;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction texte_backend du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre;
namespace Spip\Test\Filtre;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction texte_backendq du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre;
namespace Spip\Test\Filtre;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction wrap du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre;
namespace Spip\Test\Filtre;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction var2js du fichier ./inc/json.php
*/
namespace Spip\Core\Tests\Format\Json;
namespace Spip\Test\Format\Json;
use PHPUnit\Framework\TestCase;

@ -6,30 +6,30 @@ declare(strict_types=1);
* Test unitaire de la fonction spip_xml_parse du fichier inc/xml.php
*/
namespace Spip\Core\Tests\Format\Xml;
namespace Spip\Test\Format\Xml;
use PHPUnit\Framework\TestCase;
class SpipXmlParseTest extends TestCase
{
public static function setUpBeforeClass(): void
{
find_in_path('inc/xml.php', '', true);
}
public static function setUpBeforeClass(): void
{
find_in_path('inc/xml.php', '', true);
}
/**
* @dataProvider providerXmlSpipXmlParse
*/
public function testXmlSpipXmlParse($expected, ...$args): void
{
$actual = serialize(spip_xml_parse(...$args));
$this->assertSame($expected, $actual);
}
/**
* @dataProvider providerXmlSpipXmlParse
*/
public function testXmlSpipXmlParse($expected, ...$args): void
{
$actual = serialize(spip_xml_parse(...$args));
$this->assertSame($expected, $actual);
}
public static function providerXmlSpipXmlParse(): array
{
$essais = [];
$xml1 = '<' . <<<CODE_SAMPLE
public static function providerXmlSpipXmlParse(): array
{
$essais = [];
$xml1 = '<' . <<<CODE_SAMPLE
?xml version="1.0" encoding="utf-8"?>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
<url><loc>http://localhost/_core/spip/spip.php?breve25</loc>
@ -48,10 +48,10 @@ class SpipXmlParseTest extends TestCase
</url>
</urlset>
CODE_SAMPLE;
$tree1 = <<<CODE_SAMPLE
$tree1 = <<<CODE_SAMPLE
a:1:{s:57:"urlset xmlns="http://www.google.com/schemas/sitemap/0.84"";a:1:{i:0;a:1:{s:3:"url";a:3:{i:0;a:3:{s:3:"loc";a:1:{i:0;s:44:"http://localhost/_core/spip/spip.php?breve25";}s:7:"lastmod";a:1:{i:0;s:10:"2003-12-31";}s:8:"priority";a:1:{i:0;s:3:"0.8";}}i:1;a:3:{s:3:"loc";a:1:{i:0;s:44:"http://localhost/_core/spip/spip.php?breve32";}s:7:"lastmod";a:1:{i:0;s:10:"2004-02-10";}s:8:"priority";a:1:{i:0;s:3:"0.8";}}i:2;a:3:{s:3:"loc";a:1:{i:0;s:44:"http://localhost/_core/spip/spip.php?breve64";}s:7:"lastmod";a:1:{i:0;s:10:"2005-01-31";}s:8:"priority";a:1:{i:0;s:3:"0.8";}}}}}}
CODE_SAMPLE;
$xml2 = '<' . <<<CODE_SAMPLE
$xml2 = '<' . <<<CODE_SAMPLE
?xml version="1.0" encoding="UTF-8"?>
<opml version="1.0">
<head>
@ -108,11 +108,11 @@ CODE_SAMPLE;
</body>
</opml>
CODE_SAMPLE;
$tree2 = <<<CODE_SAMPLE
$tree2 = <<<CODE_SAMPLE
a:1:{s:18:"opml version="1.0"";a:1:{i:0;a:2:{s:4:"head";a:1:{i:0;a:2:{s:5:"title";a:1:{i:0;s:9:"arbo_riec";}s:14:"expansionState";a:1:{i:0;s:93:"0,9,14,24,28,30,31,35,41,43,44,46,48,55,58,61,66,71,74,77,78,82,87,89,90,92,96,98,102,110,112";}}}s:4:"body";a:1:{i:0;a:3:{s:27:"outline text="Citoyenneté"";a:1:{i:0;a:8:{s:98:"outline text="Page d'accueil" Contenu="Articles et brèves d'actualité + Vos questions en direct"";a:1:{i:0;s:0:"";}s:152:"outline text="Le maire et les adjoints" Contenu="Nom, fonction, contact, horaires de permanence et photo de chaque élu" Fonctionnalité="Trombinoscope"";a:1:{i:0;s:0:"";}s:88:"outline text="Les conseillers municipaux" Contenu="idem" Fonctionnalité="Trombinoscope"";a:1:{i:0;s:0:"";}s:81:"outline text="Les commissions" Contenu="Présentation générale des commissions"";a:1:{i:0;a:1:{s:83:"outline text="Une fiche par commission" Contenu="Domaine de compétence et membres"";a:1:{i:0;s:0:"";}}}s:173:"outline text="Les conseils municipaux" Contenu="Présentation générale, téléchargement du dernier compte-rendu et agenda des prochains conseils" Fonctionnalité="Agenda"";a:1:{i:0;a:1:{s:136:"outline text="Comptes-rendus" Contenu="Les comptes-rendus de conseils à télécharger" Fonctionnalité="Publications et archivage auto"";a:1:{i:0;a:1:{s:82:"outline text="Un article par compte-rendu" Contenu="Texte ou doc à télécharger"";a:1:{i:0;s:0:"";}}}}}s:113:"outline text="Les réunions de quartier" Contenu="Présentation et agenda des réunions" Fonctionnalité="Agenda"";a:1:{i:0;s:0:"";}s:83:"outline text="LAtelier municipal sur lenvironnement" Contenu="Texte + photos"";a:1:{i:0;s:0:"";}s:78:"outline text="Lintercommunalité" Contenu="Texte de présentation + photos"";a:1:{i:0;a:5:{s:47:"outline text="Cocopaq" Contenu="Texte + photos"";a:1:{i:0;s:0:"";}s:71:"outline text="Syndicat de Voirie de Rosporden" Contenu="Texte + photos"";a:1:{i:0;s:0:"";}s:63:"outline text="SIVU de Riec sur Bélon" Contenu="Texte + photos"";a:1:{i:0;s:0:"";}s:45:"outline text="Sicom" Contenu="Texte + photos"";a:1:{i:0;s:0:"";}s:100:"outline text="Syndicat deau et délectricification de Riec sur Belon" Contenu="Texte + photos"";a:1:{i:0;s:0:"";}}}}}s:23:"outline text="Economie"";a:1:{i:0;a:9:{s:83:"outline text="Page d'accueil" Contenu="Actualité + lien vers les marchés publics"";a:1:{i:0;s:0:"";}s:74:"outline text="Marchés publics" Contenu="Texte de présentation + contact"";a:1:{i:0;a:2:{s:131:"outline text="Avis d'attribution" Contenu="Texte accueil et affichage des derniers avis" Fonctionnalité="Publications + archivage"";a:1:{i:0;a:1:{s:74:"outline text="Un article par avis" Contenu="Texte ou doc à télécharger"";a:1:{i:0;s:0:"";}}}s:113:"outline text="Avis de publicité" Contenu="Texte + affichage des avis en cours" Fonctionnalité="Marchés public"";a:1:{i:0;a:1:{s:495:"outline text="Un article par avis" Contenu="Texte + docs à télécharger" Fonctionnalité="Un formulaire invite le visiteur à fournir son adresse email. Un email lui est alors automatiquement expédié qui contient un lien. En cliquant sur ce lien, le visiteur revient sur la page mais cette fois il a la possibilité de télécharger les pièces jointes à l'avis. Les mails sont ainsi collectés et ceux qui ont téléchargé les pièces peuvent ainsi être contactés en cas de changement."";a:1:{i:0;s:0:"";}}}}}s:37:"outline text="Les atouts de la ville"";a:1:{i:0;a:2:{s:62:"outline text="Production ostréicole" Contenu="Texte + photos"";a:1:{i:0;s:0:"";}s:133:"outline text="Situation géographique" Contenu="Même contenu que dans La Ville ?" Fonctionnalité="modèle de duplication d'article"";a:1:{i:0;s:0:"";}}}s:53:"outline text="Simplanter" Contenu="Texte + photos"";a:1:{i:0;s:0:"";}s:47:"outline text="Le GAER" Contenu="Texte + photos"";a:1:{i:0;s:0:"";}s:136:"outline text="Les commerces" Contenu="Présentation + formulaire d'inscription à l'annuaire" Fonctionnalité="Fonctionnalité annuaire"";a:1:{i:0;s:0:"";}s:138:"outline text="Les entreprises" Contenu="Présentation + formulaire d'inscription à l'annuaire" Fonctionnalité="Fonctionnalité annuaire"";a:1:{i:0;s:0:"";}s:105:"outline text="Les ZA et ZI" Contenu="Présentation + carte des ZA-ZI" Fonctionnalité="Carte interactive"";a:1:{i:0;a:1:{s:87:"outline text="Une page par zone" Contenu="Fiche de présentation + photo + plan accès"";a:1:{i:0;s:0:"";}}}s:50:"outline text="Le marché" Contenu="Texte + photos"";a:1:{i:0;s:0:"";}}}s:40:"outline text="Tourisme version anglaise"";a:1:{i:0;s:0:"";}}}}}}
CODE_SAMPLE;
$essais['sitemap'] = [$tree1, $xml1];
$essais['opml'] = [$tree2, $xml2];
return $essais;
}
$essais['sitemap'] = [$tree1, $xml1];
$essais['opml'] = [$tree2, $xml2];
return $essais;
}
}

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction protege_champ du fichier ./balise/formulaire_.php
*/
namespace Spip\Core\Tests\Formulaire;
namespace Spip\Test\Formulaire;
use PHPUnit\Framework\TestCase;

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction info_maj_versions du fichier ./genie/mise_a_jour.php
*/
namespace Spip\Core\Tests\Genie;
namespace Spip\Test\Genie;
use PHPUnit\Framework\TestCase;

@ -12,7 +12,7 @@ declare(strict_types=1);
* Pour plus de détails voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
namespace Spip\Core\Tests;
namespace Spip\Test;
use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\Attributes\Group;
@ -48,7 +48,7 @@ class LegacyUnitHtmlTest extends TestCase
protected function legacyHtmlRun($inFname)
{
chdir(_SPIP_TEST_INC);
if (! is_file('../' . $inFname)) {
if (!is_file('../' . $inFname)) {
$this->fail(
"{$inFname} is missing" . json_encode([getcwd(), _SPIP_TEST_INC, _SPIP_TEST_CHDIR], JSON_THROW_ON_ERROR)
);

@ -12,7 +12,7 @@ declare(strict_types=1);
* Pour plus de détails voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
namespace Spip\Core\Tests;
namespace Spip\Test;
use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\Attributes\Group;
@ -52,7 +52,7 @@ class LegacyUnitPhpTest extends TestCase
protected function legacyPhpRun($inFname)
{
chdir(_SPIP_TEST_INC);
if (! is_file('../' . $inFname) || ! $realPath = realpath('../' . $inFname)) {
if (!is_file('../' . $inFname) || !$realPath = realpath('../' . $inFname)) {
$this->fail(
"{$inFname} is missing" . json_encode([getcwd(), _SPIP_TEST_INC, _SPIP_TEST_CHDIR], JSON_THROW_ON_ERROR)
);

@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction plugin_version_compatible du fichier ./inc/plugin.php
*/
namespace Spip\Core\Tests\Plugin;
namespace Spip\Test\Plugin;
use PHPUnit\Framework\TestCase;

<
@ -6,7 +6,7 @@ declare(strict_types=1);
* Test unitaire de la fonction spip_version_compare du fichier ./inc/plugin.php
*/
namespace Spip\Core\Tests\Plugin;
namespace Spip\Test\Plugin;
use PHPUnit\Framework\TestCase;