8000 [Form] Fixed FixRadioInputListener to not ignore 0. · renegare/symfony@790284f · GitHub
[go: up one dir, main page]

Skip to content

Commit 790284f

Browse files
committed
[Form] Fixed FixRadioInputListener to not ignore 0.
1 parent 5893874 commit 790284f

File tree

2 files changed

+56
-2
lines changed

2 files changed

+56
-2
lines changed

src/Symfony/Component/Form/Extension/Core/EventListener/FixRadioInputListener.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,11 @@ public function onBindClientData(FilterDataEvent $event)
2727
{
2828
$data = $event->getData();
2929

30-
$event->setData(empty($data) ? array() : array($data => true));
30+
$event->setData(strlen($data) < 1 ? array() : array($data => true));
3131
}
3232

3333
public static function getSubscribedEvents()
3434
{
3535
return array(FormEvents::BIND_CLIENT_DATA => 'onBindClientData');
3636
}
37-
}
37+
}
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
<?php
2+
3+
/*
4+
* This file is part of the Symfony package.
5+
*
6+
* (c) Fabien Potencier <fabien@symfony.com>
7+
*
8+
* For the full copyright and license information, please view the LICENSE
9+
* file that was distributed with this source code.
10+
*/
11+
12+
namespace Symfony\Tests\Component\Form\Extension\Core\EventListener;
13+
14+
use Symfony\Component\Form\Event\FilterDataEvent;
15+
use Symfony\Component\Form\Extension\Core\EventListener\FixRadioInputListener;
16+
17+
class FixRadioInputListenerTest extends \PHPUnit_Framework_TestCase
18+
{
19+
public function testFixRadio()
20+
{
21+
$data = '1';
22+
$form = $this->getMock('Symfony\Tests\Component\Form\FormInterface');
23+
$event = new FilterDataEvent($form, $data);
24+
25+
$filter = new FixRadioInputListener();
26+
$filter->onBindClientData($event);
27+
28+
$this->assertEquals(array('1' => true), $event->getData());
29+
}
30+
31+
public function testFixZero()
32+
{
33+
$data = '0';
34+
$form = $this->getMock('Symfony\Tests\Component\Form\FormInterface');
35+
$event = new FilterDataEvent($form, $data);
36+
37+
$filter = new FixRadioInputListener();
38+
$filter->onBindClientData($event);
39+
40+
$this->assertEquals(array('0' => true), $event->getData());
41+
}
42+
43+
public function testIgnoreEmptyString()
44+
{
45+
$data = '';
46+
$form = $this->getMock('Symfony\Tests\Component\Form\FormInterface');
47+
$event = new FilterDataEvent($form, $data);
48+
49+
$filter = new FixRadioInputListener();
50+
$filter->onBindClientData($event);
51+
52+
$this->assertEquals(array(), $event->getData());
53+
}
54+
}

0 commit comments

Comments
 (0)
0