Skip to content
Snippets Groups Projects
Commit d075ae6e authored by Benni Mack's avatar Benni Mack Committed by Christian Kuhn
Browse files

[TASK] Add tests for Extbase DateTimeConverter

Some older PHP versions could not handle DateTime::createFromFormat()
with negative integers.

This change adds tests to show that this actually works.

Resolves: #73637
Releases: master, 10.4
Change-Id: Ief4112bee6d8fc95fa46dc84cb0cfc6b4a3faff1
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/65834


Tested-by: default avatarTYPO3com <noreply@typo3.com>
Tested-by: default avatarAlexander Schnitzler <git@alexanderschnitzler.de>
Tested-by: default avatarOliver Bartsch <bo@cedev.de>
Tested-by: default avatarChristian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: default avatarAlexander Schnitzler <git@alexanderschnitzler.de>
Reviewed-by: default avatarOliver Bartsch <bo@cedev.de>
Reviewed-by: default avatarChristian Kuhn <lolli@schwarzbu.ch>
parent c4b2283f
Branches
Tags
No related merge requests found
...@@ -371,26 +371,28 @@ class DateTimeConverterTest extends UnitTestCase ...@@ -371,26 +371,28 @@ class DateTimeConverterTest extends UnitTestCase
public function convertFromArrayDataProvider() public function convertFromArrayDataProvider()
{ {
return [ return [
[['date' => '2005-08-15T15:52:01+01:00'], true], [['date' => '2005-08-15T15:52:01+01:00'], true, '2005-08-15T15:52:01+01:00'],
[['date' => '1308174051', 'dateFormat' => ''], false], [['date' => '1308174051', 'dateFormat' => ''], false, null],
[['date' => '13-12-1980', 'dateFormat' => 'd.m.Y'], false], [['date' => '13-12-1980', 'dateFormat' => 'd.m.Y'], false, null],
[['date' => '1308174051', 'dateFormat' => 'Y-m-d'], false], [['date' => '1308174051', 'dateFormat' => 'Y-m-d'], false, null],
[['date' => '12:13', 'dateFormat' => 'H:i'], true], [['date' => '12:13', 'dateFormat' => 'H:i'], true, null],
[['date' => '13.12.1980', 'dateFormat' => 'd.m.Y'], true], [['date' => '13.12.1980', 'dateFormat' => 'd.m.Y'], true, null],
[['date' => '2005-08-15T15:52:01+00:00', 'dateFormat' => ''], true], [['date' => '2005-08-15T15:52:01+00:00', 'dateFormat' => ''], true, '2005-08-15T15:52:01+00:00'],
[['date' => '2005-08-15T15:52:01+00:00', 'dateFormat' => \DateTime::ATOM], true], [['date' => '2005-08-15T15:52:01+00:00', 'dateFormat' => \DateTime::ATOM], true, '2005-08-15T15:52:01+00:00'],
[['date' => '1308174051', 'dateFormat' => 'U'], true], [['date' => '1308174051', 'dateFormat' => 'U'], true, '2011-06-15T21:40:51+00:00'],
[['date' => 1308174051, 'dateFormat' => 'U'], true], [['date' => 1308174051, 'dateFormat' => 'U'], true, '2011-06-15T21:40:51+00:00'],
[['date' => -1308174051, 'dateFormat' => 'U'], true, '1928-07-19T02:19:09+00:00'],
]; ];
} }
/** /**
* @param array $source the array to be converted * @param array $source the array to be converted
* @param bool $isValid TRUE if the conversion is expected to be successful, otherwise FALSE * @param bool $isValid TRUE if the conversion is expected to be successful, otherwise FALSE
* @param string|null $expectedResult
* @test * @test
* @dataProvider convertFromArrayDataProvider * @dataProvider convertFromArrayDataProvider
*/ */
public function convertFromArrayTests(array $source, $isValid) public function convertFromArrayTests(array $source, $isValid, ?string $expectedResult)
{ {
$dateFormat = isset($source['dateFormat']) && $source['dateFormat'] !== '' ? $source['dateFormat'] : null; $dateFormat = isset($source['dateFormat']) && $source['dateFormat'] !== '' ? $source['dateFormat'] : null;
if ($dateFormat !== null) { if ($dateFormat !== null) {
...@@ -416,6 +418,9 @@ class DateTimeConverterTest extends UnitTestCase ...@@ -416,6 +418,9 @@ class DateTimeConverterTest extends UnitTestCase
} }
$dateAsString = isset($source['date']) ? (string)$source['date'] : ''; $dateAsString = isset($source['date']) ? (string)$source['date'] : '';
self::assertSame($dateAsString, $date->format($dateFormat)); self::assertSame($dateAsString, $date->format($dateFormat));
if ($expectedResult !== null) {
self::assertSame($expectedResult, $date->format('c'));
}
} }
/** /**
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment