From 0533c1b40faae44c90e99e8522b8e08f2255379f Mon Sep 17 00:00:00 2001 From: Bernhard Schussek Date: Sat, 28 Jan 2012 14:21:37 +0100 Subject: [PATCH] [Form] Fixed: IntegerToLocalizedStringTransformer does not accept "NaN" as valid number anymore --- .../IntegerToLocalizedStringTransformer.php | 4 ++++ ...ntegerToLocalizedStringTransformerTest.php | 20 +++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/src/Symfony/Component/Form/Extension/Core/DataTransformer/IntegerToLocalizedStringTransformer.php b/src/Symfony/Component/Form/Extension/Core/DataTransformer/IntegerToLocalizedStringTransformer.php index 6e0877dade..2e4a734ac2 100644 --- a/src/Symfony/Component/Form/Extension/Core/DataTransformer/IntegerToLocalizedStringTransformer.php +++ b/src/Symfony/Component/Form/Extension/Core/DataTransformer/IntegerToLocalizedStringTransformer.php @@ -35,6 +35,10 @@ class IntegerToLocalizedStringTransformer extends NumberToLocalizedStringTransfo return null; } + if ('NaN' === $value) { + throw new TransformationFailedException('"NaN" is not a valid integer'); + } + $formatter = $this->getNumberFormatter(); $value = $formatter->parse( $value, diff --git a/tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/IntegerToLocalizedStringTransformerTest.php b/tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/IntegerToLocalizedStringTransformerTest.php index ac4512808d..e04b3ad12b 100644 --- a/tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/IntegerToLocalizedStringTransformerTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/IntegerToLocalizedStringTransformerTest.php @@ -70,4 +70,24 @@ class IntegerToLocalizedStringTransformerTest extends LocalizedTestCase $transformer->reverseTransform('foo'); } + + /** + * @expectedException Symfony\Component\Form\Exception\TransformationFailedException + */ + public function testReverseTransformDisallowsNaN() + { + $transformer = new IntegerToLocalizedStringTransformer(); + + $transformer->reverseTransform('NaN'); + } + + /** + * @expectedException Symfony\Component\Form\Exception\TransformationFailedException + */ + public function testReverseTransformDisallowsNaN2() + { + $transformer = new IntegerToLocalizedStringTransformer(); + + $transformer->reverseTransform('nan'); + } }