From 9e7414159ce8c7013a0f4de827acfc97266e81f6 Mon Sep 17 00:00:00 2001 From: Daniel Kay Date: Fri, 12 Oct 2018 16:56:58 +0100 Subject: [PATCH] add missing double-quotes to extra_fields output message --- .../Validator/Constraints/FormValidator.php | 4 ++-- .../Constraints/FormValidatorTest.php | 23 ++++++++++++++++++- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/Symfony/Component/Form/Extension/Validator/Constraints/FormValidator.php b/src/Symfony/Component/Form/Extension/Validator/Constraints/FormValidator.php index fc6f2abe51..ea56f0d47c 100644 --- a/src/Symfony/Component/Form/Extension/Validator/Constraints/FormValidator.php +++ b/src/Symfony/Component/Form/Extension/Validator/Constraints/FormValidator.php @@ -162,13 +162,13 @@ class FormValidator extends ConstraintValidator if ($this->context instanceof ExecutionContextInterface) { $this->context->setConstraint($constraint); $this->context->buildViolation($config->getOption('extra_fields_message')) - ->setParameter('{{ extra_fields }}', implode('", "', array_keys($form->getExtraData()))) + ->setParameter('{{ extra_fields }}', '"'.implode('", "', array_keys($form->getExtraData())).'"') ->setInvalidValue($form->getExtraData()) ->setCode(Form::NO_SUCH_FIELD_ERROR) ->addViolation(); } else { $this->buildViolation($config->getOption('extra_fields_message')) - ->setParameter('{{ extra_fields }}', implode('", "', array_keys($form->getExtraData()))) + ->setParameter('{{ extra_fields }}', '"'.implode('", "', array_keys($form->getExtraData())).'"') ->setInvalidValue($form->getExtraData()) ->setCode(Form::NO_SUCH_FIELD_ERROR) ->addViolation(); diff --git a/src/Symfony/Component/Form/Tests/Extension/Validator/Constraints/FormValidatorTest.php b/src/Symfony/Component/Form/Tests/Extension/Validator/Constraints/FormValidatorTest.php index e3885735e4..a508a1687f 100644 --- a/src/Symfony/Component/Form/Tests/Extension/Validator/Constraints/FormValidatorTest.php +++ b/src/Symfony/Component/Form/Tests/Extension/Validator/Constraints/FormValidatorTest.php @@ -620,12 +620,33 @@ class FormValidatorTest extends AbstractConstraintValidatorTest $this->validator->validate($form, new Form()); $this->buildViolation('Extra!') - ->setParameter('{{ extra_fields }}', 'foo') + ->setParameter('{{ extra_fields }}', '"foo"') ->setInvalidValue(array('foo' => 'bar')) ->setCode(Form::NO_SUCH_FIELD_ERROR) ->assertRaised(); } + public function testViolationFormatIfMultipleExtraFields() + { + $form = $this->getBuilder('parent', null, array('extra_fields_message' => 'Extra!')) + ->setCompound(true) + ->setDataMapper($this->getDataMapper()) + ->add($this->getBuilder('child')) + ->getForm(); + + $form->submit(array('foo' => 'bar', 'baz' => 'qux', 'quux' => 'quuz')); + + $this->expectNoValidate(); + + $this->validator->validate($form, new Form()); + + $this->buildViolation('Extra!') + ->setParameter('{{ extra_fields }}', '"foo", "baz", "quux"') + ->setInvalidValue(array('foo' => 'bar', 'baz' => 'qux', 'quux' => 'quuz')) + ->setCode(Form::NO_SUCH_FIELD_ERROR) + ->assertRaised(); + } + public function testNoViolationIfAllowExtraData() { $context = $this->getMockExecutionContext();