From 11b04af14ce64f9b40c8cbf121ee1ac71c069ac2 Mon Sep 17 00:00:00 2001 From: WedgeSama Date: Thu, 17 Oct 2013 09:16:34 +0200 Subject: [PATCH 1/4] Fix DateType for 32bits computers. Fix an issue due to 32bits machines, date can be only between 1902-2037. Simply not add date if false. Issues: #5227 #5554 --- src/Symfony/Component/Form/Extension/Core/Type/DateType.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/Form/Extension/Core/Type/DateType.php b/src/Symfony/Component/Form/Extension/Core/Type/DateType.php index 2ac2f0436ed27..607930dfe428b 100644 --- a/src/Symfony/Component/Form/Extension/Core/Type/DateType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/DateType.php @@ -300,7 +300,9 @@ private function listYears(array $years) $result = array(); foreach ($years as $year) { - $result[$year] = gmmktime(0, 0, 0, 6, 15, $year); + if(($y = gmmktime(0, 0, 0, 6, 15, $year)) !== false) { + $result[$year] = $y; + } } return $result; From 1616f515d520bba682b24a76bf1add37999d7809 Mon Sep 17 00:00:00 2001 From: WedgeSama Date: Thu, 17 Oct 2013 11:01:14 +0200 Subject: [PATCH 2/4] Fix DateType for 32bits computers, cs Tobion --- src/Symfony/Component/Form/Extension/Core/Type/DateType.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Component/Form/Extension/Core/Type/DateType.php b/src/Symfony/Component/Form/Extension/Core/Type/DateType.php index 607930dfe428b..f97cdcc3bb947 100644 --- a/src/Symfony/Component/Form/Extension/Core/Type/DateType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/DateType.php @@ -300,7 +300,7 @@ private function listYears(array $years) $result = array(); foreach ($years as $year) { - if(($y = gmmktime(0, 0, 0, 6, 15, $year)) !== false) { + if(false !== $y = gmmktime(0, 0, 0, 6, 15, $year)) { $result[$year] = $y; } } From e24c970313255dd223af83fea9f09c45e61a806d Mon Sep 17 00:00:00 2001 From: WedgeSama Date: Thu, 14 Nov 2013 15:19:52 +0100 Subject: [PATCH 3/4] Add a test case to DateTypeTest Test case to check years on 32bits machine. --- .../Form/Extension/Core/Type/DateType.php | 2 +- .../Extension/Core/Type/DateTypeTest.php | 21 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/Form/Extension/Core/Type/DateType.php b/src/Symfony/Component/Form/Extension/Core/Type/DateType.php index f97cdcc3bb947..3e3f5b185a465 100644 --- a/src/Symfony/Component/Form/Extension/Core/Type/DateType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/DateType.php @@ -300,7 +300,7 @@ private function listYears(array $years) $result = array(); foreach ($years as $year) { - if(false !== $y = gmmktime(0, 0, 0, 6, 15, $year)) { + if (false !== $y = gmmktime(0, 0, 0, 6, 15, $year)) { $result[$year] = $y; } } 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 7c71b1a033a6f..3fe7b8b5bf35f 100644 --- a/src/Symfony/Component/Form/Tests/Extension/Core/Type/DateTypeTest.php +++ b/src/Symfony/Component/Form/Tests/Extension/Core/Type/DateTypeTest.php @@ -774,4 +774,25 @@ public function testDayErrorsBubbleUp($widget) $this->assertSame(array(), $form['day']->getErrors()); $this->assertSame(array($error), $form->getErrors()); } + + public function testYearsFor32BitsMachines() + { + if (4 !== PHP_INT_SIZE) { + $testCase->markTestSkipped( + 'PHP must be compiled in 32 bit mode to run this test'); + } + + $form = $this->factory->create('date', null, array( + 'years' => range(1900, 2040), + )); + + $view = $form->createView(); + + $listChoices = array(); + foreach(range(1902, 2037) as $y) { + $listChoices[] = new ChoiceView($y, $y, $y); + } + + $this->assertEquals($listChoices, $view['year']->vars['choices']); + } } From 5925e037200208d600bf814205d1444e85a9905b Mon Sep 17 00:00:00 2001 From: WedgeSama Date: Thu, 14 Nov 2013 16:27:13 +0100 Subject: [PATCH 4/4] Fix test case --- .../Component/Form/Tests/Extension/Core/Type/DateTypeTest.php | 2 +- 1 file changed, 1 insertion(+), 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 3fe7b8b5bf35f..8674216fa2f4c 100644 --- a/src/Symfony/Component/Form/Tests/Extension/Core/Type/DateTypeTest.php +++ b/src/Symfony/Component/Form/Tests/Extension/Core/Type/DateTypeTest.php @@ -778,7 +778,7 @@ public function testDayErrorsBubbleUp($widget) public function testYearsFor32BitsMachines() { if (4 !== PHP_INT_SIZE) { - $testCase->markTestSkipped( + $this->markTestSkipped( 'PHP must be compiled in 32 bit mode to run this test'); } pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy