diff options
Diffstat (limited to 'vendor/symfony/form/Symfony/Component/Form/Tests/Extension/Core/Type/CheckboxTypeTest.php')
-rw-r--r-- | vendor/symfony/form/Symfony/Component/Form/Tests/Extension/Core/Type/CheckboxTypeTest.php | 162 |
1 files changed, 162 insertions, 0 deletions
diff --git a/vendor/symfony/form/Symfony/Component/Form/Tests/Extension/Core/Type/CheckboxTypeTest.php b/vendor/symfony/form/Symfony/Component/Form/Tests/Extension/Core/Type/CheckboxTypeTest.php new file mode 100644 index 00000000..c782adab --- /dev/null +++ b/vendor/symfony/form/Symfony/Component/Form/Tests/Extension/Core/Type/CheckboxTypeTest.php | |||
@@ -0,0 +1,162 @@ | |||
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\Component\Form\Tests\Extension\Core\Type; | ||
13 | |||
14 | use Symfony\Component\Form\CallbackTransformer; | ||
15 | |||
16 | class CheckboxTypeTest extends \Symfony\Component\Form\Test\TypeTestCase | ||
17 | { | ||
18 | public function testPassValueToView() | ||
19 | { | ||
20 | $form = $this->factory->create('checkbox', null, array('value' => 'foobar')); | ||
21 | $view = $form->createView(); | ||
22 | |||
23 | $this->assertEquals('foobar', $view->vars['value']); | ||
24 | } | ||
25 | |||
26 | public function testCheckedIfDataTrue() | ||
27 | { | ||
28 | $form = $this->factory->create('checkbox'); | ||
29 | $form->setData(true); | ||
30 | $view = $form->createView(); | ||
31 | |||
32 | $this->assertTrue($view->vars['checked']); | ||
33 | } | ||
34 | |||
35 | public function testCheckedIfDataTrueWithEmptyValue() | ||
36 | { | ||
37 | $form = $this->factory->create('checkbox', null, array('value' => '')); | ||
38 | $form->setData(true); | ||
39 | $view = $form->createView(); | ||
40 | |||
41 | $this->assertTrue($view->vars['checked']); | ||
42 | } | ||
43 | |||
44 | public function testNotCheckedIfDataFalse() | ||
45 | { | ||
46 | $form = $this->factory->create('checkbox'); | ||
47 | $form->setData(false); | ||
48 | $view = $form->createView(); | ||
49 | |||
50 | $this->assertFalse($view->vars['checked']); | ||
51 | } | ||
52 | |||
53 | public function testSubmitWithValueChecked() | ||
54 | { | ||
55 | $form = $this->factory->create('checkbox', null, array( | ||
56 | 'value' => 'foobar', | ||
57 | )); | ||
58 | $form->submit('foobar'); | ||
59 | |||
60 | $this->assertTrue($form->getData()); | ||
61 | $this->assertEquals('foobar', $form->getViewData()); | ||
62 | } | ||
63 | |||
64 | public function testSubmitWithRandomValueChecked() | ||
65 | { | ||
66 | $form = $this->factory->create('checkbox', null, array( | ||
67 | 'value' => 'foobar', | ||
68 | )); | ||
69 | $form->submit('krixikraxi'); | ||
70 | |||
71 | $this->assertTrue($form->getData()); | ||
72 | $this->assertEquals('foobar', $form->getViewData()); | ||
73 | } | ||
74 | |||
75 | public function testSubmitWithValueUnchecked() | ||
76 | { | ||
77 | $form = $this->factory->create('checkbox', null, array( | ||
78 | 'value' => 'foobar', | ||
79 | )); | ||
80 | $form->submit(null); | ||
81 | |||
82 | $this->assertFalse($form->getData()); | ||
83 | $this->assertNull($form->getViewData()); | ||
84 | } | ||
85 | |||
86 | public function testSubmitWithEmptyValueChecked() | ||
87 | { | ||
88 | $form = $this->factory->create('checkbox', null, array( | ||
89 | 'value' => '', | ||
90 | )); | ||
91 | $form->submit(''); | ||
92 | |||
93 | $this->assertTrue($form->getData()); | ||
94 | $this->assertSame('', $form->getViewData()); | ||
95 | } | ||
96 | |||
97 | public function testSubmitWithEmptyValueUnchecked() | ||
98 | { | ||
99 | $form = $this->factory->create('checkbox', null, array( | ||
100 | 'value' => '', | ||
101 | )); | ||
102 | $form->submit(null); | ||
103 | |||
104 | $this->assertFalse($form->getData()); | ||
105 | $this->assertNull($form->getViewData()); | ||
106 | } | ||
107 | |||
108 | public function testBindWithEmptyValueAndFalseUnchecked() | ||
109 | { | ||
110 | $form = $this->factory->create('checkbox', null, array( | ||
111 | 'value' => '', | ||
112 | )); | ||
113 | $form->bind(false); | ||
114 | |||
115 | $this->assertFalse($form->getData()); | ||
116 | $this->assertNull($form->getViewData()); | ||
117 | } | ||
118 | |||
119 | public function testBindWithEmptyValueAndTrueChecked() | ||
120 | { | ||
121 | $form = $this->factory->create('checkbox', null, array( | ||
122 | 'value' => '', | ||
123 | )); | ||
124 | $form->bind(true); | ||
125 | |||
126 | $this->assertTrue($form->getData()); | ||
127 | $this->assertSame('', $form->getViewData()); | ||
128 | } | ||
129 | |||
130 | /** | ||
131 | * @dataProvider provideTransformedData | ||
132 | */ | ||
133 | public function testTransformedData($data, $expected) | ||
134 | { | ||
135 | // present a binary status field as a checkbox | ||
136 | $transformer = new CallbackTransformer( | ||
137 | function ($value) { | ||
138 | return 'expedited' == $value; | ||
139 | }, | ||
140 | function ($value) { | ||
141 | return $value ? 'expedited' : 'standard'; | ||
142 | } | ||
143 | ); | ||
144 | |||
145 | $form = $this->builder | ||
146 | ->create('expedited_shipping', 'checkbox') | ||
147 | ->addModelTransformer($transformer) | ||
148 | ->getForm(); | ||
149 | $form->setData($data); | ||
150 | $view = $form->createView(); | ||
151 | |||
152 | $this->assertEquals($expected, $view->vars['checked']); | ||
153 | } | ||
154 | |||
155 | public function provideTransformedData() | ||
156 | { | ||
157 | return array( | ||
158 | array('expedited', true), | ||
159 | array('standard', false), | ||
160 | ); | ||
161 | } | ||
162 | } | ||