WP File Manager
Current Path:
/
home
/
argothem
/
www
/
organecyberpresse
/
plugins
/
auto
/
verifier
/
v3.8.0
/
tests
/
Name
Action
..
DateTest.php
Edit
EmailExplodeTest.php
Edit
EmailValideTest.php
Edit
EntierTest.php
Edit
TelephoneTest.php
Edit
bootstrap.php
Edit
Editing: DateTest.php
<?php namespace Spip\Verifier\Tests; use PHPUnit\Framework\TestCase; /** * @covers verifier_date_dist() * @covers normaliser_date_datetime_dist() * @covers normaliser_date_date_dist() * @covers normaliser_date_date_ou_datetime_dist() * @covers verifier_date_format_autodection() * @uses verifier_date_format_spip2php() * @internal */ class DateTest extends TestCase { public static function setUpBeforeClass(): void { require_once dirname(__DIR__) . '/verifier/date.php'; } public static function dataVerifierDate() { $erreur_standard = _T('verifier:erreur_date_format'); $erreur_date_inexistante = _T('verifier:erreur_date'); return [ // Dates seules //ajm [$erreur_date_inexistante,'2021/22/03',['format' => 'amj']],// Pas de 22ème mois! [$erreur_standard, '03/03/2021',['format' => 'amj']],// Une date mal formatée ['','2021/03/22',['format' => 'amj']], //jma [$erreur_date_inexistante,'03/22/2021',['format' => 'jma']],// Pas de 22ème mois! ['','22/03/2021',['format' => 'jma']], //mja [$erreur_date_inexistante,'22/03/2021',['format' => 'mja']],// Pas de 22ème mois! ['','03/22/2021',['format' => 'mja']], // Deja formaté en mysql ['','2021-03-22 12:11:10',['format' => 'mja', 'normaliser' => 'datetime']], // Avec les heures //Amj ['',['date' => '2021/03/22', 'heure' => '20:00'],['format' => 'amj']], [_T('verifier:erreur_heure'),['date' => '2021/03/22', 'heure' => '20:68'],['format' => 'amj']],//Pas de 68'eme minutes [_T('verifier:erreur_heure'),['date' => '2021/03/22', 'heure' => '25:01'],['format' => 'amj']],//Pas de 25ème heure ]; } /** * @dataProvider dataVerifierDate */ public function testVerifierDate($expected, $input, $options = []) { $actual = verifier_date_dist($input, $options); $this->assertEquals($expected, $actual); } public static function dataNormaliserDateDatetime() { return [ // Dates seules //ajm ['2021-03-22 00:00:00','2021/03/22',['format' => 'amj'], ''], //jma ['2021-03-22 00:00:00','22/03/2021',['format' => 'jma'], ''], //mja ['2021-03-22 00:00:00','03/22/2021',['format' => 'mja'], ''], // Avec les heures : on test 2 fois, histoire que si jamais c'est lancé à l'heure pile indiqué ca fasse pas un faux positifs, en esperant qu'on mette pas 10h pile entre les 2 tests (ce serait un ordinateur très très très lent) //Amj ['2021-03-22 20:00:00','2021/03/22', ['heure' => '20:00', 'format' => 'amj'], ''], ['2021-03-22 10:00:00','2021/03/22', ['heure' => '10:00', 'format' => 'amj'], ''], //Amj avec trait de séparation ['2021-03-22 20:00:00','2021-03-22', ['heure' => '20:00', 'format' => 'amj'], ''], ['2021-03-22 10:00:00','2021-03-22', ['heure' => '10:00', 'format' => 'amj'], ''], ]; } /** * @dataProvider dataNormaliserDateDatetime */ public function testNormaliserDateDatetime($expected, $input, $options = []) { $erreurs = ''; $actual = normaliser_date_datetime_dist($input, $options, $erreurs); $this->assertEquals($expected, $actual); } public static function dataNormaliserDateDate() { return [ // Dates seules //ajm ['2021-03-22','2021/03/22',['format' => 'amj'], ''], //jma ['2021-03-22','22/03/2021',['format' => 'jma'], ''], //mja ['2021-03-22','03/22/2021',['format' => 'mja'], ''], ]; } /** * @dataProvider dataNormaliserDateDate */ public function testNormaliserDateDate($expected, $input, $options = []) { $erreurs = ''; $actual = normaliser_date_date_dist($input, $options, $erreurs); $this->assertEquals($expected, $actual); } public static function dataNormaliserDateDateOuDatetime() { return [ // En mode SQL 'sql_datetime' => [ // Expected '2021-03-22 20:00:00', // Input '2021/03/22', // Options [ 'heure' => '20:00', 'format' => 'amj', '_saisie' => [ 'options' => [ 'sql' => 'datetime DEFAULT \'0000-00-00 00:00:00\' NOT NULL' ] ] ] ], 'sql_date' => [ // Expected '2021-03-22', // Input '2021/03/22 ', // Options [ 'heure' => '20:00', 'format' => 'amj', '_saisie' => [ 'options' => [ 'sql' => 'date DEFAULT \'0000-00-00\' NOT NULL' ] ] ] ], // En mode "config" // Dates seules //ajm 'config_date' => ['2021-03-22','2021/03/22',['format' => 'amj'], ''], //jma // Avec les heures //Amj 'config_datetime' => ['2021-03-22 20:00:00','2021/03/22', ['heure' => '20:00', 'format' => 'amj'], ''], ]; } /** * @dataProvider dataNormaliserDateDateOuDatetime */ public function testNormaliserDateDateOuDatetime($expected, $input, $options = []) { $erreurs = ''; $actual = normaliser_date_date_ou_datetime_dist($input, $options, $erreurs); $this->assertEquals($expected, $actual); } public static function dataVerifierDateFormatAutodection() { return [ 'amj' => [ // Expected 'amj', // Provided '2022-01-01' ], 'amj2' => [ // Expected 'amj', // Provided '2022/01/01' ], 'jma_sur' => [ // Expected 'jma', // Provided '31-10-2022' ], 'mja_sur' => [ // Expected 'mja', // Provided '10-31-2022' ], 'on_sait_pas' => [ // Expected '', // Provided '10-10-2022', 'jma' ], ]; } /** * @dataProvider dataVerifierDateFormatAutodection */ public function testVerifierDateFormatAutodection($expected, $input, $defaut='') { $erreurs = ''; $actual = verifier_date_format_autodection($input, $defaut); $this->assertEquals($expected, $actual); } }