From 0f185c9fef0588ae963cae4ca9c5e77a6449607a Mon Sep 17 00:00:00 2001 From: BruceWouaigne Date: Thu, 5 Mar 2015 18:38:17 +0100 Subject: [PATCH] [Form] [EventListener] fixed sending non array data on submit to ResizeListener --- .../Extension/Core/EventListener/ResizeFormListener.php | 2 +- .../Core/EventListener/ResizeFormListenerTest.php | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/Symfony/Component/Form/Extension/Core/EventListener/ResizeFormListener.php b/src/Symfony/Component/Form/Extension/Core/EventListener/ResizeFormListener.php index 8a4919240d..01c3c1b0b2 100644 --- a/src/Symfony/Component/Form/Extension/Core/EventListener/ResizeFormListener.php +++ b/src/Symfony/Component/Form/Extension/Core/EventListener/ResizeFormListener.php @@ -101,7 +101,7 @@ class ResizeFormListener implements EventSubscriberInterface } if (!is_array($data) && !($data instanceof \Traversable && $data instanceof \ArrayAccess)) { - throw new UnexpectedTypeException($data, 'array or (\Traversable and \ArrayAccess)'); + $data = array(); } // Remove all empty rows diff --git a/src/Symfony/Component/Form/Tests/Extension/Core/EventListener/ResizeFormListenerTest.php b/src/Symfony/Component/Form/Tests/Extension/Core/EventListener/ResizeFormListenerTest.php index 7bcc7f2d12..7197666392 100644 --- a/src/Symfony/Component/Form/Tests/Extension/Core/EventListener/ResizeFormListenerTest.php +++ b/src/Symfony/Component/Form/Tests/Extension/Core/EventListener/ResizeFormListenerTest.php @@ -167,15 +167,14 @@ class ResizeFormListenerTest extends \PHPUnit_Framework_TestCase $this->assertFalse($this->form->has('2')); } - /** - * @expectedException \Symfony\Component\Form\Exception\UnexpectedTypeException - */ - public function testPreSubmitRequiresArrayOrTraversable() + public function testPreSubmitDealsWithNoArrayOrTraversable() { $data = 'no array or traversable'; $event = new FormEvent($this->form, $data); $listener = new ResizeFormListener('text', array(), false, false); $listener->preSubmit($event); + + $this->assertFalse($this->form->has('1')); } public function testPreSubmitDealsWithNullData()