From c342715679d0a372799689897dde5b36739f8b47 Mon Sep 17 00:00:00 2001 From: Bernhard Schussek Date: Thu, 15 Aug 2013 14:37:02 +0200 Subject: [PATCH] [Form] Fixed: Added "validation_groups" option to submit button --- .../Type/SubmitTypeValidatorExtension.php | 4 +- .../Type/BaseValidatorExtensionTest.php | 74 +++++++++++++++++++ .../Type/FormTypeValidatorExtensionTest.php | 61 ++------------- .../Type/SubmitTypeValidatorExtensionTest.php | 20 +++++ 4 files changed, 101 insertions(+), 58 deletions(-) create mode 100644 src/Symfony/Component/Form/Tests/Extension/Validator/Type/BaseValidatorExtensionTest.php create mode 100644 src/Symfony/Component/Form/Tests/Extension/Validator/Type/SubmitTypeValidatorExtensionTest.php diff --git a/src/Symfony/Component/Form/Extension/Validator/Type/SubmitTypeValidatorExtension.php b/src/Symfony/Component/Form/Extension/Validator/Type/SubmitTypeValidatorExtension.php index 5aad67fb3a..ff1c762ef0 100644 --- a/src/Symfony/Component/Form/Extension/Validator/Type/SubmitTypeValidatorExtension.php +++ b/src/Symfony/Component/Form/Extension/Validator/Type/SubmitTypeValidatorExtension.php @@ -11,12 +11,10 @@ namespace Symfony\Component\Form\Extension\Validator\Type; -use Symfony\Component\Form\AbstractTypeExtension; - /** * @author Bernhard Schussek */ -class SubmitTypeValidatorExtension extends AbstractTypeExtension +class SubmitTypeValidatorExtension extends BaseValidatorExtension { /** * {@inheritdoc} diff --git a/src/Symfony/Component/Form/Tests/Extension/Validator/Type/BaseValidatorExtensionTest.php b/src/Symfony/Component/Form/Tests/Extension/Validator/Type/BaseValidatorExtensionTest.php new file mode 100644 index 0000000000..fd437c50ea --- /dev/null +++ b/src/Symfony/Component/Form/Tests/Extension/Validator/Type/BaseValidatorExtensionTest.php @@ -0,0 +1,74 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Form\Tests\Extension\Validator\Type; + +use Symfony\Component\Form\Test\FormInterface; + +/** + * @author Bernhard Schussek + */ +abstract class BaseValidatorExtensionTest extends TypeTestCase +{ + public function testValidationGroupNullByDefault() + { + $form = $this->createForm(); + + $this->assertNull($form->getConfig()->getOption('validation_groups')); + } + + public function testValidationGroupsTransformedToArray() + { + $form = $this->createForm(array( + 'validation_groups' => 'group', + )); + + $this->assertEquals(array('group'), $form->getConfig()->getOption('validation_groups')); + } + + public function testValidationGroupsCanBeSetToArray() + { + $form = $this->createForm(array( + 'validation_groups' => array('group1', 'group2'), + )); + + $this->assertEquals(array('group1', 'group2'), $form->getConfig()->getOption('validation_groups')); + } + + public function testValidationGroupsCanBeSetToFalse() + { + $form = $this->createForm(array( + 'validation_groups' => false, + )); + + $this->assertEquals(array(), $form->getConfig()->getOption('validation_groups')); + } + + public function testValidationGroupsCanBeSetToCallback() + { + $form = $this->createForm(array( + 'validation_groups' => array($this, 'testValidationGroupsCanBeSetToCallback'), + )); + + $this->assertTrue(is_callable($form->getConfig()->getOption('validation_groups'))); + } + + public function testValidationGroupsCanBeSetToClosure() + { + $form = $this->createForm(array( + 'validation_groups' => function(FormInterface $form){ return null; }, + )); + + $this->assertTrue(is_callable($form->getConfig()->getOption('validation_groups'))); + } + + abstract protected function createForm(array $options = array()); +} diff --git a/src/Symfony/Component/Form/Tests/Extension/Validator/Type/FormTypeValidatorExtensionTest.php b/src/Symfony/Component/Form/Tests/Extension/Validator/Type/FormTypeValidatorExtensionTest.php index 6619410599..0eef62d29c 100644 --- a/src/Symfony/Component/Form/Tests/Extension/Validator/Type/FormTypeValidatorExtensionTest.php +++ b/src/Symfony/Component/Form/Tests/Extension/Validator/Type/FormTypeValidatorExtensionTest.php @@ -11,62 +11,8 @@ namespace Symfony\Component\Form\Tests\Extension\Validator\Type; -use Symfony\Component\Form\FormInterface; - -class FormTypeValidatorExtensionTest extends TypeTestCase +class FormTypeValidatorExtensionTest extends BaseValidatorExtensionTest { - public function testValidationGroupNullByDefault() - { - $form = $this->factory->create('form'); - - $this->assertNull($form->getConfig()->getOption('validation_groups')); - } - - public function testValidationGroupsTransformedToArray() - { - $form = $this->factory->create('form', null, array( - 'validation_groups' => 'group', - )); - - $this->assertEquals(array('group'), $form->getConfig()->getOption('validation_groups')); - } - - public function testValidationGroupsCanBeSetToArray() - { - $form = $this->factory->create('form', null, array( - 'validation_groups' => array('group1', 'group2'), - )); - - $this->assertEquals(array('group1', 'group2'), $form->getConfig()->getOption('validation_groups')); - } - - public function testValidationGroupsCanBeSetToFalse() - { - $form = $this->factory->create('form', null, array( - 'validation_groups' => false, - )); - - $this->assertEquals(array(), $form->getConfig()->getOption('validation_groups')); - } - - public function testValidationGroupsCanBeSetToCallback() - { - $form = $this->factory->create('form', null, array( - 'validation_groups' => array($this, 'testValidationGroupsCanBeSetToCallback'), - )); - - $this->assertTrue(is_callable($form->getConfig()->getOption('validation_groups'))); - } - - public function testValidationGroupsCanBeSetToClosure() - { - $form = $this->factory->create('form', null, array( - 'validation_groups' => function(FormInterface $form){ return null; }, - )); - - $this->assertTrue(is_callable($form->getConfig()->getOption('validation_groups'))); - } - public function testSubmitValidatesData() { $builder = $this->factory->createBuilder('form', null, array( @@ -82,4 +28,9 @@ class FormTypeValidatorExtensionTest extends TypeTestCase // specific data is irrelevant $form->submit(array()); } + + protected function createForm(array $options = array()) + { + return $this->factory->create('form', null, $options); + } } diff --git a/src/Symfony/Component/Form/Tests/Extension/Validator/Type/SubmitTypeValidatorExtensionTest.php b/src/Symfony/Component/Form/Tests/Extension/Validator/Type/SubmitTypeValidatorExtensionTest.php new file mode 100644 index 0000000000..c37cf6733c --- /dev/null +++ b/src/Symfony/Component/Form/Tests/Extension/Validator/Type/SubmitTypeValidatorExtensionTest.php @@ -0,0 +1,20 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Form\Tests\Extension\Validator\Type; + +class SubmitTypeValidatorExtensionTest extends BaseValidatorExtensionTest +{ + protected function createForm(array $options = array()) + { + return $this->factory->create('submit', null, $options); + } +}