4 * This file is part of the Symfony package.
6 * (c) Fabien Potencier <fabien@symfony.com>
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
12 namespace Symfony\Component\Form\Tests\Extension\Core\Type
;
14 use Symfony\Component\Form\CallbackTransformer
;
16 class CheckboxTypeTest
extends \Symfony\Component\Form\Test\TypeTestCase
18 public function testPassValueToView()
20 $form = $this->factory
->create('checkbox', null, array('value' => 'foobar'));
21 $view = $form->createView();
23 $this->assertEquals('foobar', $view->vars
['value']);
26 public function testCheckedIfDataTrue()
28 $form = $this->factory
->create('checkbox');
30 $view = $form->createView();
32 $this->assertTrue($view->vars
['checked']);
35 public function testCheckedIfDataTrueWithEmptyValue()
37 $form = $this->factory
->create('checkbox', null, array('value' => ''));
39 $view = $form->createView();
41 $this->assertTrue($view->vars
['checked']);
44 public function testNotCheckedIfDataFalse()
46 $form = $this->factory
->create('checkbox');
47 $form->setData(false);
48 $view = $form->createView();
50 $this->assertFalse($view->vars
['checked']);
53 public function testSubmitWithValueChecked()
55 $form = $this->factory
->create('checkbox', null, array(
58 $form->submit('foobar');
60 $this->assertTrue($form->getData());
61 $this->assertEquals('foobar', $form->getViewData());
64 public function testSubmitWithRandomValueChecked()
66 $form = $this->factory
->create('checkbox', null, array(
69 $form->submit('krixikraxi');
71 $this->assertTrue($form->getData());
72 $this->assertEquals('foobar', $form->getViewData());
75 public function testSubmitWithValueUnchecked()
77 $form = $this->factory
->create('checkbox', null, array(
82 $this->assertFalse($form->getData());
83 $this->assertNull($form->getViewData());
86 public function testSubmitWithEmptyValueChecked()
88 $form = $this->factory
->create('checkbox', null, array(
93 $this->assertTrue($form->getData());
94 $this->assertSame('', $form->getViewData());
97 public function testSubmitWithEmptyValueUnchecked()
99 $form = $this->factory
->create('checkbox', null, array(
104 $this->assertFalse($form->getData());
105 $this->assertNull($form->getViewData());
108 public function testBindWithEmptyValueAndFalseUnchecked()
110 $form = $this->factory
->create('checkbox', null, array(
115 $this->assertFalse($form->getData());
116 $this->assertNull($form->getViewData());
119 public function testBindWithEmptyValueAndTrueChecked()
121 $form = $this->factory
->create('checkbox', null, array(
126 $this->assertTrue($form->getData());
127 $this->assertSame('', $form->getViewData());
131 * @dataProvider provideTransformedData
133 public function testTransformedData($data, $expected)
135 // present a binary status field as a checkbox
136 $transformer = new CallbackTransformer(
138 return 'expedited' == $value;
141 return $value ? 'expedited' : 'standard';
145 $form = $this->builder
146 ->create('expedited_shipping', 'checkbox')
147 ->addModelTransformer($transformer)
149 $form->setData($data);
150 $view = $form->createView();
152 $this->assertEquals($expected, $view->vars
['checked']);
155 public function provideTransformedData()
158 array('expedited', true),
159 array('standard', false),