8000 Fix timezone influenced tests · symfony/symfony@40981b7 · GitHub
[go: up one dir, main page]

Skip to content

Commit 40981b7

Browse files
committed
Fix timezone influenced tests
1 parent 24304ad commit 40981b7

File tree

1 file changed

+42
-7
lines changed

1 file changed

+42
-7
lines changed

src/Symfony/Component/HttpKernel/Tests/Controller/ArgumentResolver/DateTimeValueResolverTest.php

Lines changed: 42 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,15 @@
2020

2121
class DateTimeValueResolverTest extends TestCase
2222
{
23+
private $defaultTimezone;
24+
25+
public function getTimeZones()
26+
{
27+
yield ['UTC'];
28+
yield ['Etc/GMT+9'];
29+
yield ['Etc/GMT-14'];
30+
}
31+
2332
public function testSupports()
2433
{
2534
$resolver = new DateTimeValueResolver();
@@ -37,12 +46,16 @@ public function testSupports()
3746
$this->assertFalse($resolver->supports($request, $argument));
3847
}
3948

40-
public function testFullDate()
49+
/**
50+
* @dataProvider getTimeZones
51+
*/
52+
public function testFullDate(string $timezone)
4153
{
54+
date_default_timezone_set($timezone);
4255
$resolver = new DateTimeValueResolver();
4356

4457
$argument = new ArgumentMetadata('dummy', \DateTime::class, false, false, null);
45-
$request = self::requestWithAttributes(['dummy' => '2012-07-21 00:00:00']);
58+
$request = self::requestWithAttributes(['dummy' => '2012-07-21 00:00:00+0000']);
4659

4760
/** @var \Generator $results */
4861
$results = $resolver->resolve($request, $argument);
@@ -53,8 +66,12 @@ public function testFullDate()
5366
$this->assertEquals('2012-07-21', $results[0]->format('Y-m-d'));
5467
}
5568

56-
public function testUnixTimestamp()
69+
/**
70+
* @dataProvider getTimeZones
71+
*/
72+
public function testUnixTimestamp(string $timezone)
5773
{
74+
date_default_timezone_set($timezone);
5875
$resolver = new DateTimeValueResolver();
5976

6077
$argument = new ArgumentMetadata('dummy', \DateTime::class, false, false, null);
@@ -84,12 +101,16 @@ public function testNullableWithEmptyAttribute()
84101
$this->assertNull($results[0]);
85102
}
86103

87-
public function testCustomClass()
104+
/**
105+
* @dataProvider getTimeZones
106+
*/
107+
public function testCustomClass(string $timezone)
88108
{
109+
date_default_timezone_set($timezone);
89110
$resolver = new DateTimeValueResolver();
90111

91112
$argument = new ArgumentMetadata('dummy', FooDateTime::class, false, false, null);
92-
$request = self::requestWithAttributes(['dummy' => '2016-09-08 00:00:00']);
113+
$request = self::requestWithAttributes(['dummy' => '2016-09-08 00:00:00+0000']);
93114

94115
/** @var \Generator $results */
95116
$results = $resolver->resolve($request, $argument);
@@ -100,12 +121,16 @@ public function testCustomClass()
100121
$this->assertEquals('2016-09-08', $results[0]->format('Y-m-d'));
101122
}
102123

103-
public function testDateTimeImmutable()
124+
/**
125+
* @dataProvider getTimeZones
126+
*/
127+
public function testDateTimeImmutable(string $timezone)
104128
{
129+
date_default_timezone_set($timezone);
105130
$resolver = new DateTimeValueResolver();
106131

107132
$argument = new ArgumentMetadata('dummy', \DateTimeImmutable::class, false, false, null);
108-
$request = self::requestWithAttributes(['dummy' => '2016-09-08 00:00:00']);
133+
$request = self::requestWithAttributes(['dummy' => '2016-09-08 00:00:00+0000']);
109134

110135
/** @var \Generator $results */
111136
$results = $resolver->resolve($request, $argument);
@@ -149,6 +174,16 @@ public function test404Exception(ArgumentMetadata $argument, Request $request)
149174
iterator_to_array($results);
150175
}
151176

177+
protected function setUp(): void
178+
{
179+
$this->defaultTimezone = date_default_timezone_get();
180+
}
181+
182+
protected function tearDown(): void
183+
{
184+
date_default_timezone_set($this->defaultTimezone);
185+
}
186+
152187
private static function requestWithAttributes(array $attributes): Request
153188
{
154189
$request = Request::create('/');

0 commit comments

Comments
 (0)
0