Skip to content

Commit

Permalink
Merge branch '6.2' into 6.3
Browse files Browse the repository at this point in the history
* 6.2:
  [Validator] Add missing validator translations in Polish language
  [HttpClient] Fix encoding some characters in query strings
  [SecurityBundle] Remove last usages of tag `security.remember_me_aware`
  [VarDumper] Dumping DateTime throws error if getTimezone is false
  Only update autoload_runtime.php when it changed
  [Intl] Update the ICU data to 73.2
  [HttpClient] Force int conversion for floated multiplier for GenericRetryStrategy
  [FrameworkBundle] Ignore missing directories in about command
  Revert "[Messenger] Respect `isRetryable` decision of the retry strategy when deciding if failed message should be re-delivered"
  [Validator][Translator] Fix xlf files for en & fr translations. Bug introduced by #50590
  Add missing EN and FR translations for newest constraints
  • Loading branch information
nicolas-grekas committed Jun 21, 2023
2 parents 90caf9f + facbf30 commit c81268d
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 1 deletion.
2 changes: 1 addition & 1 deletion Caster/DateCaster.php
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ class DateCaster
public static function castDateTime(\DateTimeInterface $d, array $a, Stub $stub, bool $isNested, int $filter)
{
$prefix = Caster::PREFIX_VIRTUAL;
$location = $d->getTimezone()->getLocation();
$location = $d->getTimezone() ? $d->getTimezone()->getLocation() : null;
$fromNow = (new \DateTimeImmutable())->diff($d);

$title = $d->format('l, F j, Y')
Expand Down
54 changes: 54 additions & 0 deletions Tests/Caster/DateCasterTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,52 @@ public static function provideDateTimes()
];
}

/**
* @dataProvider provideNoTimezoneDateTimes
*/
public function testCastDateTimeNoTimezone($time, $xDate, $xInfos)
{
$stub = new Stub();
$date = new NoTimezoneDate($time);
$cast = DateCaster::castDateTime($date, Caster::castObject($date, \DateTime::class), $stub, false, 0);

$xDump = <<<EODUMP
array:1 [
"\\x00~\\x00date" => $xDate
]
EODUMP;

$this->assertDumpEquals($xDump, $cast);

$xDump = <<<EODUMP
Symfony\Component\VarDumper\Caster\ConstStub {
+type: 1
+class: "$xDate"
+value: "%A$xInfos%A"
+cut: 0
+handle: 0
+refCount: 0
+position: 0
+attr: []
}
EODUMP;

$this->assertDumpMatchesFormat($xDump, $cast["\0~\0date"]);
}

public static function provideNoTimezoneDateTimes()
{
return [
['2017-04-30 00:00:00.000000', '2017-04-30 00:00:00.0 +00:00', 'Sunday, April 30, 2017'],
['2017-04-30 00:00:00.100000', '2017-04-30 00:00:00.100 +00:00', 'Sunday, April 30, 2017'],
['2017-04-30 00:00:00.120000', '2017-04-30 00:00:00.120 +00:00', 'Sunday, April 30, 2017'],
['2017-04-30 00:00:00.123000', '2017-04-30 00:00:00.123 +00:00', 'Sunday, April 30, 2017'],
['2017-04-30 00:00:00.123400', '2017-04-30 00:00:00.123400 +00:00', 'Sunday, April 30, 2017'],
['2017-04-30 00:00:00.123450', '2017-04-30 00:00:00.123450 +00:00', 'Sunday, April 30, 2017'],
['2017-04-30 00:00:00.123456', '2017-04-30 00:00:00.123456 +00:00', 'Sunday, April 30, 2017'],
];
}

public function testCastDateTimeWithAdditionalChildProperty()
{
$stub = new Stub();
Expand Down Expand Up @@ -423,3 +469,11 @@ private function createInterval($intervalSpec, $ms, $invert)
return $interval;
}
}

class NoTimezoneDate extends \DateTime
{
public function getTimezone(): \DateTimeZone|false
{
return false;
}
}

0 comments on commit c81268d

Please sign in to comment.