From 9a4e22efe791994f829ccdea31c4c775401561bc Mon Sep 17 00:00:00 2001 From: Bernhard Schussek Date: Thu, 2 Feb 2012 12:04:25 +0100 Subject: [PATCH] [Form] Disallowed infinity in NumberToLocalizedStringTransformer --- .../NumberToLocalizedStringTransformer.php | 4 +++ ...ntegerToLocalizedStringTransformerTest.php | 20 +++++++++++++ ...NumberToLocalizedStringTransformerTest.php | 30 +++++++++++++++++++ 3 files changed, 54 insertions(+) diff --git a/src/Symfony/Component/Form/Extension/Core/DataTransformer/NumberToLocalizedStringTransformer.php b/src/Symfony/Component/Form/Extension/Core/DataTransformer/NumberToLocalizedStringTransformer.php index 4dd98789ed..f65606c95a 100644 --- a/src/Symfony/Component/Form/Extension/Core/DataTransformer/NumberToLocalizedStringTransformer.php +++ b/src/Symfony/Component/Form/Extension/Core/DataTransformer/NumberToLocalizedStringTransformer.php @@ -114,6 +114,10 @@ class NumberToLocalizedStringTransformer implements DataTransformerInterface throw new TransformationFailedException($formatter->getErrorMessage()); } + if ($value >= INF || $value <= -INF) { + throw new TransformationFailedException('I don\'t have a clear idea what infinity looks like'); + } + return $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 e04b3ad12b..9146e301cb 100644 --- a/tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/IntegerToLocalizedStringTransformerTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/IntegerToLocalizedStringTransformerTest.php @@ -90,4 +90,24 @@ class IntegerToLocalizedStringTransformerTest extends LocalizedTestCase $transformer->reverseTransform('nan'); } + + /** + * @expectedException Symfony\Component\Form\Exception\TransformationFailedException + */ + public function testReverseTransformDisallowsInfinity() + { + $transformer = new IntegerToLocalizedStringTransformer(); + + $transformer->reverseTransform('∞'); + } + + /** + * @expectedException Symfony\Component\Form\Exception\TransformationFailedException + */ + public function testReverseTransformDisallowsNegativeInfinity() + { + $transformer = new IntegerToLocalizedStringTransformer(); + + $transformer->reverseTransform('-∞'); + } } diff --git a/tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/NumberToLocalizedStringTransformerTest.php b/tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/NumberToLocalizedStringTransformerTest.php index d00aa599a1..b86d180f45 100644 --- a/tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/NumberToLocalizedStringTransformerTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/NumberToLocalizedStringTransformerTest.php @@ -144,4 +144,34 @@ class NumberToLocalizedStringTransformerTest extends LocalizedTestCase $transformer->reverseTransform('nan'); } + + /** + * @expectedException Symfony\Component\Form\Exception\TransformationFailedException + */ + public function testReverseTransformDisallowsInfinity() + { + $transformer = new NumberToLocalizedStringTransformer(); + + $transformer->reverseTransform('∞'); + } + + /** + * @expectedException Symfony\Component\Form\Exception\TransformationFailedException + */ + public function testReverseTransformDisallowsInfinity2() + { + $transformer = new NumberToLocalizedStringTransformer(); + + $transformer->reverseTransform('∞,123'); + } + + /** + * @expectedException Symfony\Component\Form\Exception\TransformationFailedException + */ + public function testReverseTransformDisallowsNegativeInfinity() + { + $transformer = new NumberToLocalizedStringTransformer(); + + $transformer->reverseTransform('-∞'); + } }