From 74d794b6e46b43b04f84306e1445d4a1de3b96f6 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 0c61fab8fd..f18370fde6 100644 --- a/src/Symfony/Component/Form/Extension/Core/EventListener/ResizeFormListener.php +++ b/src/Symfony/Component/Form/Extension/Core/EventListener/ResizeFormListener.php @@ -107,7 +107,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 bcfae9e068..e4959a3c95 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()