Skip to content

Commit f2268ed

Browse files
committed
Fix timezone attribute handling to store timezone name instead of object
1 parent e801de6 commit f2268ed

2 files changed

Lines changed: 7 additions & 2 deletions

File tree

src/EventListener/TimezoneListener.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,14 +48,14 @@ private function setTimezone(Request $request): void
4848
if ($timezone = $request->attributes->get('_timezone')) {
4949
$this->timezoneManager->setTimezone($timezone);
5050
} else {
51-
$request->attributes->set('_timezone', $this->timezoneManager->getTimezone());
51+
$request->attributes->set('_timezone', $this->timezoneManager->getTimezone()->getName());
5252
}
5353

5454
}
5555

5656
private function setRouterContext(Request $request): void
5757
{
58-
$this->router?->getContext()->setParameter('_timezone', $this->timezoneManager->getTimezone());
58+
$this->router?->getContext()->setParameter('_timezone', $this->timezoneManager->getTimezone()->getName());
5959
}
6060

6161
public static function getSubscribedEvents(): array

tests/EventListener/TimezoneListenerTest.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,13 @@ public function testDefaultTimezone(): void
3434

3535
// Act
3636
$client->request('GET', '/');
37+
$request = $client->getRequest();
3738
$response = $client->getResponse();
3839

3940
// Assert
4041
self::assertResponseStatusCodeSame(200, 'The response is not successful.');
4142
self::assertSame('["Asia\/Tokyo"]', $response->getContent(), 'The timezone is not set correctly.');
43+
self::assertSame('Asia/Tokyo', $request->attributes->get('_timezone'));
4244
}
4345

4446
public function testOverrideDefaultTimezone(): void
@@ -48,10 +50,13 @@ public function testOverrideDefaultTimezone(): void
4850

4951
// Act
5052
$client->request('GET', '/override');
53+
$request = $client->getRequest();
5154
$response = $client->getResponse();
5255

5356
// Assert
5457
self::assertResponseStatusCodeSame(200, 'The response is not successful.');
5558
self::assertSame('["Europe\/Berlin"]', $response->getContent(), 'The timezone is not set correctly.');
59+
self::assertSame('Europe/Berlin', $request->attributes->get('_timezone'));
60+
5661
}
5762
}

0 commit comments

Comments
 (0)