diff --git a/ecrire/tests/Filtre/Date/AffdateTest.php b/ecrire/tests/Filtre/Date/AffdateTest.php new file mode 100644 index 0000000000000000000000000000000000000000..1060d70a1f1e009ea1041fee6344feee8af9cdc4 --- /dev/null +++ b/ecrire/tests/Filtre/Date/AffdateTest.php @@ -0,0 +1,87 @@ +<?php + +declare(strict_types=1); + +/** + * Test unitaire de la fonction affdate_court du fichier inc/filtres.php + */ + +namespace Spip\Test\Filtre\Date; + +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\TestCase; + +class AffdateTest extends TestCase +{ + public static function setUpBeforeClass(): void { + find_in_path('inc/filtres.php', '', true); + } + + #[DataProvider('providerAffdateWithoutDay')] + public function testAffdateWithoutDay($expected, $date, $lang): void { + $GLOBALS['spip_lang'] = $lang; + $actual = affdate($date); + $this->assertEquals($expected, $actual); + } + + public static function providerAffdateWithoutDay(): array { + return [ + 'ca-nc-01-2010' => [ + 'expected' => 'gener de 2010', + 'date' => '2010-01-00 01:00:00', + 'lang' => 'ca', + ], + 'de-nc-01-2010' => [ + 'expected' => 'Januar 2010', + 'date' => '2010-01-00 01:00:00', + 'lang' => 'de', + ], + 'en-nc-01-2010' => [ + 'expected' => 'January 2010', + 'date' => '2010-01-00 01:00:00', + 'lang' => 'en', + ], + 'es-nc-01-2010' => [ + 'expected' => 'enero de 2010', + 'date' => '2010-01-00 01:00:00', + 'lang' => 'es', + ], + 'fr-nc-01-2010' => [ + 'expected' => 'janvier 2010', + 'date' => '2010-01-00 01:00:00', + 'lang' => 'fr', + ], + 'it-nc-01-2010' => [ + 'expected' => 'Gennaio 2010', + 'date' => '2010-01-00 01:00:00', + 'lang' => 'it', + ], + 'nl-nc-01-2010' => [ + 'expected' => 'januari 2010', + 'date' => '2010-01-00 01:00:00', + 'lang' => 'nl', + ], + 'pl-nc-01-2010' => [ + 'expected' => 'Styczeń 2010', + 'date' => '2010-01-00 01:00:00', + 'lang' => 'pl', + ], + 'pt-nc-01-2010' => [ + 'expected' => 'Janeiro de 2010', + 'date' => '2010-01-00 01:00:00', + 'lang' => 'pt', + ], + ]; + } + + #[DataProvider('providerAWithoutDayAndMonth')] + public function testAffdateWithoutDayAndMonth($lang): void { + $GLOBALS['spip_lang'] = $lang; + $this->assertEquals(2010, affdate('2010-00-00 01:00:00')); + } + + public static function providerAWithoutDayAndMonth(): array { + $list = array_column(self::providerAffdateWithoutDay(), null, 'lang'); + return array_map(fn ($entry) => ['lang' => $entry['lang']], $list); + } +} diff --git a/ecrire/tests/legacy/unit/filtres/affdate.php b/ecrire/tests/legacy/unit/filtres/affdate.php deleted file mode 100644 index bd813ed9fa4b57f930a3a56de9efe870d54bc6d9..0000000000000000000000000000000000000000 --- a/ecrire/tests/legacy/unit/filtres/affdate.php +++ /dev/null @@ -1,109 +0,0 @@ -<?php - -declare(strict_types=1); - -$test = 'affdate'; - -$remonte = __DIR__ . '/'; - -while (!is_file($remonte . 'test.inc')) { - $remonte .= '../'; -} - -require $remonte . 'test.inc'; - -include_spip('inc/filtres'); - -include_spip('inc/lang'); - -$lang = $GLOBALS['spip_lang']; - -$GLOBALS['spip_lang'] = 'ca'; - -$essais['nc-01-2010'] = ['gener de 2010', '2010-01-00 01:00:00']; - -$essais['nc-nc-2010'] = ['2010', '2010-00-00 01:00:00']; - -$err[$GLOBALS['spip_lang']] = tester_fun('affdate', $essais); - -$GLOBALS['spip_lang'] = 'de'; - -$essais['nc-01-2010'] = ['Januar 2010', '2010-01-00 01:00:00']; - -$essais['nc-nc-2010'] = ['2010', '2010-00-00 01:00:00']; - -$err[$GLOBALS['spip_lang']] = tester_fun('affdate', $essais); - -$GLOBALS['spip_lang'] = 'en'; - -$essais['nc-01-2010'] = ['January 2010', '2010-01-00 01:00:00']; - -$essais['nc-nc-2010'] = ['2010', '2010-00-00 01:00:00']; - -$err[$GLOBALS['spip_lang']] = tester_fun('affdate', $essais); - -$GLOBALS['spip_lang'] = 'es'; - -$essais['nc-01-2010'] = ['enero de 2010', '2010-01-00 01:00:00']; - -$essais['nc-nc-2010'] = ['2010', '2010-00-00 01:00:00']; - -$err[$GLOBALS['spip_lang']] = tester_fun('affdate', $essais); - -$GLOBALS['spip_lang'] = 'fr'; - -$essais['nc-01-2010'] = ['janvier 2010', '2010-01-00 01:00:00']; - -$essais['nc-nc-2010'] = ['2010', '2010-00-00 01:00:00']; - -$err[$GLOBALS['spip_lang']] = tester_fun('affdate', $essais); - -$GLOBALS['spip_lang'] = 'it'; - -$essais['nc-01-2010'] = ['Gennaio 2010', '2010-01-00 01:00:00']; - -$essais['nc-nc-2010'] = ['2010', '2010-00-00 01:00:00']; - -$err[$GLOBALS['spip_lang']] = tester_fun('affdate', $essais); - -$GLOBALS['spip_lang'] = 'nl'; - -$essais['nc-01-2010'] = ['januari 2010', '2010-01-00 01:00:00']; - -$essais['nc-nc-2010'] = ['2010', '2010-00-00 01:00:00']; - -$err[$GLOBALS['spip_lang']] = tester_fun('affdate', $essais); - -$GLOBALS['spip_lang'] = 'pl'; - -$essais['nc-01-2010'] = ['Styczeń 2010', '2010-01-00 01:00:00']; - -$essais['nc-nc-2010'] = ['2010', '2010-00-00 01:00:00']; - -$err[$GLOBALS['spip_lang']] = tester_fun('affdate', $essais); - -$GLOBALS['spip_lang'] = 'pt'; - -$essais['nc-01-2010'] = ['Janeiro de 2010', '2010-01-00 01:00:00']; - -$essais['nc-nc-2010'] = ['2010', '2010-00-00 01:00:00']; - -$err[$GLOBALS['spip_lang']] = tester_fun('affdate', $essais); - -$GLOBALS['spip_lang'] = $lang; - -// si le tableau $err est pas vide ca va pas - -$ok = true; - -foreach ($err as $l => $e) { - if (count($e) > 0) { - $ok = false; - echo $l; - echo '<dl>' . implode('', $e) . '</dl>'; - } -} - -if ($ok) { - echo 'OK'; -}