From 0619e08a25efa19f98a4e5351ed5afc4c4f2708a Mon Sep 17 00:00:00 2001 From: Alexander Cheprasov Date: Wed, 6 Jul 2016 22:55:29 +0100 Subject: [PATCH 1/2] bugfix in Form ButtonBuilder + test --- src/Symfony/Component/Form/ButtonBuilder.php | 5 +- .../Form/Tests/ButtonBuilderTest.php | 71 +++++++++++++++++++ 2 files changed, 74 insertions(+), 2 deletions(-) create mode 100644 src/Symfony/Component/Form/Tests/ButtonBuilderTest.php diff --git a/src/Symfony/Component/Form/ButtonBuilder.php b/src/Symfony/Component/Form/ButtonBuilder.php index 1eaed6a826292..89cad51530224 100644 --- a/src/Symfony/Component/Form/ButtonBuilder.php +++ b/src/Symfony/Component/Form/ButtonBuilder.php @@ -62,11 +62,12 @@ class ButtonBuilder implements \IteratorAggregate, FormBuilderInterface */ public function __construct($name, array $options = array()) { - if (empty($name) && 0 != $name) { + $name = (string) $name; + if ('' === $name) { throw new InvalidArgumentException('Buttons cannot have empty names.'); } - $this->name = (string) $name; + $this->name = $name; $this->options = $options; } diff --git a/src/Symfony/Component/Form/Tests/ButtonBuilderTest.php b/src/Symfony/Component/Form/Tests/ButtonBuilderTest.php new file mode 100644 index 0000000000000..f9dd58018be99 --- /dev/null +++ b/src/Symfony/Component/Form/Tests/ButtonBuilderTest.php @@ -0,0 +1,71 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Form\Tests; + +use Symfony\Component\Form\ButtonBuilder; + +/** + * @author Alexander Cheprasov + */ +class ButtonBuilderTest extends \PHPUnit_Framework_TestCase +{ + /** + * @return array + */ + public function getValidNames() + { + return array( + array('reset'), + array('submit'), + array('foo'), + array('0'), + array(0), + array('button[]'), + ); + } + + /** + * @dataProvider getValidNames + * + * @param string $name + */ + public function testValidNames($name) + { + $this->assertInstanceOf('\Symfony\Component\Form\ButtonBuilder', new ButtonBuilder($name)); + } + + /** + * @return array + */ + public function getInvalidNames() + { + return array( + array(''), + array(false), + array(null), + ); + } + + /** + * @dataProvider getInvalidNames + * + * @param string $name + */ + public function testInvalidNames($name) + { + $this->setExpectedException( + '\Symfony\Component\Form\Exception\InvalidArgumentException', + 'Buttons cannot have empty names.' + ); + new ButtonBuilder($name); + } +} From 1d47115d15ca70f8aade8a778a9a94bf9278db01 Mon Sep 17 00:00:00 2001 From: Alexander Cheprasov Date: Thu, 7 Jul 2016 22:46:56 +0100 Subject: [PATCH 2/2] bugfix in Form ButtonBuilder + test --- src/Symfony/Component/Form/Tests/ButtonBuilderTest.php | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/src/Symfony/Component/Form/Tests/ButtonBuilderTest.php b/src/Symfony/Component/Form/Tests/ButtonBuilderTest.php index f9dd58018be99..dc5d38b744860 100644 --- a/src/Symfony/Component/Form/Tests/ButtonBuilderTest.php +++ b/src/Symfony/Component/Form/Tests/ButtonBuilderTest.php @@ -18,9 +18,6 @@ */ class ButtonBuilderTest extends \PHPUnit_Framework_TestCase { - /** - * @return array - */ public function getValidNames() { return array( @@ -35,17 +32,12 @@ public function getValidNames() /** * @dataProvider getValidNames - * - * @param string $name */ public function testValidNames($name) { $this->assertInstanceOf('\Symfony\Component\Form\ButtonBuilder', new ButtonBuilder($name)); } - /** - * @return array - */ public function getInvalidNames() { return array( @@ -57,8 +49,6 @@ public function getInvalidNames() /** * @dataProvider getInvalidNames - * - * @param string $name */ public function testInvalidNames($name) {