Selaa lähdekoodia

Merge remote branch 'CodeMeme/1058-fix-radio-input-listener'

* CodeMeme/1058-fix-radio-input-listener:
  Fix for RadioInputListener's empty value erroneously becoming extra data Refs #1058
  Added test for RadioInputListener bug treating no data as extra data
Fabien Potencier 14 vuotta sitten
vanhempi
commit
6507eeff3c

+ 1 - 1
src/Symfony/Component/Form/Extension/Core/EventListener/FixRadioInputListener.php

@@ -27,7 +27,7 @@ class FixRadioInputListener implements EventSubscriberInterface
     {
         $data = $event->getData();
 
-        $event->setData(count((array)$data) === 0 ? array() : array($data => true));
+        $event->setData(empty($data) ? array() : array($data => true));
     }
 
     public static function getSubscribedEvents()

+ 14 - 0
tests/Symfony/Tests/Component/Form/Extension/Core/Type/ChoiceTypeTest.php

@@ -157,6 +157,20 @@ class ChoiceTypeTest extends TypeTestCase
         $this->assertSame('', $form['e']->getClientData());
     }
 
+    public function testBindSingleExpandedWithFalseDoesNotHaveExtraFields()
+    {
+        $form = $this->factory->create('choice', null, array(
+            'multiple' => false,
+            'expanded' => true,
+            'choices' => $this->choices,
+        ));
+        
+        $form->bind(false);
+        
+        $this->assertEmpty($form->getExtraData());
+        $this->assertNull($form->getData());
+    }
+
     public function testBindSingleExpandedNumericChoices()
     {
         $form = $this->factory->create('choice', null, array(