From e92212ac132dfddfc0034e22cbb5afd904d1d8ad Mon Sep 17 00:00:00 2001 From: Kevin Dew Date: Tue, 22 May 2012 12:44:27 +0100 Subject: [PATCH] [Form] Added valid attribute to a FormView --- .../Form/Extension/Core/Type/FormType.php | 1 + .../Tests/Extension/Core/Type/FormTypeTest.php | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/src/Symfony/Component/Form/Extension/Core/Type/FormType.php b/src/Symfony/Component/Form/Extension/Core/Type/FormType.php index 44ae6dc7fb..3ce2d18bcd 100644 --- a/src/Symfony/Component/Form/Extension/Core/Type/FormType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/FormType.php @@ -110,6 +110,7 @@ class FormType extends AbstractType ->set('full_name', $fullName) ->set('read_only', $readOnly) ->set('errors', $form->getErrors()) + ->set('valid', $form->isBound() ? $form->isValid() : true) ->set('value', $form->getClientData()) ->set('disabled', $form->isDisabled()) ->set('required', $form->isRequired()) diff --git a/src/Symfony/Component/Form/Tests/Extension/Core/Type/FormTypeTest.php b/src/Symfony/Component/Form/Tests/Extension/Core/Type/FormTypeTest.php index 8aa7bba87d..4c9be8af24 100644 --- a/src/Symfony/Component/Form/Tests/Extension/Core/Type/FormTypeTest.php +++ b/src/Symfony/Component/Form/Tests/Extension/Core/Type/FormTypeTest.php @@ -16,6 +16,7 @@ use Symfony\Component\Form\Form; use Symfony\Component\Form\CallbackTransformer; use Symfony\Component\Form\Tests\Fixtures\Author; use Symfony\Component\Form\Tests\Fixtures\FixedDataTransformer; +use Symfony\Component\Form\FormError; class FormTest_AuthorWithoutRefSetter { @@ -604,4 +605,20 @@ class FormTypeTest extends TypeTestCase $this->assertEquals(new PropertyPath('foo'), $form->getPropertyPath()); $this->assertFalse($form->getConfig()->getMapped()); } + + public function testViewValidUnbound() + { + $form = $this->factory->create('form'); + $view = $form->createView(); + $this->assertTrue($view->get('valid')); + } + + public function testViewNotValidBound() + { + $form = $this->factory->create('form'); + $form->bind(array()); + $form->addError(new FormError('An error')); + $view = $form->createView(); + $this->assertFalse($view->get('valid')); + } }