From f919793925cf6ab9d448f7ea6acc9ef55f7a5faf Mon Sep 17 00:00:00 2001 From: Will Donohoe Date: Thu, 4 Dec 2014 17:20:49 +1100 Subject: [PATCH] [Form] Add further timezone tests for date type --- .../Extension/Core/Type/DateTypeTest.php | 56 ++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/Form/Tests/Extension/Core/Type/DateTypeTest.php b/src/Symfony/Component/Form/Tests/Extension/Core/Type/DateTypeTest.php index 5ba37df1d0a50..255fe3a448485 100644 --- a/src/Symfony/Component/Form/Tests/Extension/Core/Type/DateTypeTest.php +++ b/src/Symfony/Component/Form/Tests/Extension/Core/Type/DateTypeTest.php @@ -355,7 +355,7 @@ public function testThrowExceptionIfDaysIsInvalid() )); } - public function testSetDataWithDifferentTimezoneDateTime() + public function testSetDataWithDifferentNegativeUTCTimezoneDateTime() { date_default_timezone_set('Pacific/Tahiti'); @@ -373,6 +373,60 @@ public function testSetDataWithDifferentTimezoneDateTime() $this->assertEquals('02.06.2010', $form->getViewData()); } + public function testSetDataWithDifferentPositiveUTCTimezoneDateTime() + { + date_default_timezone_set('Pacific/Tahiti'); + + $form = $this->factory->create('date', null, array( + 'format' => \IntlDateFormatter::MEDIUM, + 'input' => 'datetime', + 'widget' => 'single_text', + )); + + $dateTime = new \DateTime('2010-06-02 Australia/Melbourne'); + + $form->setData($dateTime); + + $this->assertDateTimeEquals($dateTime, $form->getData()); + $this->assertEquals('02.06.2010', $form->getViewData()); + } + + public function testSetDataWithSamePositiveUTCTimezoneDateTime() + { + date_default_timezone_set('Australia/Melbourne'); + + $form = $this->factory->create('date', null, array( + 'format' => \IntlDateFormatter::MEDIUM, + 'input' => 'datetime', + 'widget' => 'single_text', + )); + + $dateTime = new \DateTime('2010-06-02 Australia/Melbourne'); + + $form->setData($dateTime); + + $this->assertDateTimeEquals($dateTime, $form->getData()); + $this->assertEquals('02.06.2010', $form->getViewData()); + } + + public function testSetDataWithSameNegativeUTCTimezoneDateTime() + { + date_default_timezone_set('America/New_York'); + + $form = $this->factory->create('date', null, array( + 'format' => \IntlDateFormatter::MEDIUM, + 'input' => 'datetime', + 'widget' => 'single_text', + )); + + $dateTime = new \DateTime('2010-06-02 America/New_York'); + + $form->setData($dateTime); + + $this->assertDateTimeEquals($dateTime, $form->getData()); + $this->assertEquals('02.06.2010', $form->getViewData()); + } + public function testYearsOption() { $form = $this->factory->create('date', null, array(