Skip to content
Extraits de code Groupes Projets
Valider 7e3c810c rédigé par JamesRezo's avatar JamesRezo :tada:
Parcourir les fichiers

Merge spip/tests dans ./tests

parent 149cc69b
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
Affichage de
avec 3740 ajouts et 0 suppression
<?php
declare(strict_types=1);
namespace Spip\Core\Tests\Api;
use PHPUnit\Framework\TestCase;
class AutoriserTest extends TestCase
{
public static function setUpBeforeClass(): void
{
include_spip('inc/autoriser');
require_once(__DIR__ . '/data/autoriser.php');
}
public function testAutoriserOkNiet(): void
{
$this->assertFalse(autoriser('niet'));
$this->assertTrue(autoriser('ok'));
}
public function testAutoriserNouvelleFonction(): void
{
$this->assertTrue(autoriser('chaparder'));
$this->assertFalse(autoriser('paschaparder'));
$this->assertTrue(autoriser('chaparder', 'velo'));
$this->assertTrue(autoriser('velo', 'chaparder'));
$this->assertTrue(autoriser('chaparder', 'carottes'));
$this->assertTrue(autoriser('carottes', 'chaparder'));
}
public function testAutoriserIdentifiant(): void
{
$this->assertFalse(autoriser('unidentifiant'));
$this->assertTrue(autoriser('unidentifiant', '', 1));
$this->assertFalse(autoriser('unidentifiant', '', 2));
}
}
<?php
declare(strict_types=1);
function autoriser_chaparder(string $faire, string $type, $id, array $qui, array $opt): bool
{
return true;
}
function autoriser_paschaparder(string $faire, string $type, $id, array $qui, array $opt): bool
{
return false;
}
function autoriser_chaparder_velo(string $faire, string $type, $id, array $qui, array $opt): bool
{
return true;
}
function autoriser_chaparder_carottes_dist(string $faire, string $type, $id, array $qui, array $opt): bool
{
return false;
}
function autoriser_chaparder_carottes(string $faire, string $type, $id, array $qui, array $opt): bool
{
return true;
}
function autoriser_unidentifiant(string $faire, string $type, $id, array $qui, array $opt): bool
{
return $id === 1;
}
<?php
declare(strict_types=1);
/***************************************************************************\
* SPIP, Système de publication pour l'internet *
* *
* Copyright © avec tendresse depuis 2001 *
* Arnaud Martin, Antoine Pitrou, Philippe Rivière, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribué sous licence GNU/GPL. *
* Pour plus de détails voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
namespace Spip\Core\Tests\Config;
use PHPUnit\Framework\TestCase;
class DepotMetaPackTest extends TestCase
{
protected static $savedMeta;
// les bases de test
protected static $assoc;
protected static $serassoc;
public static function setUpBeforeClass(): void
{
self::$savedMeta = $GLOBALS['meta'];
self::$assoc = [
'one' => 'element 1',
'two' => 'element 2',
'three' => [
'un' => 1,
'deux' => 2,
'troisc' => '3',
],
];
self::$serassoc = serialize(self::$assoc);
}
public static function tearDownAfterClass(): void
{
$GLOBALS['meta'] = self::$savedMeta;
}
/**
* lire_config meta
*/
public function testLireConfig1()
{
include_spip('inc/config');
$meta = $GLOBALS['meta'];
// on flingue meta a juste nos donnees
$GLOBALS['meta'] = [
'zero' => serialize(0),
'zeroc' => serialize('0'),
'chaine' => serialize('une chaine'),
'assoc' => serialize(self::$assoc),
'serie' => serialize(self::$serassoc),
];
$essais = [];
$essais[] = [$GLOBALS['meta'], 'metapack::'];
$essais[] = [serialize($GLOBALS['meta']), 'metapack::', '', false];
// racine
$essais[] = [0, 'metapack::zero'];
$essais[] = ['0', 'metapack::zeroc'];
$essais[] = ['une chaine', 'metapack::chaine'];
$essais[] = [self::$assoc, 'metapack::assoc'];
$essais[] = [self::$serassoc, 'metapack::serie'];
$essais[] = [null, 'metapack::rien'];
$essais[] = ['defaut', 'metapack::rien', 'defaut'];
// chemins
$essais[] = [self::$assoc, 'metapack::assoc/'];
$essais[] = ['element 1', 'metapack::assoc/one'];
$essais[] = [[
'un' => 1,
'deux' => 2,
'troisc' => '3',
], 'metapack::assoc/three'];
$essais[] = [1, 'metapack::assoc/three/un'];
$essais[] = ['3', 'metapack::assoc/three/troisc'];
// racourcis
$essais[] = [self::$assoc, 'assoc/'];
$essais[] = ['element 1', 'assoc/one'];
foreach ($essais as $k => $essai) {
$expected = array_shift($essai);
$this->assertEquals($expected, lire_config(...$essai), "Echec {$k} : lecture " . reset($essai));
}
$GLOBALS['meta'] = $meta;
}
/**
* ecrire_config meta
*
* @depends testLireConfig1
*/
public function testEcrireConfig()
{
/*
* Notes sur l'ecriture :
* - dans le tableau $GLOBALS['meta'], les valeurs transmises
* conservent effectivement leur type
* - si l'on applique un lire_metas() (reecriture du tableau $GLOBALS['meta']
* depuis les informations de la table spip_meta, les types de valeurs
* sont tous des types string (puisque la colonne 'valeur' de spip_meta est
* varchar (ou text).
* - 0 devient alors '0'
* - array(xxx) devient 'Array'
*
* Cela ne se produit pas avec le depot 'metapack' qui serialize systematiquement
* tout ce qu'on lui donne (et peut donc restituer le type de donnee correctement).
*
*/
$essais = [];
$essais[] = [true, 'metapack::test_cfg_zero', 0];
$essais[] = [true, 'metapack::test_cfg_zeroc', '0'];
$essais[] = [true, 'metapack::test_cfg_chaine', 'une chaine'];
$essais[] = [true, 'metapack::test_cfg_assoc', self::$assoc];
$essais[] = [true, 'metapack::test_cfg_serie', self::$serassoc];
// chemins
$essais[] = [true, 'metapack::test_cfg_chemin/casier', self::$assoc];
$essais[] = [true, 'metapack::test_cfg_chemin/casier/truc', 'trac'];
foreach ($essais as $k => $essai) {
$expected = array_shift($essai);
$this->assertEquals($expected, ecrire_config(...$essai), "Echec {$k} : ecriture " . reset($essai));
}
}
/**
* re lire_config meta
*
* @depends testEcrireConfig
*/
public function testLireConfig2()
{
$essais = [];
$essais[] = [0, 'metapack::test_cfg_zero'];
$essais[] = ['0', 'metapack::test_cfg_zeroc'];
$essais[] = ['une chaine', 'metapack::test_cfg_chaine'];
$essais[] = [self::$assoc, 'metapack::test_cfg_assoc'];
$essais[] = [self::$serassoc, 'metapack::test_cfg_serie'];
// chemins
$essais[] = [self::$assoc + [
'truc' => 'trac',
], 'metapack::test_cfg_chemin/casier'];
$essais[] = ['trac', 'metapack::test_cfg_chemin/casier/truc'];
$essais[] = [1, 'metapack::test_cfg_chemin/casier/three/un'];
// chemin pas la
$essais[] = [null, 'metapack::test_cfg_chemin/casier/three/huit'];
foreach ($essais as $k => $essai) {
$expected = array_shift($essai);
$this->assertEquals($expected, lire_config(...$essai), "Echec {$k} : lecture " . reset($essai));
}
}
/**
* effacer_config meta
*
* @depends testLireConfig2
*/
public function testEffacerConfig()
{
$essais = [];
$essais[] = [true, 'metapack::test_cfg_zero'];
$essais[] = [true, 'metapack::test_cfg_zeroc'];
$essais[] = [true, 'metapack::test_cfg_chaine'];
$essais[] = [true, 'metapack::test_cfg_assoc'];
$essais[] = [true, 'metapack::test_cfg_serie'];
// chemins
// on enleve finement tout test_cfg_chemin : il ne doit rien rester
$essais[] = [true, 'metapack::test_cfg_chemin/casier/three/huit']; // n'existe pas
$essais[] = [true, 'metapack::test_cfg_chemin/casier/three/troisc'];
$essais[] = [true, 'metapack::test_cfg_chemin/casier/three/deux'];
$essais[] = [true, 'metapack::test_cfg_chemin/casier/three/un']; // supprime three
$essais[] = [true, 'metapack::test_cfg_chemin/casier/one'];
$essais[] = [true, 'metapack::test_cfg_chemin/casier/two'];
$essais[] = [true, 'metapack::test_cfg_chemin/casier/truc']; // supprimer chemin/casier
// on essaye d'effacer une meta qui n'existe pas
$essais[] = [true, 'metapack::test_cfg_dummy/casier/truc'];
foreach ($essais as $k => $essai) {
$expected = array_shift($essai);
$this->assertEquals($expected, effacer_config(...$essai), "Echec {$k} : effacer " . reset($essai));
}
}
/**
* re lire_config meta
*
* @depends testEffacerConfig
*/
public function testLireConfig3()
{
$essais = [];
$essais[] = [null, 'metapack::test_cfg_zero'];
$essais[] = [null, 'metapack::test_cfg_zeroc'];
$essais[] = [null, 'metapack::test_cfg_chaine'];
$essais[] = [null, 'metapack::test_cfg_assoc'];
$essais[] = [null, 'metapack::test_cfg_serie'];
$essais[] = [null, 'metapack::test_cfg_chemin'];
$essais[] = [null, 'metapack::test_cfg_dummy'];
foreach ($essais as $k => $essai) {
$expected = array_shift($essai);
$this->assertEquals($expected, lire_config(...$essai), "Echec {$k} : lecture " . reset($essai));
}
}
}
<?php
declare(strict_types=1);
/***************************************************************************\
* SPIP, Système de publication pour l'internet *
* *
* Copyright © avec tendresse depuis 2001 *
* Arnaud Martin, Antoine Pitrou, Philippe Rivière, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribué sous licence GNU/GPL. *
* Pour plus de détails voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
namespace Spip\Core\Tests\Config;
use PHPUnit\Framework\TestCase;
class DepotMetaPersoTest extends TestCase
{
protected static $savedMeta;
// les bases de test
protected static $assoc;
protected static $serassoc;
public static function setUpBeforeClass(): void
{
self::$savedMeta = $GLOBALS['meta'];
self::$assoc = [
'one' => 'element 1',
'two' => 'element 2',
];
self::$serassoc = serialize(self::$assoc);
}
public static function tearDownAfterClass(): void
{
$GLOBALS['meta'] = self::$savedMeta;
unset($GLOBALS['toto']);
}
/**
* lire_config meta
*/
public function testLireConfig1()
{
include_spip('inc/config');
$meta = $GLOBALS['meta'];
$trouver_table = charger_fonction('trouver_table', 'base');
$this->assertArrayNotHasKey('toto', $GLOBALS, 'Une table spip_toto existe deja !');
$this->assertEmpty($trouver_table('spip_toto'), 'Une table spip_toto existe deja !');
// on flingue meta a juste nos donnees
$GLOBALS['meta'] = [
'dummy' => '',
];
$GLOBALS['toto'] = [
'zero' => 0,
'zeroc' => '0',
'chaine' => 'une chaine',
'assoc' => self::$assoc,
'serie' => self::$serassoc,
];
$essais = [];
$essais[] = [0, '/toto/zero'];
$essais[] = ['0', '/toto/zeroc'];
$essais[] = ['une chaine', '/toto/chaine'];
$essais[] = [self::$assoc, '/toto/assoc'];
$essais[] = [self::$assoc, '/toto/serie'];
$essais[] = [self::$serassoc, '/toto/serie', '', 0];
$essais[] = [null, '/toto/rien'];
$essais[] = ['defaut', '/toto/rien', 'defaut'];
$essais[] = [null, '/meta/chaine'];
$essais[] = [null, 'chaine'];
foreach ($essais as $k => $essai) {
$expected = array_shift($essai);
$this->assertEquals($expected, lire_config(...$essai), "Echec {$k} : lecture " . reset($essai));
}
$GLOBALS['meta'] = $meta;
unset($GLOBALS['toto']);
}
/**
* ecrire_config meta
*
* @depends testLireConfig1
*/
public function testEcrireConfig()
{
/*
* Notes sur l'ecriture :
* - dans le tableau $GLOBALS['meta'], les valeurs transmises
* conservent effectivement leur type
* - si l'on applique un lire_metas() (reecriture du tableau $GLOBALS['meta']
* depuis les informations de la table spip_meta, les types de valeurs
* sont tous des types string (puisque la colonne 'valeur' de spip_meta est
* varchar (ou text).
* - 0 devient alors '0'
* - array(xxx) devient 'Array'
*
* Cela ne se produit pas avec le depot 'metapack' qui serialize systematiquement
* tout ce qu'on lui donne (et peut donc restituer le type de donnee correctement).
*
*/
$essais = [];
$essais[] = [true, '/toto/test_cfg_zero', 0];
$essais[] = [true, '/toto/test_cfg_zeroc', '0'];
$essais[] = [true, '/toto/test_cfg_chaine', 'une chaine'];
$essais[] = [true, '/toto/test_cfg_assoc', self::$assoc];
$essais[] = [true, '/toto/test_cfg_serie', self::$serassoc];
foreach ($essais as $k => $essai) {
$expected = array_shift($essai);
$this->assertEquals($expected, ecrire_config(...$essai), "Echec {$k} : ecriture " . reset($essai));
}
$trouver_table = charger_fonction('trouver_table', 'base');
$this->assertNotEmpty($GLOBALS['toto'], "La table spip_toto n'a pas ete cree !");
$this->assertNotEmpty($trouver_table('spip_toto'), "La table spip_toto n'a pas ete cree !");
}
/**
* re lire_config meta
*
* @depends testEcrireConfig
*/
public function testLireConfig2()
{
$essais = [];
$essais[] = [0, '/toto/test_cfg_zero'];
$essais[] = ['0', '/toto/test_cfg_zeroc'];
$essais[] = ['une chaine', '/toto/test_cfg_chaine'];
$essais[] = [self::$assoc, '/toto/test_cfg_assoc'];
$essais[] = [self::$serassoc, '/toto/test_cfg_serie', '', 0];
foreach ($essais as $k => $essai) {
$expected = array_shift($essai);
$this->assertEquals($expected, lire_config(...$essai), "Echec {$k} : lecture " . reset($essai));
}
}
/**
* effacer_config meta
*
* @depends testLireConfig2
*/
public function testEffacerConfig()
{
$essais = [];
$essais[] = [true, '/toto/test_cfg_zero'];
$essais[] = [true, '/toto/test_cfg_zeroc'];
$essais[] = [true, '/toto/test_cfg_chaine'];
$essais[] = [true, '/toto/test_cfg_assoc'];
$essais[] = [true, '/toto/test_cfg_serie'];
foreach ($essais as $k => $essai) {
$expected = array_shift($essai);
$this->assertEquals($expected, effacer_config(...$essai), "Echec {$k} : effacer " . reset($essai));
}
}
/**
* re lire_config meta
*
* @depends testEffacerConfig
*/
public function testLireConfig3()
{
$essais = [];
$essais[] = [null, '/toto/test_cfg_zero'];
$essais[] = [null, '/toto/test_cfg_zeroc'];
$essais[] = [null, '/toto/test_cfg_chaine'];
$essais[] = [null, '/toto/test_cfg_assoc'];
$essais[] = [null, '/toto/test_cfg_serie'];
foreach ($essais as $k => $essai) {
$expected = array_shift($essai);
$this->assertEquals($expected, lire_config(...$essai), "Echec {$k} : lecture " . reset($essai));
}
$trouver_table = charger_fonction('trouver_table', 'base');
$this->assertArrayNotHasKey(
'toto',
$GLOBALS,
"La table spip_toto n'a pas ete supprimee par le dernier effacement de config !"
);
$this->assertEmpty(
$trouver_table('spip_toto'),
"La table spip_toto n'a pas ete supprimee par le dernier effacement de config !"
);
}
}
<?php
declare(strict_types=1);
/***************************************************************************\
* SPIP, Système de publication pour l'internet *
* *
* Copyright © avec tendresse depuis 2001 *
* Arnaud Martin, Antoine Pitrou, Philippe Rivière, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribué sous licence GNU/GPL. *
* Pour plus de détails voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
namespace Spip\Core\Tests\Config;
use PHPUnit\Framework\TestCase;
class DepotMetaTest extends TestCase
{
protected static $savedMeta;
// les bases de test
protected static $assoc;
protected static $serassoc;
public static function setUpBeforeClass(): void
{
self::$savedMeta = $GLOBALS['meta'];
self::$assoc = [
'one' => 'element 1',
'two' => 'element 2',
];
self::$serassoc = serialize(self::$assoc);
include_spip('inc/config');
}
public static function tearDownAfterClass(): void
{
$GLOBALS['meta'] = self::$savedMeta;
}
/**
* expliquer_config
*/
public function testExpliquerConfig()
{
$essais = [];
$essais[] = [['meta', null, []], ''];
$essais[] = [['meta', '0', []], '0'];
$essais[] = [['meta', 'casier', []], 'casier'];
$essais[] = [['meta', 'casier', ['sous']], 'casier/sous'];
$essais[] = [['meta', 'casier', ['sous', 'plus', 'bas', 'encore']], 'casier/sous/plus/bas/encore'];
$essais[] = [['meta', null, []], '/meta'];
$essais[] = [['meta', 'casier', []], '/meta/casier'];
$essais[] = [['meta', 'casier', ['sous']], '/meta/casier/sous'];
$essais[] = [['meta', 'casier', ['sous', 'plus', 'bas', 'encore']], '/meta/casier/sous/plus/bas/encore'];
$essais[] = [['toto', null, []], '/toto'];
$essais[] = [['toto', 'casier', []], '/toto/casier'];
$essais[] = [['toto', 'casier', ['sous']], '/toto/casier/sous'];
$essais[] = [['toto', 'casier', ['sous', 'plus', 'bas', 'encore']], '/toto/casier/sous/plus/bas/encore'];
foreach ($essais as $k => $essai) {
$expected = array_shift($essai);
$this->assertEquals($expected, expliquer_config(...$essai), "Echec {$k} : lecture " . end($essai));
}
}
/**
* lire_config meta
*
* @depends testExpliquerConfig
*/
public function testLireConfig1()
{
$meta = $GLOBALS['meta'];
// on flingue meta a juste nos donnees
$GLOBALS['meta'] = [
'zero' => 0,
'zeroc' => '0',
'chaine' => 'une chaine',
'assoc' => self::$assoc,
'serie' => self::$serassoc,
];
$essais = [];
$essais[] = [$GLOBALS['meta'], ''];
$essais[] = [0, 'zero'];
$essais[] = ['0', 'zeroc'];
$essais[] = ['une chaine', 'chaine'];
$essais[] = [self::$assoc, 'assoc'];
$essais[] = [self::$assoc, 'serie'];
$essais[] = [self::$serassoc, 'serie', '', 0];
$essais[] = [null, 'rien'];
$essais[] = ['defaut', 'rien', 'defaut'];
foreach ($essais as $k => $essai) {
$expected = array_shift($essai);
$this->assertEquals($expected, lire_config(...$essai), "Echec {$k} : lecture " . reset($essai));
}
$GLOBALS['meta'] = $meta;
}
/**
* ecrire_config meta
*
* @depends testLireConfig1
*/
public function testEcrireConfig()
{
/*
* Notes sur l'ecriture :
* - dans le tableau $GLOBALS['meta'], les valeurs transmises
* conservent effectivement leur type
* - si l'on applique un lire_metas() (reecriture du tableau $GLOBALS['meta']
* depuis les informations de la table spip_meta, les types de valeurs
* sont tous des types string (puisque la colonne 'valeur' de spip_meta est
* varchar (ou text).
* - 0 devient alors '0'
* - array(xxx) devient 'Array'
*
* Cela ne se produit pas avec le depot 'metapack' qui serialize systematiquement
* tout ce qu'on lui donne (et peut donc restituer le type de donnee correctement).
*
*/
$essais = [];
$essais[] = [true, 'test_cfg_zero', 0];
$essais[] = [true, 'test_cfg_zeroc', '0'];
$essais[] = [true, 'test_cfg_chaine', 'une chaine'];
$essais[] = [true, 'test_cfg_assoc', self::$assoc];
$essais[] = [true, 'test_cfg_serie', self::$serassoc];
foreach ($essais as $k => $essai) {
$expected = array_shift($essai);
$this->assertEquals($expected, ecrire_config(...$essai), "Echec {$k} : ecriture " . reset($essai));
}
}
/**
* re lire_config meta
*
* @depends testEcrireConfig
*/
public function testLireConfig2()
{
$essais = [];
$essais[] = [0, 'test_cfg_zero'];
$essais[] = ['0', 'test_cfg_zeroc'];
$essais[] = ['une chaine', 'test_cfg_chaine'];
$essais[] = [self::$assoc, 'test_cfg_assoc'];
$essais[] = [self::$serassoc, 'test_cfg_serie', '', 0];
foreach ($essais as $k => $essai) {
$expected = array_shift($essai);
$this->assertEquals($expected, lire_config(...$essai), "Echec {$k} : lecture " . reset($essai));
}
}
/**
* effacer_config meta
*
* @depends testLireConfig2
*/
public function testEffacerConfig()
{
$essais = [];
$essais[] = [true, 'test_cfg_zero'];
$essais[] = [true, 'test_cfg_zeroc'];
$essais[] = [true, 'test_cfg_chaine'];
$essais[] = [true, 'test_cfg_assoc'];
$essais[] = [true, 'test_cfg_serie'];
$essais[] = [true, 'test_cfg_dummy'];
foreach ($essais as $k => $essai) {
$expected = array_shift($essai);
$this->assertEquals($expected, effacer_config(...$essai), "Echec {$k} : effacer " . reset($essai));
}
}
/**
* re lire_config meta
*
* @depends testEffacerConfig
*/
public function testLireConfig3()
{
$essais = [];
$essais[] = [null, 'test_cfg_zero'];
$essais[] = [null, 'test_cfg_zeroc'];
$essais[] = [null, 'test_cfg_chaine'];
$essais[] = [null, 'test_cfg_assoc'];
$essais[] = [null, 'test_cfg_serie'];
$essais[] = [null, 'test_cfg_dummy'];
foreach ($essais as $k => $essai) {
$expected = array_shift($essai);
$this->assertEquals($expected, lire_config(...$essai), "Echec {$k} : lecture " . reset($essai));
}
}
}
<?php
declare(strict_types=1);
/**
* Test unitaire de la fonction need_proxy du fichier ./inc/distant.php
*/
namespace Spip\Core\Tests\Distant;
use PHPUnit\Framework\TestCase;
class NeedProxyTest extends TestCase
{
public static function setUpBeforeClass(): void
{
find_in_path('./inc/distant.php', '', true);
}
/**
* @dataProvider providerDistantNeedProxy
*/
public function testDistantNeedProxy($expected, ...$args): void
{
$actual = need_proxy(...$args);
$this->assertSame($expected, $actual);
}
public static function providerDistantNeedProxy(): array
{
return [
0 => [
0 => 'http://monproxy.example.org',
1 => 'sous.domaine.spip.net',
2 => 'http://monproxy.example.org',
3 => 'spip.net',
],
1 => [
0 => '',
1 => 'sous.domaine.spip.net',
2 => 'http://monproxy.example.org',
3 => '.spip.net',
],
2 => [
0 => '',
1 => 'sous.domaine.spip.net',
2 => 'http://monproxy.example.org',
3 => '.spip.net
.net',
],
3 => [
0 => '',
1 => 'sous.domaine.spip.net',
2 => 'http://monproxy.example.org',
3 => 'sous.domaine.spip.net',
],
4 => [
0 => 'http://monproxy.example.org',
1 => 'sous.domaine.spip.net',
2 => 'http://monproxy.example.org',
3 => '.sous.domaine.spip.net',
],
];
}
}
<?php
declare(strict_types=1);
/**
* Test unitaire de la fonction url_to_ascii du fichier ./inc/distant.php
*/
namespace Spip\Core\Tests\Distant;
use PHPUnit\Framework\TestCase;
class UrlToAsciiTest extends TestCase
{
public static function setUpBeforeClass(): void
{
find_in_path('./inc/distant.php', '', true);
}
/**
* @dataProvider providerDistantUrlToAscii
*/
public function testDistantUrlToAscii($expected, ...$args): void
{
$actual = url_to_ascii(...$args);
$this->assertSame($expected, $actual);
}
public static function providerDistantUrlToAscii(): array
{
return [
0 => [
0 => 'http://www.spip.net/',
1 => 'http://www.spip.net/',
],
1 => [
0 => 'http://www.spip.net/fr_article879.html#BOUCLE-ARTICLES-',
1 => 'http://www.spip.net/fr_article879.html#BOUCLE-ARTICLES-',
],
2 => [
0 => 'http://user:pass@www.spip.net:80/fr_article879.html#BOUCLE-ARTICLES-',
1 => 'http://user:pass@www.spip.net:80/fr_article879.html#BOUCLE-ARTICLES-',
],
3 => [
0 => 'http://www.xn--spap-7pa.net/',
1 => 'http://www.spaïp.net/',
],
4 => [
0 => 'http://www.xn--spap-7pa.net/fr_article879.html#BOUCLE-ARTICLES-',
1 => 'http://www.spaïp.net/fr_article879.html#BOUCLE-ARTICLES-',
],
5 => [
0 => 'http://user:pass@www.xn--spap-7pa.net:80/fr_article879.html#BOUCLE-ARTICLES-',
1 => 'http://user:pass@www.spaïp.net:80/fr_article879.html#BOUCLE-ARTICLES-',
],
];
}
}
<?php
declare(strict_types=1);
/**
* Test unitaire de la fonction valider_url_distante du fichier ./inc/distant.php
*/
namespace Spip\Core\Tests\Distant;
use PHPUnit\Framework\TestCase;
class ValiderUrlDistanteTest extends TestCase
{
public static function setUpBeforeClass(): void
{
find_in_path('./inc/distant.php', '', true);
}
/**
* @dataProvider providerDistantValiderUrlDistante
*/
public function testDistantValiderUrlDistante($expected, ...$args): void
{
$actual = valider_url_distante(...$args);
$this->assertSame($expected, $actual);
}
public static function providerDistantValiderUrlDistante(): array
{
return [
0 => [
0 => 'http://www.spip.net',
1 => 'http://www.spip.net',
],
1 => [
0 => 'https://www.spip.net',
1 => 'https://www.spip.net',
],
2 => [
0 => false,
1 => 'ftp://www.spip.net',
],
3 => [
0 => false,
1 => 'http://user@www.spip.net',
],
4 => [
0 => false,
1 => 'https://user:password@www.spip.net',
],
5 => [
0 => false,
1 => 'http://127.0.0.1/munin/graph.png',
],
6 => [
0 => false,
1 => 'http://localhost:8765',
],
7 => [
0 => 'http://localhost:8765/test.png',
1 => 'http://localhost:8765/test.png',
2 => [
0 => 'localhost:8765',
],
],
8 => [
0 => false,
1 => 'http://localhost:9100/test.png',
],
9 => [
0 => false,
1 => 'http://user@password:localhost:8765/test.png',
2 => [
0 => 'localhost:8765',
],
],
10 => [
0 => false,
1 => 'http://user@password:localhost:8765/test.png',
2 => [
0 => 'http://user@password:localhost:8765',
],
],
];
}
}
<?php
declare(strict_types=1);
/**
* Test unitaire de la fonction ajouter_class du fichier ./inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre;
use PHPUnit\Framework\TestCase;
class AjouterClassTest extends TestCase
{
public static function setUpBeforeClass(): void
{
find_in_path('./inc/filtres.php', '', true);
}
/**
* @dataProvider providerFiltresAjouterClass
*/
public function testFiltresAjouterClass($expected, ...$args): void
{
$actual = ajouter_class(...$args);
$this->assertSame($expected, $actual);
}
public static function providerFiltresAjouterClass(): array
{
return [
0 => [
0 => "<span class='maclasse maclasse-prefixe suffixe-maclasse maclasse--bem autreclass'>toto</span>",
1 => '<span class="maclasse maclasse-prefixe suffixe-maclasse maclasse--bem">toto</span>',
2 => 'autreclass',
],
1 => [
0 => '<span class="maclasse maclasse-prefixe suffixe-maclasse maclasse--bem">toto</span>',
1 => '<span class="maclasse maclasse-prefixe suffixe-maclasse maclasse--bem">toto</span>',
2 => 'maclasse',
],
2 => [
0 => "<span class='maclasse-prefixe suffixe-maclasse maclasse--bem maclasse'>toto</span>",
1 => '<span class="maclasse-prefixe suffixe-maclasse maclasse--bem">toto</span>',
2 => 'maclasse',
],
3 => [
0 => "<span class='maclasse maclasse-prefixe suffixe-maclasse maclasse--bem maclasse1 maclasse2'>toto</span>",
1 => '<span class="maclasse maclasse-prefixe suffixe-maclasse maclasse--bem">toto</span>',
2 => 'maclasse1 maclasse maclasse2',
],
];
}
}
<?php
declare(strict_types=1);
/**
* Test unitaire de la fonction antispam du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre;
use PHPUnit\Framework\TestCase;
class AntispamTest extends TestCase
{
public static function setUpBeforeClass(): void
{
find_in_path('inc/filtres.php', '', true);
}
public function testFiltresAntispam(): void
{
$actual = antispam('email@domain.tld');
$this->assertStringNotContainsString('@', $actual);
}
}
<?php
declare(strict_types=1);
/**
* Test unitaire de la fonction appliquer_filtre du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre;
use PHPUnit\Framework\TestCase;
class AppliquerFiltreTest extends TestCase
{
public static function setUpBeforeClass(): void
{
find_in_path('inc/filtres.php', '', true);
}
/**
* @dataProvider providerFiltresAppliquerFiltre
*/
public function testFiltresAppliquerFiltre($expected, ...$args): void
{
$actual = appliquer_filtre(...$args);
$this->assertSame($expected, $actual);
}
public static function providerFiltresAppliquerFiltre(): array
{
return [
0 => [
0 => '&lt;&gt;&quot;&#039;&amp;',
1 => '<>"\'&',
2 => 'entites_html',
],
1 => [
0 => '&amp;',
1 => '&amp;',
2 => 'entites_html',
],
];
}
}
<?php
declare(strict_types=1);
/**
* Test unitaire de la fonction chercher_filtre du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre;
use PHPUnit\Framework\TestCase;
class ChercherFiltreTest extends TestCase
{
public static function setUpBeforeClass(): void
{
find_in_path('inc/filtres.php', '', true);
}
/**
* @dataProvider providerFiltresChercherFiltre
*/
public function testFiltresChercherFiltre($expected, ...$args): void
{
$actual = chercher_filtre(...$args);
$this->assertSame($expected, $actual);
}
public static function providerFiltresChercherFiltre(): array
{
return [
0 => [
0 => 'filtre_identite_dist',
1 => 'identite',
],
1 => [
0 => 'identite',
1 => 'zzhkezhkf',
2 => 'identite',
],
3 => [
0 => 'identite',
1 => null,
2 => 'identite',
],
4 => [
0 => 'filtre_text_dist',
1 => 'text',
],
5 => [
0 => 'filtre_implode_dist',
1 => 'implode',
],
6 => [
0 => 'filtre_image_dist',
1 => 'image/jpeg',
],
7 => [
0 => 'filtre_image_dist',
1 => 'image/png',
],
8 => [
0 => 'filtre_image_dist',
1 => 'image/gif',
],
9 => [
0 => 'filtre_image_dist',
1 => 'image/x-ms-bmp',
],
10 => [
0 => 'filtre_image_dist',
1 => 'image/tiff',
],
11 => [
0 => 'filtre_audio_dist',
1 => 'audio/x-aiff',
],
12 => [
0 => 'filtre_video_dist',
1 => 'video/x-ms-asf',
],
13 => [
0 => 'filtre_video_dist',
1 => 'video/x-msvideo',
],
14 => [
0 => 'filtre_application_dist',
1 => 'application/annodex',
],
15 => [
0 => 'filtre_audio_dist',
1 => 'audio/annodex',
],
16 => [
0 => 'filtre_video_dist',
1 => 'video/annodex',
],
17 => [
0 => 'filtre_video_dist',
1 => 'video/x-dv',
],
18 => [
0 => 'filtre_audio_dist',
1 => 'audio/x-flac',
],
19 => [
0 => 'filtre_video_dist',
1 => 'video/x-flv',
],
20 => [
0 => 'filtre_audio_dist',
1 => 'audio/mp4a-latm',
],
23 => [
0 => 'filtre_video_dist',
1 => 'video/vnd.mpegurl',
],
24 => [
0 => 'filtre_video_dist',
1 => 'video/x-m4v',
],
25 => [
0 => 'filtre_audio_dist',
1 => 'audio/midi',
],
26 => [
0 => 'filtre_audio_dist',
1 => 'audio/mka',
],
27 => [
0 => 'filtre_video_dist',
1 => 'video/mkv',
],
28 => [
0 => 'filtre_video_dist',
1 => 'video/x-mng',
],
29 => [
0 => 'filtre_video_dist',
1 => 'video/quicktime',
],
30 => [
0 => 'filtre_audio_dist',
1 => 'audio/mpeg',
],
31 => [
0 => 'filtre_application_dist',
1 => 'application/mp4',
],
32 => [
0 => 'filtre_video_dist',
1 => 'video/mpeg',
],
33 => [
0 => 'filtre_audio_dist',
1 => 'audio/ogg',
],
34 => [
0 => 'filtre_audio_dist',
1 => 'audio/ogg ',
],
35 => [
0 => 'filtre_video_dist',
1 => 'video/ogg ',
],
36 => [
0 => 'filtre_application_dist',
1 => 'application/ogg ',
],
38 => [
0 => 'filtre_audio_x_pn_realaudio',
1 => 'audio/x-pn-realaudio',
],
42 => [
0 => 'filtre_image_dist',
1 => 'image/svg+xml',
],
43 => [
0 => 'filtre_application_dist',
1 => 'application/x-shockwave-flash',
],
44 => [
0 => 'filtre_audio_dist',
1 => 'audio/x-wav',
],
45 => [
0 => 'filtre_video_dist',
1 => 'video/x-ms-wmv',
],
46 => [
0 => 'filtre_video_dist',
1 => 'video/3gpp',
],
47 => [
0 => 'filtre_application_dist',
1 => 'application/illustrator',
],
48 => [
0 => 'filtre_application_dist',
1 => 'application/abiword',
],
49 => [
0 => 'filtre_application_dist',
1 => 'application/octet-stream',
],
50 => [
0 => 'filtre_application_dist',
1 => 'application/x-blender',
],
51 => [
0 => 'filtre_application_dist',
1 => 'application/x-bzip2',
],
52 => [
0 => 'filtre_text_dist',
1 => 'text/x-csrc',
],
53 => [
0 => 'filtre_text_dist',
1 => 'text/css',
],
54 => [
0 => 'filtre_text_csv_dist',
1 => 'text/csv',
],
55 => [
0 => 'filtre_application_dist',
1 => 'application/x-debian-package',
],
56 => [
0 => 'filtre_application_dist',
1 => 'application/msword',
],
57 => [
0 => 'filtre_image_dist',
1 => 'image/vnd.djvu',
],
58 => [
0 => 'filtre_application_dist',
1 => 'application/x-dvi',
],
59 => [
0 => 'filtre_application_dist',
1 => 'application/postscript',
],
60 => [
0 => 'filtre_application_dist',
1 => 'application/x-gzip',
],
61 => [
0 => 'filtre_text_dist',
1 => 'text/x-chdr',
],
62 => [
0 => 'filtre_text_html_dist',
1 => 'text/html',
],
63 => [
0 => 'filtre_application_dist',
1 => 'application/vnd.google-earth.kml+xml',
],
64 => [
0 => 'filtre_application_dist',
1 => 'application/vnd.google-earth.kmz',
],
65 => [
0 => 'filtre_text_dist',
1 => 'text/x-pascal',
],
66 => [
0 => 'filtre_application_dist',
1 => 'application/pdf',
],
67 => [
0 => 'filtre_application_dist',
1 => 'application/x-chess-pgn',
],
68 => [
0 => 'filtre_application_dist',
1 => 'application/vnd.ms-powerpoint',
],
70 => [
0 => 'filtre_image_dist',
1 => 'image/x-photoshop',
],
71 => [
0 => 'filtre_application_dist',
1 => 'application/x-redhat-package-manager',
],
72 => [
0 => 'filtre_application_dist',
1 => 'application/rtf',
],
73 => [
0 => 'filtre_application_dist',
1 => 'application/vnd.stardivision.impress',
],
74 => [
0 => 'filtre_application_dist',
1 => 'application/vnd.stardivision.writer',
],
75 => [
0 => 'filtre_application_dist',
1 => 'application/x-stuffit',
],
76 => [
0 => 'filtre_application_dist',
1 => 'application/vnd.sun.xml.calc',
],
77 => [
0 => 'filtre_application_dist',
1 => 'application/vnd.sun.xml.impress',
],
78 => [
0 => 'filtre_application_dist',
1 => 'application/vnd.sun.xml.writer',
],
79 => [
0 => 'filtre_text_dist',
1 => 'text/x-tex',
],
80 => [
0 => 'filtre_application_dist',
1 => 'application/x-gtar',
],
81 => [
0 => 'filtre_application_dist',
1 => 'application/x-bittorrent',
],
82 => [
0 => 'filtre_application_dist',
1 => 'application/x-font-ttf',
],
83 => [
0 => 'filtre_text_dist',
1 => 'text/plain',
],
84 => [
0 => 'filtre_application_dist',
1 => 'application/x-xcf',
],
85 => [
0 => 'filtre_application_dist',
1 => 'application/vnd.ms-excel',
],
86 => [
0 => 'filtre_application_dist',
1 => 'application/xspf+xml',
],
87 => [
0 => 'filtre_application_dist',
1 => 'application/xml',
],
88 => [
0 => 'filtre_application_dist',
1 => 'application/zip',
],
89 => [
0 => 'filtre_application_dist',
1 => 'application/vnd.oasis.opendocument.text',
],
90 => [
0 => 'filtre_application_dist',
1 => 'application/vnd.oasis.opendocument.spreadsheet',
],
91 => [
0 => 'filtre_application_dist',
1 => 'application/vnd.oasis.opendocument.presentation',
],
92 => [
0 => 'filtre_application_dist',
1 => 'application/vnd.oasis.opendocument.graphics',
],
93 => [
0 => 'filtre_application_dist',
1 => 'application/vnd.oasis.opendocument.chart',
],
94 => [
0 => 'filtre_application_dist',
1 => 'application/vnd.oasis.opendocument.formula',
],
95 => [
0 => 'filtre_application_dist',
1 => 'application/vnd.oasis.opendocument.database',
],
96 => [
0 => 'filtre_application_dist',
1 => 'application/vnd.oasis.opendocument.image',
],
97 => [
0 => 'filtre_application_dist',
1 => 'application/vnd.oasis.opendocument.text-master',
],
98 => [
0 => 'filtre_application_dist',
1 => 'application/vnd.oasis.opendocument.text-template',
],
99 => [
0 => 'filtre_application_dist',
1 => 'application/vnd.oasis.opendocument.spreadsheet-template',
],
100 => [
0 => 'filtre_application_dist',
1 => 'application/vnd.oasis.opendocument.presentation-template',
],
101 => [
0 => 'filtre_application_dist',
1 => 'application/vnd.oasis.opendocument.graphics-template',
],
104 => [
0 => 'filtre_application_dist',
1 => 'application/vnd.ms-word.document.macroEnabled.12',
],
105 => [
0 => 'filtre_application_dist',
1 => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
],
106 => [
0 => 'filtre_application_dist',
1 => 'application/vnd.ms-word.template.macroEnabled.12',
],
107 => [
0 => 'filtre_application_dist',
1 => 'application/vnd.openxmlformats-officedocument.wordprocessingml.template',
],
108 => [
0 => 'filtre_application_dist',
1 => 'application/vnd.ms-powerpoint.template.macroEnabled.12',
],
109 => [
0 => 'filtre_application_dist',
1 => 'application/vnd.openxmlformats-officedocument.presentationml.template',
],
110 => [
0 => 'filtre_application_dist',
1 => 'application/vnd.ms-powerpoint.addin.macroEnabled.12',
],
111 => [
0 => 'filtre_application_dist',
1 => 'application/vnd.ms-powerpoint.slideshow.macroEnabled.12',
],
112 => [
0 => 'filtre_application_dist',
1 => 'application/vnd.openxmlformats-officedocument.presentationml.slideshow',
],
113 => [
0 => 'filtre_application_dist',
1 => 'application/vnd.ms-powerpoint.presentation.macroEnabled.12',
],
114 => [
0 => 'filtre_application_dist',
1 => 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
],
115 => [
0 => 'filtre_application_dist',
1 => 'application/vnd.ms-excel.addin.macroEnabled.12',
],
116 => [
0 => 'filtre_application_dist',
1 => 'application/vnd.ms-excel.sheet.binary.macroEnabled.12',
],
117 => [
0 => 'filtre_application_dist',
1 => 'application/vnd.ms-excel.sheet.macroEnabled.12',
],
118 => [
0 => 'filtre_application_dist',
1 => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
],
119 => [
0 => 'filtre_application_dist',
1 => 'application/vnd.ms-excel.template.macroEnabled.12',
],
120 => [
0 => 'filtre_application_dist',
1 => 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',
],
];
}
}
<?php
declare(strict_types=1);
/**
* Test unitaire de la fonction commuter_class du fichier ./inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre;
use PHPUnit\Framework\TestCase;
class CommuterClassTest extends TestCase
{
public static function setUpBeforeClass(): void
{
find_in_path('./inc/filtres.php', '', true);
}
/**
* @dataProvider providerFiltresCommuterClass
*/
public function testFiltresCommuterClass($expected, ...$args): void
{
$actual = commuter_class(...$args);
$this->assertSame($expected, $actual);
}
public static function providerFiltresCommuterClass(): array
{
return [
0 => [
0 => "<span class='maclasse-prefixe suffixe-maclasse maclasse--bem'>toto</span>",
1 => '<span class="maclasse maclasse-prefixe suffixe-maclasse maclasse--bem">toto</span>',
2 => 'maclasse',
],
1 => [
0 => "<span class='maclasse maclasse-prefixe suffixe-maclasse maclasse--bem autreclass'>toto</span>",
1 => '<span class="maclasse maclasse-prefixe suffixe-maclasse maclasse--bem">toto</span>',
2 => 'autreclass',
],
2 => [
0 => "<span class='maclasse-prefixe suffixe-maclasse maclasse--bem maclasse1 maclasse2'>toto</span>",
1 => '<span class="maclasse maclasse-prefixe suffixe-maclasse maclasse--bem">toto</span>',
2 => 'maclasse1 maclasse maclasse2',
],
3 => [
0 => "<span class='maclasse maclasse--bem &lt;span class=&#034;maclasse maclasse--bem&#034;&gt;toto&lt;/span&gt;'>toto</span>",
1 => '<span class="maclasse maclasse-prefixe suffixe-maclasse maclasse--bem">toto</span>',
2 => '<span class="maclasse maclasse-prefixe suffixe-maclasse maclasse--bem">toto</span>',
],
];
}
}
<?php
declare(strict_types=1);
/**
* Test unitaire de la fonction corriger_entites_html du fichier ./inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre;
use PHPUnit\Framework\TestCase;
class CorrigerEntitesHtmlTest extends TestCase
{
public static function setUpBeforeClass(): void
{
find_in_path('./inc/filtres.php', '', true);
}
/**
* @dataProvider providerFiltresCorrigerEntitesHtml
*/
public function testFiltresCorrigerEntitesHtml($expected, ...$args): void
{
$actual = corriger_entites_html(...$args);
$this->assertSame($expected, $actual);
}
public static function providerFiltresCorrigerEntitesHtml(): array
{
return [
0 => [
0 => '',
1 => '',
],
1 => [
0 => '0',
1 => '0',
],
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',
],
3 => [
0 => 'Un texte avec des entit&eacute;s &amp;&lt;&gt;&quot;',
1 => 'Un texte avec des entit&eacute;s &amp;&lt;&gt;&quot;',
],
4 => [
0 => 'Un texte avec des entit&amp;eacute;s echap&amp;eacute; &amp;&amp;lt;&amp;gt;&amp;quot;',
1 => 'Un texte avec des entit&amp;eacute;s echap&amp;eacute; &amp;amp;&amp;lt;&amp;gt;&amp;quot;',
],
5 => [
0 => 'Un texte avec des entit&#233;s num&#233;riques &#38;&#60;&#62;&quot;',
1 => 'Un texte avec des entit&#233;s num&#233;riques &#38;&#60;&#62;&quot;',
],
6 => [
0 => 'Un texte avec des entit&#233;s num&#233;riques echap&#233;es &amp;#38;&amp;#60;&amp;#62;&amp;quot;',
1 => 'Un texte avec des entit&amp;#233;s num&amp;#233;riques echap&amp;#233;es &amp;#38;&amp;#60;&amp;#62;&amp;quot;',
],
7 => [
0 => 'Un texte sans entites &<>"\'',
1 => 'Un texte sans entites &<>"\'',
],
8 => [
0 => '{{{Des raccourcis}}} {italique} {{gras}} <code>du code</code>',
1 => '{{{Des raccourcis}}} {italique} {{gras}} <code>du code</code>',
],
9 => [
0 => 'Un modele <modeleinexistant|lien=[->http://www.spip.net]>',
1 => 'Un modele <modeleinexistant|lien=[->http://www.spip.net]>',
],
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',
],
];
}
}
<?php
declare(strict_types=1);
/**
* Test unitaire de la fonction affdate_court du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre\Date;
use PHPUnit\Framework\TestCase;
class AffdateCourtTest extends TestCase
{
public static function setUpBeforeClass(): void
{
find_in_path('inc/filtres.php', '', true);
}
/**
* @dataProvider providerFiltresAffdateCourt
*/
public function testFiltresAffdateCourt($expected, ...$args): void
{
changer_langue('fr');
$actual = affdate_court(...$args);
$this->assertSame($expected, $actual);
}
public static function providerFiltresAffdateCourt(): array
{
return [
0 => [
0 => ' 2001',
1 => '2001-00-00 12:33:44',
2 => '2011',
],
1 => [
0 => 'Mars 2001',
1 => '2001-03-00 09:12:57',
2 => '2011',
],
2 => [
0 => 'Février 2001',
1 => '2001-02-29 14:12:33',
2 => '2011',
],
3 => [
0 => '0000',
1 => '0000-00-00',
2 => '2011',
],
4 => [
0 => '0001',
1 => '0001-01-01',
2 => '2011',
],
5 => [
0 => 'Janvier 1970',
1 => '1970-01-01',
2 => '2011',
],
6 => [
0 => 'Juillet 2001',
1 => '2001-07-05 18:25:24',
2 => '2011',
],
7 => [
0 => 'Janvier 2001',
1 => '2001-01-01 00:00:00',
2 => '2011',
],
8 => [
0 => 'Décembre 2001',
1 => '2001-12-31 23:59:59',
2 => '2011',
],
9 => [
0 => 'Mars 2001',
1 => '2001-03-01 14:12:33',
2 => '2011',
],
10 => [
0 => 'Février 2004',
1 => '2004-02-29 14:12:33',
2 => '2011',
],
11 => [
0 => 'Mars 2012',
1 => '2012-03-20 12:00:00',
2 => '2011',
],
12 => [
0 => 'Mars 2012',
1 => '2012-03-21 12:00:00',
2 => '2011',
],
13 => [
0 => 'Mars 2012',
1 => '2012-03-22 12:00:00',
2 => '2011',
],
14 => [
0 => 'Juin 2012',
1 => '2012-06-20 12:00:00',
2 => '2011',
],
15 => [
0 => 'Juin 2012',
1 => '2012-06-21 12:00:00',
2 => '2011',
],
16 => [
0 => 'Juin 2012',
1 => '2012-06-22 12:00:00',
2 => '2011',
],
17 => [
0 => 'Septembre 2012',
1 => '2012-09-20 12:00:00',
2 => '2011',
],
18 => [
0 => 'Septembre 2012',
1 => '2012-09-21 12:00:00',
2 => '2011',
],
19 => [
0 => 'Septembre 2012',
1 => '2012-09-22 12:00:00',
2 => '2011',
],
20 => [
0 => 'Décembre 2012',
1 => '2012-12-20 12:00:00',
2 => '2011',
],
21 => [
0 => 'Décembre 2012',
1 => '2012-12-21 12:00:00',
2 => '2011',
],
22 => [
0 => 'Décembre 2012',
1 => '2012-12-22 12:00:00',
2 => '2011',
],
23 => [
0 => 'Juillet 2001',
1 => '2001-07-05',
2 => '2011',
],
24 => [
0 => 'Janvier 2001',
1 => '2001-01-01',
2 => '2011',
],
25 => [
0 => 'Décembre 2001',
1 => '2001-12-31',
2 => '2011',
],
26 => [
0 => 'Mars 2001',
1 => '2001-03-01',
2 => '2011',
],
27 => [
0 => 'Février 2004',
1 => '2004-02-29',
2 => '2011',
],
28 => [
0 => 'Mars 2012',
1 => '2012-03-20',
2 => '2011',
],
29 => [
0 => 'Mars 2012',
1 => '2012-03-21',
2 => '2011',
],
30 => [
0 => 'Mars 2012',
1 => '2012-03-22',
2 => '2011',
],
31 => [
0 => 'Juin 2012',
1 => '2012-06-20',
2 => '2011',
],
32 => [
0 => 'Juin 2012',
1 => '2012-06-21',
2 => '2011',
],
33 => [
0 => 'Juin 2012',
1 => '2012-06-22',
2 => '2011',
],
34 => [
0 => 'Septembre 2012',
1 => '2012-09-20',
2 => '2011',
],
35 => [
0 => 'Septembre 2012',
1 => '2012-09-21',
2 => '2011',
],
36 => [
0 => 'Septembre 2012',
1 => '2012-09-22',
2 => '2011',
],
37 => [
0 => 'Décembre 2012',
1 => '2012-12-20',
2 => '2011',
],
38 => [
0 => 'Décembre 2012',
1 => '2012-12-21',
2 => '2011',
],
39 => [
0 => 'Décembre 2012',
1 => '2012-12-22',
2 => '2011',
],
40 => [
0 => 'Juillet 2005',
1 => '2001/07/05',
2 => '2011',
],
41 => [
0 => 'Janvier 2001',
1 => '2001/01/01',
2 => '2011',
],
42 => [
0 => 'Décembre 2031',
1 => '2001/12/31',
2 => '2011',
],
43 => [
0 => 'Mars 2001',
1 => '2001/03/01',
2 => '2011',
],
44 => [
0 => 'Février 2029',
1 => '2004/02/29',
2 => '2011',
],
45 => [
0 => 'Mars 2020',
1 => '2012/03/20',
2 => '2011',
],
46 => [
0 => 'Mars 2021',
1 => '2012/03/21',
2 => '2011',
],
47 => [
0 => 'Mars 2022',
1 => '2012/03/22',
2 => '2011',
],
48 => [
0 => 'Juin 2020',
1 => '2012/06/20',
2 => '2011',
],
49 => [
0 => 'Juin 2021',
1 => '2012/06/21',
2 => '2011',
],
50 => [
0 => 'Juin 2022',
1 => '2012/06/22',
2 => '2011',
],
51 => [
0 => 'Septembre 2020',
1 => '2012/09/20',
2 => '2011',
],
52 => [
0 => 'Septembre 2021',
1 => '2012/09/21',
2 => '2011',
],
53 => [
0 => 'Septembre 2022',
1 => '2012/09/22',
2 => '2011',
],
54 => [
0 => 'Décembre 2020',
1 => '2012/12/20',
2 => '2011',
],
55 => [
0 => 'Décembre 2021',
1 => '2012/12/21',
2 => '2011',
],
56 => [
0 => 'Décembre 2022',
1 => '2012/12/22',
2 => '2011',
],
57 => [
0 => 'Juillet 2001',
1 => '05/07/2001',
2 => '2011',
],
58 => [
0 => 'Janvier 2001',
1 => '01/01/2001',
2 => '2011',
],
59 => [
0 => 'Décembre 2001',
1 => '31/12/2001',
2 => '2011',
],
60 => [
0 => 'Mars 2001',
1 => '01/03/2001',
2 => '2011',
],
61 => [
0 => 'Février 2004',
1 => '29/02/2004',
2 => '2011',
],
62 => [
0 => 'Mars 2012',
1 => '20/03/2012',
2 => '2011',
],
63 => [
0 => 'Mars 2012',
1 => '21/03/2012',
2 => '2011',
],
64 => [
0 => 'Mars 2012',
1 => '22/03/2012',
2 => '2011',
],
65 => [
0 => 'Juin 2012',
1 => '20/06/2012',
2 => '2011',
],
66 => [
0 => 'Juin 2012',
1 => '21/06/2012',
2 => '2011',
],
67 => [
0 => 'Juin 2012',
1 => '22/06/2012',
2 => '2011',
],
68 => [
0 => 'Septembre 2012',
1 => '20/09/2012',
2 => '2011',
],
69 => [
0 => 'Septembre 2012',
1 => '21/09/2012',
2 => '2011',
],
70 => [
0 => 'Septembre 2012',
1 => '22/09/2012',
2 => '2011',
],
71 => [
0 => 'Décembre 2012',
1 => '20/12/2012',
2 => '2011',
],
72 => [
0 => 'Décembre 2012',
1 => '21/12/2012',
2 => '2011',
],
73 => [
0 => 'Décembre 2012',
1 => '22/12/2012',
2 => '2011',
],
];
}
}
<?php
declare(strict_types=1);
namespace Spip\Core\Tests\Filtre\Date;
use PHPUnit\Framework\TestCase;
/**
* Test unitaire de la fonction affdate_debut_fin du fichier ./inc/filtres.php
*/
class AffDateDebutFinTest extends TestCase
{
public static function setUpBeforeClass(): void
{
find_in_path('./inc/filtres.php', '', true);
// Pour que le tests soit independant de la timezone du serveur
ini_set('date.timezone', 'Europe/Paris');
changer_langue('fr'); // ce test est en fr
}
/**
* @dataProvider providerAffdateDebutFin
*/
public function testAffdateDebutFin($expected, ...$args): void
{
$this->assertEquals($expected, affdate_debut_fin(...$args));
}
public static function providerAffdateDebutFin(): array
{
return [
0 =>
[
0 => 'Dimanche 1er juillet 2001 à 12h34',
1 => '2001-07-01 12:34:00',
2 => '2001-07-01 12:34:00',
3 => true,
],
1 =>
[
0 => 'Dimanche 1er juillet 2001',
1 => '2001-07-01 12:34:00',
2 => '2001-07-01 12:34:00',
3 => false,
],
2 =>
[
0 => 'Dimanche 1er juillet 2001 de 12h34 à 13h34',
1 => '2001-07-01 12:34:00',
2 => '2001-07-01 13:34:00',
3 => true,
],
3 =>
[
0 => 'Dimanche 1er juillet 2001',
1 => '2001-07-01 12:34:00',
2 => '2001-07-01 13:34:00',
3 => false,
],
4 =>
[
0 => 'Du 1er juillet à 12h34 au 2 juillet 2001 à 12h34',
1 => '2001-07-01 12:34:00',
2 => '2001-07-02 12:34:00',
3 => true,
],
5 =>
[
0 => 'Du 1er au 2 juillet 2001',
1 => '2001-07-01 12:34:00',
2 => '2001-07-02 12:34:00',
3 => false,
],
6 =>
[
0 => 'Du 1er juillet à 12h34 au 2 juillet 2001 à 13h34',
1 => '2001-07-01 12:34:00',
2 => '2001-07-02 13:34:00',
3 => true,
],
7 =>
[
0 => 'Du 1er au 2 juillet 2001',
1 => '2001-07-01 12:34:00',
2 => '2001-07-02 13:34:00',
3 => false,
],
8 =>
[
0 => 'Du 1er juillet à 12h34 au 1er août 2001 à 12h34',
1 => '2001-07-01 12:34:00',
2 => '2001-08-01 12:34:00',
3 => true,
],
9 =>
[
0 => 'Du 1er juillet au 1er août 2001',
1 => '2001-07-01 12:34:00',
2 => '2001-08-01 12:34:00',
3 => false,
],
10 =>
[
0 => 'Du 1er juillet 2001 à 12h34 au 1er juillet 2011 à 12h34',
1 => '2001-07-01 12:34:00',
2 => '2011-07-01 12:34:00',
3 => true,
],
11 =>
[
0 => 'Du 1er juillet 2001 au 1er juillet 2011',
1 => '2001-07-01 12:34:00',
2 => '2011-07-01 12:34:00',
3 => false,
],
12 =>
[
0 => 'Dim. 1er juillet 2001 à 12h34',
1 => '2001-07-01 12:34:00',
2 => '2001-07-01 12:34:00',
3 => true,
4 => 'abbr',
],
13 =>
[
0 => 'Dim. 1er juillet 2001',
1 => '2001-07-01 12:34:00',
2 => '2001-07-01 12:34:00',
3 => false,
4 => 'abbr',
],
14 =>
[
0 => 'Dim. 1er juillet 2001 de 12h34 à 13h34',
1 => '2001-07-01 12:34:00',
2 => '2001-07-01 13:34:00',
3 => true,
4 => 'abbr',
],
15 =>
[
0 => 'Dim. 1er juillet 2001',
1 => '2001-07-01 12:34:00',
2 => '2001-07-01 13:34:00',
3 => false,
4 => 'abbr',
],
16 =>
[
0 => 'Du 1er juillet à 12h34 au 2 juillet 2001 à 12h34',
1 => '2001-07-01 12:34:00',
2 => '2001-07-02 12:34:00',
3 => true,
4 => 'abbr',
],
17 =>
[
0 => 'Du 1er au 2 juillet 2001',
1 => '2001-07-01 12:34:00',
2 => '2001-07-02 12:34:00',
3 => false,
4 => 'abbr',
],
18 =>
[
0 => 'Du 1er juillet à 12h34 au 1er août 2001 à 12h34',
1 => '2001-07-01 12:34:00',
2 => '2001-08-01 12:34:00',
3 => true,
4 => 'abbr',
],
19 =>
[
0 => 'Du 1er juillet au 1er août 2001',
1 => '2001-07-01 12:34:00',
2 => '2001-08-01 12:34:00',
3 => false,
4 => 'abbr',
],
20 =>
[
0 => 'Du 1er juillet 2001 à 12h34 au 1er juillet 2011 à 12h34',
1 => '2001-07-01 12:34:00',
2 => '2011-07-01 12:34:00',
3 => true,
4 => 'abbr',
],
21 =>
[
0 => 'Du 1er juillet 2001 au 1er juillet 2011',
1 => '2001-07-01 12:34:00',
2 => '2011-07-01 12:34:00',
3 => false,
4 => 'abbr',
],
22 =>
[
0 => "<abbr class='dtstart' title='2001-07-01T10:34:00Z'>Dimanche 1er juillet 2001 à 12h34</abbr>",
1 => '2001-07-01 12:34:00',
2 => '2001-07-01 12:34:00',
3 => true,
4 => 'hcal',
],
23 =>
[
0 => "<abbr class='dtstart' title='2001-07-01T10:34:00Z'>Dimanche 1er juillet 2001</abbr>",
1 => '2001-07-01 12:34:00',
2 => '2001-07-01 12:34:00',
3 => false,
4 => 'hcal',
],
24 =>
[
0 => "<abbr class='dtstart' title='2001-07-01T10:34:00Z'>Dimanche 1er juillet 2001 de 12h34</abbr> à <abbr class='dtend' title='2001-07-01T11:34:00Z'>13h34</abbr>",
1 => '2001-07-01 12:34:00',
2 => '2001-07-01 13:34:00',
3 => true,
4 => 'hcal',
],
25 =>
[
0 => "<abbr class='dtstart' title='2001-07-01T10:34:00Z'>Dimanche 1er juillet 2001</abbr>",
1 => '2001-07-01 12:34:00',
2 => '2001-07-01 13:34:00',
3 => false,
4 => 'hcal',
],
26 =>
[
0 => 'Du <abbr class="dtstart" title="2001-07-01T10:34:00Z">1er juillet à 12h34</abbr> au <abbr class="dtend" title="2001-07-02T10:34:00Z">2 juillet 2001 à 12h34</abbr>',
1 => '2001-07-01 12:34:00',
2 => '2001-07-02 12:34:00',
3 => true,
4 => 'hcal',
],
27 =>
[
0 => 'Du <abbr class="dtstart" title="2001-07-01T10:34:00Z">1er</abbr> au <abbr class="dtend" title="2001-07-02T10:34:00Z">2 juillet 2001</abbr>',
1 => '2001-07-01 12:34:00',
2 => '2001-07-02 12:34:00',
3 => false,
4 => 'hcal',
],
28 =>
[
0 => 'Du <abbr class="dtstart" title="2001-07-01T10:34:00Z">1er juillet à 12h34</abbr> au <abbr class="dtend" title="2001-08-01T10:34:00Z">1er août 2001 à 12h34</abbr>',
1 => '2001-07-01 12:34:00',
2 => '2001-08-01 12:34:00',
3 => true,
4 => 'hcal',
],
29 =>
[
0 => 'Du <abbr class="dtstart" title="2001-07-01T10:34:00Z">1er juillet</abbr> au <abbr class="dtend" title="2001-08-01T10:34:00Z">1er août 2001</abbr>',
1 => '2001-07-01 12:34:00',
2 => '2001-08-01 12:34:00',
3 => false,
4 => 'hcal',
],
30 =>
[
0 => 'Du <abbr class="dtstart" title="2001-07-01T10:34:00Z">1er juillet 2001 à 12h34</abbr> au <abbr class="dtend" title="2011-07-01T10:34:00Z">1er juillet 2011 à 12h34</abbr>',
1 => '2001-07-01 12:34:00',
2 => '2011-07-01 12:34:00',
3 => true,
4 => 'hcal',
],
31 =>
[
0 => 'Du <abbr class="dtstart" title="2001-07-01T10:34:00Z">1er juillet 2001</abbr> au <abbr class="dtend" title="2011-07-01T10:34:00Z">1er juillet 2011</abbr>',
1 => '2001-07-01 12:34:00',
2 => '2011-07-01 12:34:00',
3 => false,
4 => 'hcal',
],
];
}
}
<?php
declare(strict_types=1);
/**
* Test unitaire de la fonction affdate_heure du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre\Date;
use PHPUnit\Framework\TestCase;
class AffdateHeureTest extends TestCase
{
public static function setUpBeforeClass(): void
{
find_in_path('inc/filtres.php', '', true);
}
protected function setUp(): void
{
changer_langue('fr');
// ce test est en fr
}
/**
* @dataProvider providerFiltresAffdateHeure
*/
public function testFiltresAffdateHeure($expected, ...$args): void
{
$actual = affdate_heure(...$args);
$this->assertSame($expected, $actual);
}
public static function providerFiltresAffdateHeure(): array
{
return [
0 => [
0 => '2001 à 12h33min',
1 => '2001-00-00 12:33:44',
],
1 => [
0 => 'mars 2001 à 09h12min',
1 => '2001-03-00 09:12:57',
],
2 => [
0 => '29 février 2001 à 14h12min',
1 => '2001-02-29 14:12:33',
],
3 => [
0 => '0000 à 0h0min',
1 => '0000-00-00',
],
4 => [
0 => '1er janvier 0001 à 0h0min',
1 => '0001-01-01',
],
5 => [
0 => '1er janvier 1970 à 0h0min',
1 => '1970-01-01',
],
6 => [
0 => '5 juillet 2001 à 18h25min',
1 => '2001-07-05 18:25:24',
],
7 => [
0 => '1er janvier 2001 à 00h00min',
1 => '2001-01-01 00:00:00',
],
8 => [
0 => '31 décembre 2001 à 23h59min',
1 => '2001-12-31 23:59:59',
],
9 => [
0 => '1er mars 2001 à 14h12min',
1 => '2001-03-01 14:12:33',
],
10 => [
0 => '29 février 2004 à 14h12min',
1 => '2004-02-29 14:12:33',
],
11 => [
0 => '20 mars 2012 à 12h00min',
1 => '2012-03-20 12:00:00',
],
12 => [
0 => '21 mars 2012 à 12h00min',
1 => '2012-03-21 12:00:00',
],
13 => [
0 => '22 mars 2012 à 12h00min',
1 => '2012-03-22 12:00:00',
],
14 => [
0 => '20 juin 2012 à 12h00min',
1 => '2012-06-20 12:00:00',
],
15 => [
0 => '21 juin 2012 à 12h00min',
1 => '2012-06-21 12:00:00',
],
16 => [
0 => '22 juin 2012 à 12h00min',
1 => '2012-06-22 12:00:00',
],
17 => [
0 => '20 septembre 2012 à 12h00min',
1 => '2012-09-20 12:00:00',
],
18 => [
0 => '21 septembre 2012 à 12h00min',
1 => '2012-09-21 12:00:00',
],
19 => [
0 => '22 septembre 2012 à 12h00min',
1 => '2012-09-22 12:00:00',
],
20 => [
0 => '20 décembre 2012 à 12h00min',
1 => '2012-12-20 12:00:00',
],
21 => [
0 => '21 décembre 2012 à 12h00min',
1 => '2012-12-21 12:00:00',
],
22 => [
0 => '22 décembre 2012 à 12h00min',
1 => '2012-12-22 12:00:00',
],
23 => [
0 => '5 juillet 2001 à 0h0min',
1 => '2001-07-05',
],
24 => [
0 => '1er janvier 2001 à 0h0min',
1 => '2001-01-01',
],
25 => [
0 => '31 décembre 2001 à 0h0min',
1 => '2001-12-31',
],
26 => [
0 => '1er mars 2001 à 0h0min',
1 => '2001-03-01',
],
27 => [
0 => '29 février 2004 à 0h0min',
1 => '2004-02-29',
],
28 => [
0 => '20 mars 2012 à 0h0min',
1 => '2012-03-20',
],
29 => [
0 => '21 mars 2012 à 0h0min',
1 => '2012-03-21',
],
30 => [
0 => '22 mars 2012 à 0h0min',
1 => '2012-03-22',
],
31 => [
0 => '20 juin 2012 à 0h0min',
1 => '2012-06-20',
],
32 => [
0 => '21 juin 2012 à 0h0min',
1 => '2012-06-21',
],
33 => [
0 => '22 juin 2012 à 0h0min',
1 => '2012-06-22',
],
34 => [
0 => '20 septembre 2012 à 0h0min',
1 => '2012-09-20',
],
35 => [
0 => '21 septembre 2012 à 0h0min',
1 => '2012-09-21',
],
36 => [
0 => '22 septembre 2012 à 0h0min',
1 => '2012-09-22',
],
37 => [
0 => '20 décembre 2012 à 0h0min',
1 => '2012-12-20',
],
38 => [
0 => '21 décembre 2012 à 0h0min',
1 => '2012-12-21',
],
39 => [
0 => '22 décembre 2012 à 0h0min',
1 => '2012-12-22',
],
40 => [
0 => '1er juillet 2005 à 0h0min',
1 => '2001/07/05',
],
41 => [
0 => '1er janvier 2001 à 0h0min',
1 => '2001/01/01',
],
42 => [
0 => '1er décembre 2031 à 0h0min',
1 => '2001/12/31',
],
43 => [
0 => '1er mars 2001 à 0h0min',
1 => '2001/03/01',
],
44 => [
0 => '4 février 2029 à 0h0min',
1 => '2004/02/29',
],
45 => [
0 => '12 mars 2020 à 0h0min',
1 => '2012/03/20',
],
46 => [
0 => '12 mars 2021 à 0h0min',
1 => '2012/03/21',
],
47 => [
0 => '12 mars 2022 à 0h0min',
1 => '2012/03/22',
],
48 => [
0 => '12 juin 2020 à 0h0min',
1 => '2012/06/20',
],
49 => [
0 => '12 juin 2021 à 0h0min',
1 => '2012/06/21',
],
50 => [
0 => '12 juin 2022 à 0h0min',
1 => '2012/06/22',
],
51 => [
0 => '12 septembre 2020 à 0h0min',
1 => '2012/09/20',
],
52 => [
0 => '12 septembre 2021 à 0h0min',
1 => '2012/09/21',
],
53 => [
0 => '12 septembre 2022 à 0h0min',
1 => '2012/09/22',
],
54 => [
0 => '12 décembre 2020 à 0h0min',
1 => '2012/12/20',
],
55 => [
0 => '12 décembre 2021 à 0h0min',
1 => '2012/12/21',
],
56 => [
0 => '12 décembre 2022 à 0h0min',
1 => '2012/12/22',
],
57 => [
0 => '5 juillet 2001 à 0h0min',
1 => '05/07/2001',
],
58 => [
0 => '1er janvier 2001 à 0h0min',
1 => '01/01/2001',
],
59 => [
0 => '31 décembre 2001 à 0h0min',
1 => '31/12/2001',
],
60 => [
0 => '1er mars 2001 à 0h0min',
1 => '01/03/2001',
],
61 => [
0 => '29 février 2004 à 0h0min',
1 => '29/02/2004',
],
62 => [
0 => '20 mars 2012 à 0h0min',
1 => '20/03/2012',
],
63 => [
0 => '21 mars 2012 à 0h0min',
1 => '21/03/2012',
],
64 => [
0 => '22 mars 2012 à 0h0min',
1 => '22/03/2012',
],
65 => [
0 => '20 juin 2012 à 0h0min',
1 => '20/06/2012',
],
66 => [
0 => '21 juin 2012 à 0h0min',
1 => '21/06/2012',
],
67 => [
0 => '22 juin 2012 à 0h0min',
1 => '22/06/2012',
],
68 => [
0 => '20 septembre 2012 à 0h0min',
1 => '20/09/2012',
],
69 => [
0 => '21 septembre 2012 à 0h0min',
1 => '21/09/2012',
],
70 => [
0 => '22 septembre 2012 à 0h0min',
1 => '22/09/2012',
],
71 => [
0 => '20 décembre 2012 à 0h0min',
1 => '20/12/2012',
],
72 => [
0 => '21 décembre 2012 à 0h0min',
1 => '21/12/2012',
],
73 => [
0 => '22 décembre 2012 à 0h0min',
1 => '22/12/2012',
],
];
}
}
<?php
declare(strict_types=1);
/**
* Test unitaire de la fonction affdate_jourcourt du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre\Date;
use PHPUnit\Framework\TestCase;
class AffdateJourcourtTest extends TestCase
{
public static function setUpBeforeClass(): void
{
find_in_path('inc/filtres.php', '', true);
}
protected function setUp(): void
{
changer_langue('fr');
// ce test est en fr
}
/**
* @dataProvider providerFiltresAffdateJourcourt
*/
public function testFiltresAffdateJourcourt($expected, ...$args): void
{
$actual = affdate_jourcourt(...$args);
$this->assertSame($expected, $actual);
}
public static function providerFiltresAffdateJourcourt(): array
{
return [
0 => [
0 => ' 2001',
1 => '2001-00-00 12:33:44',
2 => '2011',
],
1 => [
0 => ' mars 2001',
1 => '2001-03-00 09:12:57',
2 => '2011',
],
2 => [
0 => '29 février 2001',
1 => '2001-02-29 14:12:33',
2 => '2011',
],
3 => [
0 => '0000',
1 => '0000-00-00',
2 => '2011',
],
4 => [
0 => '0001',
1 => '0001-01-01',
2 => '2011',
],
5 => [
0 => '1er janvier 1970',
1 => '1970-01-01',
2 => '2011',
],
6 => [
0 => '5 juillet 2001',
1 => '2001-07-05 18:25:24',
2 => '2011',
],
7 => [
0 => '1er janvier 2001',
1 => '2001-01-01 00:00:00',
2 => '2011',
],
8 => [
0 => '31 décembre 2001',
1 => '2001-12-31 23:59:59',
2 => '2011',
],
9 => [
0 => '1er mars 2001',
1 => '2001-03-01 14:12:33',
2 => '2011',
],
10 => [
0 => '29 février 2004',
1 => '2004-02-29 14:12:33',
2 => '2011',
],
11 => [
0 => '20 mars 2012',
1 => '2012-03-20 12:00:00',
2 => '2011',
],
12 => [
0 => '21 mars 2012',
1 => '2012-03-21 12:00:00',
2 => '2011',
],
13 => [
0 => '22 mars 2012',
1 => '2012-03-22 12:00:00',
2 => '2011',
],
14 => [
0 => '20 juin 2012',
1 => '2012-06-20 12:00:00',
2 => '2011',
],
15 => [
0 => '21 juin 2012',
1 => '2012-06-21 12:00:00',
2 => '2011',
],
16 => [
0 => '22 juin 2012',
1 => '2012-06-22 12:00:00',
2 => '2011',
],
17 => [
0 => '20 septembre 2012',
1 => '2012-09-20 12:00:00',
2 => '2011',
],
18 => [
0 => '21 septembre 2012',
1 => '2012-09-21 12:00:00',
2 => '2011',
],
19 => [
0 => '22 septembre 2012',
1 => '2012-09-22 12:00:00',
2 => '2011',
],
20 => [
0 => '20 décembre 2012',
1 => '2012-12-20 12:00:00',
2 => '2011',
],
21 => [
0 => '21 décembre 2012',
1 => '2012-12-21 12:00:00',
2 => '2011',
],
22 => [
0 => '22 décembre 2012',
1 => '2012-12-22 12:00:00',
2 => '2011',
],
23 => [
0 => '5 juillet 2001',
1 => '2001-07-05',
2 => '2011',
],
24 => [
0 => '1er janvier 2001',
1 => '2001-01-01',
2 => '2011',
],
25 => [
0 => '31 décembre 2001',
1 => '2001-12-31',
2 => '2011',
],
26 => [
0 => '1er mars 2001',
1 => '2001-03-01',
2 => '2011',
],
27 => [
0 => '29 février 2004',
1 => '2004-02-29',
2 => '2011',
],
28 => [
0 => '20 mars 2012',
1 => '2012-03-20',
2 => '2011',
],
29 => [
0 => '21 mars 2012',
1 => '2012-03-21',
2 => '2011',
],
30 => [
0 => '22 mars 2012',
1 => '2012-03-22',
2 => '2011',
],
31 => [
0 => '20 juin 2012',
1 => '2012-06-20',
2 => '2011',
],
32 => [
0 => '21 juin 2012',
1 => '2012-06-21',
2 => '2011',
],
33 => [
0 => '22 juin 2012',
1 => '2012-06-22',
2 => '2011',
],
34 => [
0 => '20 septembre 2012',
1 => '2012-09-20',
2 => '2011',
],
35 => [
0 => '21 septembre 2012',
1 => '2012-09-21',
2 => '2011',
],
36 => [
0 => '22 septembre 2012',
1 => '2012-09-22',
2 => '2011',
],
37 => [
0 => '20 décembre 2012',
1 => '2012-12-20',
2 => '2011',
],
38 => [
0 => '21 décembre 2012',
1 => '2012-12-21',
2 => '2011',
],
39 => [
0 => '22 décembre 2012',
1 => '2012-12-22',
2 => '2011',
],
40 => [
0 => '1er juillet 2005',
1 => '2001/07/05',
2 => '2011',
],
41 => [
0 => '1er janvier 2001',
1 => '2001/01/01',
2 => '2011',
],
42 => [
0 => '1er décembre 2031',
1 => '2001/12/31',
2 => '2011',
],
43 => [
0 => '1er mars 2001',
1 => '2001/03/01',
2 => '2011',
],
44 => [
0 => '4 février 2029',
1 => '2004/02/29',
2 => '2011',
],
45 => [
0 => '12 mars 2020',
1 => '2012/03/20',
2 => '2011',
],
46 => [
0 => '12 mars 2021',
1 => '2012/03/21',
2 => '2011',
],
47 => [
0 => '12 mars 2022',
1 => '2012/03/22',
2 => '2011',
],
48 => [
0 => '12 juin 2020',
1 => '2012/06/20',
2 => '2011',
],
49 => [
0 => '12 juin 2021',
1 => '2012/06/21',
2 => '2011',
],
50 => [
0 => '12 juin 2022',
1 => '2012/06/22',
2 => '2011',
],
51 => [
0 => '12 septembre 2020',
1 => '2012/09/20',
2 => '2011',
],
52 => [
0 => '12 septembre 2021',
1 => '2012/09/21',
2 => '2011',
],
53 => [
0 => '12 septembre 2022',
1 => '2012/09/22',
2 => '2011',
],
54 => [
0 => '12 décembre 2020',
1 => '2012/12/20',
2 => '2011',
],
55 => [
0 => '12 décembre 2021',
1 => '2012/12/21',
2 => '2011',
],
56 => [
0 => '12 décembre 2022',
1 => '2012/12/22',
2 => '2011',
],
57 => [
0 => '5 juillet 2001',
1 => '05/07/2001',
2 => '2011',
],
58 => [
0 => '1er janvier 2001',
1 => '01/01/2001',
2 => '2011',
],
59 => [
0 => '31 décembre 2001',
1 => '31/12/2001',
2 => '2011',
],
60 => [
0 => '1er mars 2001',
1 => '01/03/2001',
2 => '2011',
],
61 => [
0 => '29 février 2004',
1 => '29/02/2004',
2 => '2011',
],
62 => [
0 => '20 mars 2012',
1 => '20/03/2012',
2 => '2011',
],
63 => [
0 => '21 mars 2012',
1 => '21/03/2012',
2 => '2011',
],
64 => [
0 => '22 mars 2012',
1 => '22/03/2012',
2 => '2011',
],
65 => [
0 => '20 juin 2012',
1 => '20/06/2012',
2 => '2011',
],
66 => [
0 => '21 juin 2012',
1 => '21/06/2012',
2 => '2011',
],
67 => [
0 => '22 juin 2012',
1 => '22/06/2012',
2 => '2011',
],
68 => [
0 => '20 septembre 2012',
1 => '20/09/2012',
2 => '2011',
],
69 => [
0 => '21 septembre 2012',
1 => '21/09/2012',
2 => '2011',
],
70 => [
0 => '22 septembre 2012',
1 => '22/09/2012',
2 => '2011',
],
71 => [
0 => '20 décembre 2012',
1 => '20/12/2012',
2 => '2011',
],
72 => [
0 => '21 décembre 2012',
1 => '21/12/2012',
2 => '2011',
],
73 => [
0 => '22 décembre 2012',
1 => '22/12/2012',
2 => '2011',
],
];
}
}
<?php
declare(strict_types=1);
/**
* Test unitaire de la fonction affdate_mois_annee du fichier inc/filtres.php
*/
namespace Spip\Core\Tests\Filtre\Date;
use PHPUnit\Framework\TestCase;
class AffdateMoisAnneeTest extends TestCase
{
public static function setUpBeforeClass(): void
{
find_in_path('inc/filtres.php', '', true);
}
protected function setUp(): void
{
changer_langue('fr');
// ce test est en fr
}
/**
* @dataProvider providerFiltresAffdateMoisAnnee
*/
public function testFiltresAffdateMoisAnnee($expected, ...$args): void
{
$actual = affdate_mois_annee(...$args);
$this->assertSame($expected, $actual);
}
public static function providerFiltresAffdateMoisAnnee(): array
{
return [
0 => [
0 => '2001',
1 => '2001-00-00 12:33:44',
],
1 => [
0 => 'mars 2001',
1 => '2001-03-00 09:12:57',
],
2 => [
0 => 'février 2001',
1 => '2001-02-29 14:12:33',
],
3 => [
0 => '0000',
1 => '0000-00-00',
],
4 => [
0 => 'janvier 0001',
1 => '0001-01-01',
],
5 => [
0 => 'janvier 1970',
1 => '1970-01-01',
],
6 => [
0 => 'juillet 2001',
1 => '2001-07-05 18:25:24',
],
7 => [
0 => 'janvier 2001',
1 => '2001-01-01 00:00:00',
],
8 => [
0 => 'décembre 2001',
1 => '2001-12-31 23:59:59',
],
9 => [
0 => 'mars 2001',
1 => '2001-03-01 14:12:33',
],
10 => [
0 => 'février 2004',
1 => '2004-02-29 14:12:33',
],
11 => [
0 => 'mars 2012',
1 => '2012-03-20 12:00:00',
],
12 => [
0 => 'mars 2012',
1 => '2012-03-21 12:00:00',
],
13 => [
0 => 'mars 2012',
1 => '2012-03-22 12:00:00',
],
14 => [
0 => 'juin 2012',
1 => '2012-06-20 12:00:00',
],
15 => [
0 => 'juin 2012',
1 => '2012-06-21 12:00:00',
],
16 => [
0 => 'juin 2012',
1 => '2012-06-22 12:00:00',
],
17 => [
0 => 'septembre 2012',
1 => '2012-09-20 12:00:00',
],
18 => [
0 => 'septembre 2012',
1 => '2012-09-21 12:00:00',
],
19 => [
0 => 'septembre 2012',
1 => '2012-09-22 12:00:00',
],
20 => [
0 => 'décembre 2012',
1 => '2012-12-20 12:00:00',
],
21 => [
0 => 'décembre 2012',
1 => '2012-12-21 12:00:00',
],
22 => [
0 => 'décembre 2012',
1 => '2012-12-22 12:00:00',
],
23 => [
0 => 'juillet 2001',
1 => '2001-07-05',
],
24 => [
0 => 'janvier 2001',
1 => '2001-01-01',
],
25 => [
0 => 'décembre 2001',
1 => '2001-12-31',
],
26 => [
0 => 'mars 2001',
1 => '2001-03-01',
],
27 => [
0 => 'février 2004',
1 => '2004-02-29',
],
28 => [
0 => 'mars 2012',
1 => '2012-03-20',
],
29 => [
0 => 'mars 2012',
1 => '2012-03-21',
],
30 => [
0 => 'mars 2012',
1 => '2012-03-22',
],
31 => [
0 => 'juin 2012',
1 => '2012-06-20',
],
32 => [
0 => 'juin 2012',
1 => '2012-06-21',
],
33 => [
0 => 'juin 2012',
1 => '2012-06-22',
],
34 => [
0 => 'septembre 2012',
1 => '2012-09-20',
],
35 => [
0 => 'septembre 2012',
1 => '2012-09-21',
],
36 => [
0 => 'septembre 2012',
1 => '2012-09-22',
],
37 => [
0 => 'décembre 2012',
1 => '2012-12-20',
],
38 => [
0 => 'décembre 2012',
1 => '2012-12-21',
],
39 => [
0 => 'décembre 2012',
1 => '2012-12-22',
],
40 => [
0 => 'juillet 2005',
1 => '2001/07/05',
],
41 => [
0 => 'janvier 2001',
1 => '2001/01/01',
],
42 => [
0 => 'décembre 2031',
1 => '2001/12/31',
],
43 => [
0 => 'mars 2001',
1 => '2001/03/01',
],
44 => [
0 => 'février 2029',
1 => '2004/02/29',
],
45 => [
0 => 'mars 2020',
1 => '2012/03/20',
],
46 => [
0 => 'mars 2021',
1 => '2012/03/21',
],
47 => [
0 => 'mars 2022',
1 => '2012/03/22',
],
48 => [
0 => 'juin 2020',
1 => '2012/06/20',
],
49 => [
0 => 'juin 2021',
1 => '2012/06/21',
],
50 => [
0 => 'juin 2022',
1 => '2012/06/22',
],
51 => [
0 => 'septembre 2020',
1 => '2012/09/20',
],
52 => [
0 => 'septembre 2021',
1 => '2012/09/21',
],
53 => [
0 => 'septembre 2022',
1 => '2012/09/22',
],
54 => [
0 => 'décembre 2020',
1 => '2012/12/20',
],
55 => [
0 => 'décembre 2021',
1 => '2012/12/21',
],
56 => [
0 => 'décembre 2022',
1 => '2012/12/22',
],
57 => [
0 => 'juillet 2001',
1 => '05/07/2001',
],
58 => [
0 => 'janvier 2001',
1 => '01/01/2001',
],
59 => [
0 => 'décembre 2001',
1 => '31/12/2001',
],
60 => [
0 => 'mars 2001',
1 => '01/03/2001',
],
61 => [
0 => 'février 2004',
1 => '29/02/2004',
],
62 => [
0 => 'mars 2012',
1 => '20/03/2012',
],
63 => [
0 => 'mars 2012',
1 => '21/03/2012',
],
64 => [
0 => 'mars 2012',
1 => '22/03/2012',
],
65 => [
0 => 'juin 2012',
1 => '20/06/2012',
],
66 => [
0 => 'juin 2012',
1 => '21/06/2012',
],
67 => [
0 => 'juin 2012',
1 => '22/06/2012',
],
68 => [
0 => 'septembre 2012',
1 => '20/09/2012',
],
69 => [
0 => 'septembre 2012',
1 => '21/09/2012',
],
70 => [
0 => 'septembre 2012',
1 => '22/09/2012',
],
71 => [
0 => 'décembre 2012',
1 => '20/12/2012',
],
72 => [
0 => 'décembre 2012',
1 => '21/12/2012',
],
73 => [
0 => 'décembre 2012',
1 => '22/12/2012',
],
];
}
}
Ce diff est replié.
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