diff --git a/src/Symfony/Component/Form/Extension/Validator/ValidatorExtension.php b/src/Symfony/Component/Form/Extension/Validator/ValidatorExtension.php index a781dfbb0077..94b6ea699d84 100644 --- a/src/Symfony/Component/Form/Extension/Validator/ValidatorExtension.php +++ b/src/Symfony/Component/Form/Extension/Validator/ValidatorExtension.php @@ -14,6 +14,8 @@ use Symfony\Component\Form\Extension\Validator\Type; use Symfony\Component\Form\AbstractExtension; use Symfony\Component\Validator\ValidatorInterface; +use Symfony\Component\Validator\Constraints\Callback; +use Symfony\Component\Validator\Constraints\Valid; class ValidatorExtension extends AbstractExtension { @@ -22,6 +24,10 @@ class ValidatorExtension extends AbstractExtension public function __construct(ValidatorInterface $validator) { $this->validator = $validator; + + $metadata = $this->validator->getMetadataFactory()->getClassMetadata('Symfony\Component\Form\Form'); + $metadata->addConstraint(new Callback(array(array('Symfony\Component\Form\Extension\Validator\Validator\DelegatingValidator', 'validateFormData')))); + $metadata->addPropertyConstraint('children', new Valid()); } public function loadTypeGuesser() diff --git a/tests/Symfony/Tests/Component/Form/Extension/Validator/Type/TypeTestCase.php b/tests/Symfony/Tests/Component/Form/Extension/Validator/Type/TypeTestCase.php index 478c0422606d..8fc31e06802f 100644 --- a/tests/Symfony/Tests/Component/Form/Extension/Validator/Type/TypeTestCase.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Validator/Type/TypeTestCase.php @@ -21,6 +21,10 @@ abstract class TypeTestCase extends BaseTestCase protected function setUp() { $this->validator = $this->getMock('Symfony\Component\Validator\ValidatorInterface'); + $metadataFactory = $this->getMock('Symfony\Component\Validator\Mapping\ClassMetadataFactoryInterface'); + $this->validator->expects($this->once())->method('getMetadataFactory')->will($this->returnValue($metadataFactory)); + $metadata = $this->getMockBuilder('Symfony\Component\Validator\Mapping\ClassMetadata')->disableOriginalConstructor()->getMock(); + $metadataFactory->expects($this->once())->method('getClassMetadata')->will($this->returnValue($metadata)); parent::setUp(); }