|
@@ -12,9 +12,11 @@
|
|
namespace Symfony\Tests\Component\Form\Extension\Validator\Validator;
|
|
namespace Symfony\Tests\Component\Form\Extension\Validator\Validator;
|
|
|
|
|
|
use Symfony\Component\Form\FormBuilder;
|
|
use Symfony\Component\Form\FormBuilder;
|
|
|
|
+use Symfony\Component\Form\CallbackTransformer;
|
|
use Symfony\Component\Form\FormError;
|
|
use Symfony\Component\Form\FormError;
|
|
use Symfony\Component\Form\Util\PropertyPath;
|
|
use Symfony\Component\Form\Util\PropertyPath;
|
|
use Symfony\Component\Form\Extension\Validator\Validator\DelegatingValidator;
|
|
use Symfony\Component\Form\Extension\Validator\Validator\DelegatingValidator;
|
|
|
|
+use Symfony\Component\Form\Exception\TransformationFailedException;
|
|
use Symfony\Component\Validator\ConstraintViolation;
|
|
use Symfony\Component\Validator\ConstraintViolation;
|
|
use Symfony\Component\Validator\ExecutionContext;
|
|
use Symfony\Component\Validator\ExecutionContext;
|
|
|
|
|
|
@@ -85,6 +87,24 @@ class DelegatingValidatorTest extends \PHPUnit_Framework_TestCase
|
|
return $this->getBuilder($name, $propertyPath)->getForm();
|
|
return $this->getBuilder($name, $propertyPath)->getForm();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ protected function getNonSynchronizedForm()
|
|
|
|
+ {
|
|
|
|
+ $form = $this->getBuilder()
|
|
|
|
+ ->appendClientTransformer(new CallbackTransformer(
|
|
|
|
+ function ($normValue) {
|
|
|
|
+ return $normValue;
|
|
|
|
+ },
|
|
|
|
+ function () {
|
|
|
|
+ throw new TransformationFailedException('Failed');
|
|
|
|
+ }
|
|
|
|
+ ))
|
|
|
|
+ ->getForm();
|
|
|
|
+
|
|
|
|
+ $form->bind('foobar');
|
|
|
|
+
|
|
|
|
+ return $form;
|
|
|
|
+ }
|
|
|
|
+
|
|
protected function getMockForm()
|
|
protected function getMockForm()
|
|
{
|
|
{
|
|
return $this->getMock('Symfony\Tests\Component\Form\FormInterface');
|
|
return $this->getMock('Symfony\Tests\Component\Form\FormInterface');
|
|
@@ -118,6 +138,21 @@ class DelegatingValidatorTest extends \PHPUnit_Framework_TestCase
|
|
$this->assertEquals(array($this->getFormError()), $form->getErrors());
|
|
$this->assertEquals(array($this->getFormError()), $form->getErrors());
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ public function testNoFormErrorsOnNonSynchronizedForm()
|
|
|
|
+ {
|
|
|
|
+ $form = $this->getNonSynchronizedForm();
|
|
|
|
+
|
|
|
|
+ $this->delegate->expects($this->once())
|
|
|
|
+ ->method('validate')
|
|
|
|
+ ->will($this->returnValue(array(
|
|
|
|
+ $this->getConstraintViolation('constrainedProp')
|
|
|
|
+ )));
|
|
|
|
+
|
|
|
|
+ $this->validator->validate($form);
|
|
|
|
+
|
|
|
|
+ $this->assertEquals(array(), $form->getErrors());
|
|
|
|
+ }
|
|
|
|
+
|
|
public function testFormErrorsOnChild()
|
|
public function testFormErrorsOnChild()
|
|
{
|
|
{
|
|
$parent = $this->getForm();
|
|
$parent = $this->getForm();
|