Fix getOrigin
This commit is contained in:
parent
f47d9055bc
commit
01eac33540
@ -684,11 +684,11 @@ class Form implements \IteratorAggregate, FormInterface
|
||||
*/
|
||||
public function addError(FormError $error)
|
||||
{
|
||||
if ($this->parent && $this->config->getErrorBubbling()) {
|
||||
if (null === $error->getOrigin()) {
|
||||
$error->setOrigin($this);
|
||||
}
|
||||
if (null === $error->getOrigin()) {
|
||||
$error->setOrigin($this);
|
||||
}
|
||||
|
||||
if ($this->parent && $this->config->getErrorBubbling()) {
|
||||
$this->parent->addError($error);
|
||||
} else {
|
||||
$this->errors[] = $error;
|
||||
|
@ -329,9 +329,10 @@ abstract class AbstractRequestHandlerTest extends \PHPUnit_Framework_TestCase
|
||||
$this->requestHandler->handleRequest($form, $this->request);
|
||||
|
||||
if ($shouldFail) {
|
||||
$errors = array(new FormError($options['post_max_size_message'], null, $errorParams));
|
||||
$error = new FormError($options['post_max_size_message'], null, $errorParams);
|
||||
$error->setOrigin($form);
|
||||
|
||||
$this->assertEquals($errors, iterator_to_array($form->getErrors()));
|
||||
$this->assertEquals(array($error), iterator_to_array($form->getErrors()));
|
||||
$this->assertTrue($form->isSubmitted());
|
||||
} else {
|
||||
$this->assertCount(0, $form->getErrors());
|
||||
|
@ -393,8 +393,10 @@ class FormTypeCsrfExtensionTest extends TypeTestCase
|
||||
));
|
||||
|
||||
$errors = $form->getErrors();
|
||||
$expected = new FormError('[trans]Foobar[/trans]');
|
||||
$expected->setOrigin($form);
|
||||
|
||||
$this->assertGreaterThan(0, count($errors));
|
||||
$this->assertEquals(new FormError('[trans]Foobar[/trans]'), $errors[0]);
|
||||
$this->assertEquals($expected, $errors[0]);
|
||||
}
|
||||
}
|
||||
|
@ -319,7 +319,7 @@ class FormDataExtractorTest extends \PHPUnit_Framework_TestCase
|
||||
'norm' => "'Foobar'",
|
||||
),
|
||||
'errors' => array(
|
||||
array('message' => 'Invalid!', 'origin' => null, 'trace' => array()),
|
||||
array('message' => 'Invalid!', 'origin' => spl_object_hash($form), 'trace' => array()),
|
||||
),
|
||||
'synchronized' => 'true',
|
||||
), $this->dataExtractor->extractSubmittedData($form));
|
||||
@ -360,7 +360,7 @@ class FormDataExtractorTest extends \PHPUnit_Framework_TestCase
|
||||
'norm' => "'Foobar'",
|
||||
),
|
||||
'errors' => array(
|
||||
array('message' => 'Invalid!', 'origin' => null, 'trace' => array(
|
||||
array('message' => 'Invalid!', 'origin' => spl_object_hash($form), 'trace' => array(
|
||||
array(
|
||||
'class' => "'Exception'",
|
||||
'message' => "''",
|
||||
|
@ -15,6 +15,7 @@ use Symfony\Component\Form\Extension\Validator\ViolationMapper\ViolationMapper;
|
||||
use Symfony\Component\Form\Exception\TransformationFailedException;
|
||||
use Symfony\Component\Form\CallbackTransformer;
|
||||
use Symfony\Component\Form\Form;
|
||||
use Symfony\Component\Form\FormInterface;
|
||||
use Symfony\Component\Form\FormConfigBuilder;
|
||||
use Symfony\Component\Form\FormError;
|
||||
use Symfony\Component\PropertyAccess\PropertyPath;
|
||||
@ -110,9 +111,12 @@ class ViolationMapperTest extends \PHPUnit_Framework_TestCase
|
||||
/**
|
||||
* @return FormError
|
||||
*/
|
||||
protected function getFormError(ConstraintViolationInterface $violation)
|
||||
protected function getFormError(ConstraintViolationInterface $violation, FormInterface $form)
|
||||
{
|
||||
return new FormError($this->message, $this->messageTemplate, $this->params, null, $violation);
|
||||
$error = new FormError($this->message, $this->messageTemplate, $this->params, null, $violation);
|
||||
$error->setOrigin($form);
|
||||
|
||||
return $error;
|
||||
}
|
||||
|
||||
public function testMapToFormInheritingParentDataIfDataDoesNotMatch()
|
||||
@ -130,7 +134,7 @@ class ViolationMapperTest extends \PHPUnit_Framework_TestCase
|
||||
$this->mapper->mapViolation($violation, $parent);
|
||||
|
||||
$this->assertCount(0, $parent->getErrors(), $parent->getName().' should not have an error, but has one');
|
||||
$this->assertEquals(array($this->getFormError($violation)), iterator_to_array($child->getErrors()), $child->getName().' should have an error, but has none');
|
||||
$this->assertEquals(array($this->getFormError($violation, $child)), iterator_to_array($child->getErrors()), $child->getName().' should have an error, but has none');
|
||||
$this->assertCount(0, $grandChild->getErrors(), $grandChild->getName().' should not have an error, but has one');
|
||||
}
|
||||
|
||||
@ -159,7 +163,7 @@ class ViolationMapperTest extends \PHPUnit_Framework_TestCase
|
||||
$this->assertCount(0, $parent->getErrors(), $parent->getName().' should not have an error, but has one');
|
||||
$this->assertCount(0, $child->getErrors(), $child->getName().' should not have an error, but has one');
|
||||
$this->assertCount(0, $grandChild->getErrors(), $grandChild->getName().' should not have an error, but has one');
|
||||
$this->assertEquals(array($this->getFormError($violation)), iterator_to_array($grandGrandChild->getErrors()), $grandGrandChild->getName().' should have an error, but has none');
|
||||
$this->assertEquals(array($this->getFormError($violation, $grandGrandChild)), iterator_to_array($grandGrandChild->getErrors()), $grandGrandChild->getName().' should have an error, but has none');
|
||||
}
|
||||
|
||||
public function testAbortMappingIfNotSynchronized()
|
||||
@ -800,17 +804,17 @@ class ViolationMapperTest extends \PHPUnit_Framework_TestCase
|
||||
$this->mapper->mapViolation($violation, $parent);
|
||||
|
||||
if (self::LEVEL_0 === $target) {
|
||||
$this->assertEquals(array($this->getFormError($violation)), iterator_to_array($parent->getErrors()), $parent->getName().' should have an error, but has none');
|
||||
$this->assertEquals(array($this->getFormError($violation, $parent)), iterator_to_array($parent->getErrors()), $parent->getName().' should have an error, but has none');
|
||||
$this->assertCount(0, $child->getErrors(), $childName.' should not have an error, but has one');
|
||||
$this->assertCount(0, $grandChild->getErrors(), $grandChildName.' should not have an error, but has one');
|
||||
} elseif (self::LEVEL_1 === $target) {
|
||||
$this->assertCount(0, $parent->getErrors(), $parent->getName().' should not have an error, but has one');
|
||||
$this->assertEquals(array($this->getFormError($violation)), iterator_to_array($child->getErrors()), $childName.' should have an error, but has none');
|
||||
$this->assertEquals(array($this->getFormError($violation, $child)), iterator_to_array($child->getErrors()), $childName.' should have an error, but has none');
|
||||
$this->assertCount(0, $grandChild->getErrors(), $grandChildName.' should not have an error, but has one');
|
||||
} else {
|
||||
$this->assertCount(0, $parent->getErrors(), $parent->getName().' should not have an error, but has one');
|
||||
$this->assertCount(0, $child->getErrors(), $childName.' should not have an error, but has one');
|
||||
$this->assertEquals(array($this->getFormError($violation)), iterator_to_array($grandChild->getErrors()), $grandChildName.' should have an error, but has none');
|
||||
$this->assertEquals(array($this->getFormError($violation, $grandChild)), iterator_to_array($grandChild->getErrors()), $grandChildName.' should have an error, but has none');
|
||||
}
|
||||
}
|
||||
|
||||
@ -1274,17 +1278,17 @@ class ViolationMapperTest extends \PHPUnit_Framework_TestCase
|
||||
}
|
||||
|
||||
if (self::LEVEL_0 === $target) {
|
||||
$this->assertEquals(array($this->getFormError($violation)), iterator_to_array($parent->getErrors()), $parent->getName().' should have an error, but has none');
|
||||
$this->assertEquals(array($this->getFormError($violation, $parent)), iterator_to_array($parent->getErrors()), $parent->getName().' should have an error, but has none');
|
||||
$this->assertCount(0, $child->getErrors(), $childName.' should not have an error, but has one');
|
||||
$this->assertCount(0, $grandChild->getErrors(), $grandChildName.' should not have an error, but has one');
|
||||
} elseif (self::LEVEL_1 === $target) {
|
||||
$this->assertCount(0, $parent->getErrors(), $parent->getName().' should not have an error, but has one');
|
||||
$this->assertEquals(array($this->getFormError($violation)), iterator_to_array($child->getErrors()), $childName.' should have an error, but has none');
|
||||
$this->assertEquals(array($this->getFormError($violation, $child)), iterator_to_array($child->getErrors()), $childName.' should have an error, but has none');
|
||||
$this->assertCount(0, $grandChild->getErrors(), $grandChildName.' should not have an error, but has one');
|
||||
} else {
|
||||
$this->assertCount(0, $parent->getErrors(), $parent->getName().' should not have an error, but has one');
|
||||
$this->assertCount(0, $child->getErrors(), $childName.' should not have an error, but has one');
|
||||
$this->assertEquals(array($this->getFormError($violation)), iterator_to_array($grandChild->getErrors()), $grandChildName.' should have an error, but has none');
|
||||
$this->assertEquals(array($this->getFormError($violation, $grandChild)), iterator_to_array($grandChild->getErrors()), $grandChildName.' should have an error, but has none');
|
||||
}
|
||||
}
|
||||
|
||||
@ -1458,16 +1462,16 @@ class ViolationMapperTest extends \PHPUnit_Framework_TestCase
|
||||
|
||||
if (self::LEVEL_0 === $target) {
|
||||
$this->assertCount(0, $errorChild->getErrors(), $errorName.' should not have an error, but has one');
|
||||
$this->assertEquals(array($this->getFormError($violation)), iterator_to_array($parent->getErrors()), $parent->getName().' should have an error, but has none');
|
||||
$this->assertEquals(array($this->getFormError($violation, $parent)), iterator_to_array($parent->getErrors()), $parent->getName().' should have an error, but has none');
|
||||
$this->assertCount(0, $child->getErrors(), $childName.' should not have an error, but has one');
|
||||
$this->assertCount(0, $grandChild->getErrors(), $grandChildName.' should not have an error, but has one');
|
||||
} elseif (self::LEVEL_1 === $target) {
|
||||
$this->assertCount(0, $errorChild->getErrors(), $errorName.' should not have an error, but has one');
|
||||
$this->assertCount(0, $parent->getErrors(), $parent->getName().' should not have an error, but has one');
|
||||
$this->assertEquals(array($this->getFormError($violation)), iterator_to_array($child->getErrors()), $childName.' should have an error, but has none');
|
||||
$this->assertEquals(array($this->getFormError($violation, $child)), iterator_to_array($child->getErrors()), $childName.' should have an error, but has none');
|
||||
$this->assertCount(0, $grandChild->getErrors(), $grandChildName.' should not have an error, but has one');
|
||||
} elseif (self::LEVEL_1B === $target) {
|
||||
$this->assertEquals(array($this->getFormError($violation)), iterator_to_array($errorChild->getErrors()), $errorName.' should have an error, but has none');
|
||||
$this->assertEquals(array($this->getFormError($violation, $errorChild)), iterator_to_array($errorChild->getErrors()), $errorName.' should have an error, but has none');
|
||||
$this->assertCount(0, $parent->getErrors(), $parent->getName().' should not have an error, but has one');
|
||||
$this->assertCount(0, $child->getErrors(), $childName.' should not have an error, but has one');
|
||||
$this->assertCount(0, $grandChild->getErrors(), $grandChildName.' should not have an error, but has one');
|
||||
@ -1475,7 +1479,7 @@ class ViolationMapperTest extends \PHPUnit_Framework_TestCase
|
||||
$this->assertCount(0, $errorChild->getErrors(), $errorName.' should not have an error, but has one');
|
||||
$this->assertCount(0, $parent->getErrors(), $parent->getName().' should not have an error, but has one');
|
||||
$this->assertCount(0, $child->getErrors(), $childName.' should not have an error, but has one');
|
||||
$this->assertEquals(array($this->getFormError($violation)), iterator_to_array($grandChild->getErrors()), $grandChildName.' should have an error, but has none');
|
||||
$this->assertEquals(array($this->getFormError($violation, $grandChild)), iterator_to_array($grandChild->getErrors()), $grandChildName.' should have an error, but has none');
|
||||
}
|
||||
}
|
||||
|
||||
@ -1522,17 +1526,17 @@ class ViolationMapperTest extends \PHPUnit_Framework_TestCase
|
||||
$this->mapper->mapViolation($violation, $parent);
|
||||
|
||||
if (self::LEVEL_0 === $target) {
|
||||
$this->assertEquals(array($this->getFormError($violation)), iterator_to_array($parent->getErrors()), $parent->getName().' should have an error, but has none');
|
||||
$this->assertEquals(array($this->getFormError($violation, $parent)), iterator_to_array($parent->getErrors()), $parent->getName().' should have an error, but has none');
|
||||
$this->assertCount(0, $child->getErrors(), $childName.' should not have an error, but has one');
|
||||
$this->assertCount(0, $grandChild->getErrors(), $grandChildName.' should not have an error, but has one');
|
||||
} elseif (self::LEVEL_1 === $target) {
|
||||
$this->assertCount(0, $parent->getErrors(), $parent->getName().' should not have an error, but has one');
|
||||
$this->assertEquals(array($this->getFormError($violation)), iterator_to_array($child->getErrors()), $childName.' should have an error, but has none');
|
||||
$this->assertEquals(array($this->getFormError($violation, $child)), iterator_to_array($child->getErrors()), $childName.' should have an error, but has none');
|
||||
$this->assertCount(0, $grandChild->getErrors(), $grandChildName.' should not have an error, but has one');
|
||||
} else {
|
||||
$this->assertCount(0, $parent->getErrors(), $parent->getName().' should not have an error, but has one');
|
||||
$this->assertCount(0, $child->getErrors(), $childName.' should not have an error, but has one');
|
||||
$this->assertEquals(array($this->getFormError($violation)), iterator_to_array($grandChild->getErrors()), $grandChildName.' should have an error, but has none');
|
||||
$this->assertEquals(array($this->getFormError($violation, $grandChild)), iterator_to_array($grandChild->getErrors()), $grandChildName.' should have an error, but has none');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user