diff --git a/src/Symfony/Component/Form/Extension/Core/DataTransformer/UuidToStringTransformer.php b/src/Symfony/Component/Form/Extension/Core/DataTransformer/UuidToStringTransformer.php index 1ccf04b223c0..c4775bb12bca 100644 --- a/src/Symfony/Component/Form/Extension/Core/DataTransformer/UuidToStringTransformer.php +++ b/src/Symfony/Component/Form/Extension/Core/DataTransformer/UuidToStringTransformer.php @@ -64,12 +64,14 @@ public function reverseTransform($value) throw new TransformationFailedException('Expected a string.'); } + if (!Uuid::isValid($value)) { + throw new TransformationFailedException(sprintf('The value "%s" is not a valid UUID.', $value)); + } + try { - $uuid = new Uuid($value); + return Uuid::fromString($value); } catch (\InvalidArgumentException $e) { throw new TransformationFailedException(sprintf('The value "%s" is not a valid UUID.', $value), $e->getCode(), $e); } - - return $uuid; } } diff --git a/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/UuidToStringTransformerTest.php b/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/UuidToStringTransformerTest.php index f7a93beca8fb..cb4374535ed7 100644 --- a/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/UuidToStringTransformerTest.php +++ b/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/UuidToStringTransformerTest.php @@ -15,26 +15,15 @@ use Symfony\Component\Form\Exception\TransformationFailedException; use Symfony\Component\Form\Extension\Core\DataTransformer\UuidToStringTransformer; use Symfony\Component\Uid\Uuid; +use Symfony\Component\Uid\UuidV1; class UuidToStringTransformerTest extends TestCase { - public function provideValidUuid() - { - return [ - ['123e4567-e89b-12d3-a456-426655440000', new Uuid('123e4567-e89b-12d3-a456-426655440000')], - ]; - } - - /** - * @dataProvider provideValidUuid - */ - public function testTransform($output, $input) + public function testTransform() { $transformer = new UuidToStringTransformer(); - $input = new Uuid($input); - - $this->assertEquals($output, $transformer->transform($input)); + $this->assertEquals('123e4567-e89b-12d3-a456-426655440000', $transformer->transform(new UuidV1('123e4567-e89b-12d3-a456-426655440000'))); } public function testTransformEmpty() @@ -53,16 +42,11 @@ public function testTransformExpectsUuid() $transformer->transform('1234'); } - /** - * @dataProvider provideValidUuid - */ - public function testReverseTransform($input, $output) + public function testReverseTransform() { - $reverseTransformer = new UuidToStringTransformer(); - - $output = new Uuid($output); + $transformer = new UuidToStringTransformer(); - $this->assertEquals($output, $reverseTransformer->reverseTransform($input)); + $this->assertEquals(new UuidV1('123e4567-e89b-12d3-a456-426655440000'), $transformer->reverseTransform('123e4567-e89b-12d3-a456-426655440000')); } public function testReverseTransformEmpty() @@ -78,7 +62,7 @@ public function testReverseTransformExpectsString() $this->expectException(TransformationFailedException::class); - $reverseTransformer->reverseTransform(1234); + $reverseTransformer->reverseTransform(Uuid::fromString('123e4567-e89b-12d3-a456-426655440000')->toBase32()); } public function testReverseTransformExpectsValidUuidString()
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: