diff options
Diffstat (limited to 'vendor/symfony/form/Symfony/Component/Form/Tests/Extension/Core/EventListener/ResizeFormListenerTest.php')
-rw-r--r-- | vendor/symfony/form/Symfony/Component/Form/Tests/Extension/Core/EventListener/ResizeFormListenerTest.php | 255 |
1 files changed, 0 insertions, 255 deletions
diff --git a/vendor/symfony/form/Symfony/Component/Form/Tests/Extension/Core/EventListener/ResizeFormListenerTest.php b/vendor/symfony/form/Symfony/Component/Form/Tests/Extension/Core/EventListener/ResizeFormListenerTest.php deleted file mode 100644 index 1367b3ef..00000000 --- a/vendor/symfony/form/Symfony/Component/Form/Tests/Extension/Core/EventListener/ResizeFormListenerTest.php +++ /dev/null | |||
@@ -1,255 +0,0 @@ | |||
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\EventListener; | ||
13 | |||
14 | use Symfony\Component\Form\Extension\Core\EventListener\ResizeFormListener; | ||
15 | use Symfony\Component\Form\FormBuilder; | ||
16 | use Symfony\Component\Form\FormEvent; | ||
17 | |||
18 | class ResizeFormListenerTest extends \PHPUnit_Framework_TestCase | ||
19 | { | ||
20 | private $dispatcher; | ||
21 | private $factory; | ||
22 | private $form; | ||
23 | |||
24 | protected function setUp() | ||
25 | { | ||
26 | if (!class_exists('Symfony\Component\EventDispatcher\EventDispatcher')) { | ||
27 | $this->markTestSkipped('The "EventDispatcher" component is not available'); | ||
28 | } | ||
29 | |||
30 | $this->dispatcher = $this->getMock('Symfony\Component\EventDispatcher\EventDispatcherInterface'); | ||
31 | $this->factory = $this->getMock('Symfony\Component\Form\FormFactoryInterface'); | ||
32 | $this->form = $this->getBuilder() | ||
33 | ->setCompound(true) | ||
34 | ->setDataMapper($this->getDataMapper()) | ||
35 | ->getForm(); | ||
36 | } | ||
37 | |||
38 | protected function tearDown() | ||
39 | { | ||
40 | $this->dispatcher = null; | ||
41 | $this->factory = null; | ||
42 | $this->form = null; | ||
43 | } | ||
44 | |||
45 | protected function getBuilder($name = 'name') | ||
46 | { | ||
47 | return new FormBuilder($name, null, $this->dispatcher, $this->factory); | ||
48 | } | ||
49 | |||
50 | protected function getForm($name = 'name') | ||
51 | { | ||
52 | return $this->getBuilder($name)->getForm(); | ||
53 | } | ||
54 | |||
55 | /** | ||
56 | * @return \PHPUnit_Framework_MockObject_MockObject | ||
57 | */ | ||
58 | private function getDataMapper() | ||
59 | { | ||
60 | return $this->getMock('Symfony\Component\Form\DataMapperInterface'); | ||
61 | } | ||
62 | |||
63 | protected function getMockForm() | ||
64 | { | ||
65 | return $this->getMock('Symfony\Component\Form\Test\FormInterface'); | ||
66 | } | ||
67 | |||
68 | public function testPreSetDataResizesForm() | ||
69 | { | ||
70 | $this->form->add($this->getForm('0')); | ||
71 | $this->form->add($this->getForm('1')); | ||
72 | |||
73 | $this->factory->expects($this->at(0)) | ||
74 | ->method('createNamed') | ||
75 | ->with(1, 'text', null, array('property_path' => '[1]', 'max_length' => 10, 'auto_initialize' => false)) | ||
76 | ->will($this->returnValue($this->getForm('1'))); | ||
77 | $this->factory->expects($this->at(1)) | ||
78 | ->method('createNamed') | ||
79 | ->with(2, 'text', null, array('property_path' => '[2]', 'max_length' => 10, 'auto_initialize' => false)) | ||
80 | ->will($this->returnValue($this->getForm('2'))); | ||
81 | |||
82 | $data = array(1 => 'string', 2 => 'string'); | ||
83 | $event = new FormEvent($this->form, $data); | ||
84 | $listener = new ResizeFormListener('text', array('max_length' => '10'), false, false); | ||
85 | $listener->preSetData($event); | ||
86 | |||
87 | $this->assertFalse($this->form->has('0')); | ||
88 | $this->assertTrue($this->form->has('1')); | ||
89 | $this->assertTrue($this->form->has('2')); | ||
90 | } | ||
91 | |||
92 | /** | ||
93 | * @expectedException \Symfony\Component\Form\Exception\UnexpectedTypeException | ||
94 | */ | ||
95 | public function testPreSetDataRequiresArrayOrTraversable() | ||
96 | { | ||
97 | $data = 'no array or traversable'; | ||
98 | $event = new FormEvent($this->form, $data); | ||
99 | $listener = new ResizeFormListener('text', array(), false, false); | ||
100 | $listener->preSetData($event); | ||
101 | } | ||
102 | |||
103 | public function testPreSetDataDealsWithNullData() | ||
104 | { | ||
105 | $this->factory->expects($this->never())->method('createNamed'); | ||
106 | |||
107 | $data = null; | ||
108 | $event = new FormEvent($this->form, $data); | ||
109 | $listener = new ResizeFormListener('text', array(), false, false); | ||
110 | $listener->preSetData($event); | ||
111 | } | ||
112 | |||
113 | public function testPreSubmitResizesUpIfAllowAdd() | ||
114 | { | ||
115 | $this->form->add($this->getForm('0')); | ||
116 | |||
117 | $this->factory->expects($this->once()) | ||
118 | ->method('createNamed') | ||
119 | ->with(1, 'text', null, array('property_path' => '[1]', 'max_length' => 10, 'auto_initialize' => false)) | ||
120 | ->will($this->returnValue($this->getForm('1'))); | ||
121 | |||
122 | $data = array(0 => 'string', 1 => 'string'); | ||
123 | $event = new FormEvent($this->form, $data); | ||
124 | $listener = new ResizeFormListener('text', array('max_length' => 10), true, false); | ||
125 | $listener->preSubmit($event); | ||
126 | |||
127 | $this->assertTrue($this->form->has('0')); | ||
128 | $this->assertTrue($this->form->has('1')); | ||
129 | } | ||
130 | |||
131 | public function testPreSubmitResizesDownIfAllowDelete() | ||
132 | { | ||
133 | $this->form->add($this->getForm('0')); | ||
134 | $this->form->add($this->getForm('1')); | ||
135 | |||
136 | $data = array(0 => 'string'); | ||
137 | $event = new FormEvent($this->form, $data); | ||
138 | $listener = new ResizeFormListener('text', array(), false, true); | ||
139 | $listener->preSubmit($event); | ||
140 | |||
141 | $this->assertTrue($this->form->has('0')); | ||
142 | $this->assertFalse($this->form->has('1')); | ||
143 | } | ||
144 | |||
145 | // fix for https://github.com/symfony/symfony/pull/493 | ||
146 | public function testPreSubmitRemovesZeroKeys() | ||
147 | { | ||
148 | $this->form->add($this->getForm('0')); | ||
149 | |||
150 | $data = array(); | ||
151 | $event = new FormEvent($this->form, $data); | ||
152 | $listener = new ResizeFormListener('text', array(), false, true); | ||
153 | $listener->preSubmit($event); | ||
154 | |||
155 | $this->assertFalse($this->form->has('0')); | ||
156 | } | ||
157 | |||
158 | public function testPreSubmitDoesNothingIfNotAllowAddNorAllowDelete() | ||
159 | { | ||
160 | $this->form->add($this->getForm('0')); | ||
161 | $this->form->add($this->getForm('1')); | ||
162 | |||
163 | $data = array(0 => 'string', 2 => 'string'); | ||
164 | $event = new FormEvent($this->form, $data); | ||
165 | $listener = new ResizeFormListener('text', array(), false, false); | ||
166 | $listener->preSubmit($event); | ||
167 | |||
168 | $this->assertTrue($this->form->has('0')); | ||
169 | $this->assertTrue($this->form->has('1')); | ||
170 | $this->assertFalse($this->form->has('2')); | ||
171 | } | ||
172 | |||
173 | /** | ||
174 | * @expectedException \Symfony\Component\Form\Exception\UnexpectedTypeException | ||
175 | */ | ||
176 | public function testPreSubmitRequiresArrayOrTraversable() | ||
177 | { | ||
178 | $data = 'no array or traversable'; | ||
179 | $event = new FormEvent($this->form, $data); | ||
180 | $listener = new ResizeFormListener('text', array(), false, false); | ||
181 | $listener->preSubmit($event); | ||
182 | } | ||
183 | |||
184 | public function testPreSubmitDealsWithNullData() | ||
185 | { | ||
186 | $this->form->add($this->getForm('1')); | ||
187 | |||
188 | $data = null; | ||
189 | $event = new FormEvent($this->form, $data); | ||
190 | $listener = new ResizeFormListener('text', array(), false, true); | ||
191 | $listener->preSubmit($event); | ||
192 | |||
193 | $this->assertFalse($this->form->has('1')); | ||
194 | } | ||
195 | |||
196 | // fixes https://github.com/symfony/symfony/pull/40 | ||
197 | public function testPreSubmitDealsWithEmptyData() | ||
198 | { | ||
199 | $this->form->add($this->getForm('1')); | ||
200 | |||
201 | $data = ''; | ||
202 | $event = new FormEvent($this->form, $data); | ||
203 | $listener = new ResizeFormListener('text', array(), false, true); | ||
204 | $listener->preSubmit($event); | ||
205 | |||
206 | $this->assertFalse($this->form->has('1')); | ||
207 | } | ||
208 | |||
209 | public function testOnSubmitNormDataRemovesEntriesMissingInTheFormIfAllowDelete() | ||
210 | { | ||
211 | $this->form->add($this->getForm('1')); | ||
212 | |||
213 | $data = array(0 => 'first', 1 => 'second', 2 => 'third'); | ||
214 | $event = new FormEvent($this->form, $data); | ||
215 | $listener = new ResizeFormListener('text', array(), false, true); | ||
216 | $listener->onSubmit($event); | ||
217 | |||
218 | $this->assertEquals(array(1 => 'second'), $event->getData()); | ||
219 | } | ||
220 | |||
221 | public function testOnSubmitNormDataDoesNothingIfNotAllowDelete() | ||
222 | { | ||
223 | $this->form->add($this->getForm('1')); | ||
224 | |||
225 | $data = array(0 => 'first', 1 => 'second', 2 => 'third'); | ||
226 | $event = new FormEvent($this->form, $data); | ||
227 | $listener = new ResizeFormListener('text', array(), false, false); | ||
228 | $listener->onSubmit($event); | ||
229 | |||
230 | $this->assertEquals($data, $event->getData()); | ||
231 | } | ||
232 | |||
233 | /** | ||
234 | * @expectedException \Symfony\Component\Form\Exception\UnexpectedTypeException | ||
235 | */ | ||
236 | public function testOnSubmitNormDataRequiresArrayOrTraversable() | ||
237 | { | ||
238 | $data = 'no array or traversable'; | ||
239 | $event = new FormEvent($this->form, $data); | ||
240 | $listener = new ResizeFormListener('text', array(), false, false); | ||
241 | $listener->onSubmit($event); | ||
242 | } | ||
243 | |||
244 | public function testOnSubmitNormDataDealsWithNullData() | ||
245 | { | ||
246 | $this->form->add($this->getForm('1')); | ||
247 | |||
248 | $data = null; | ||
249 | $event = new FormEvent($this->form, $data); | ||
250 | $listener = new ResizeFormListener('text', array(), false, true); | ||
251 | $listener->onSubmit($event); | ||
252 | |||
253 | $this->assertEquals(array(), $event->getData()); | ||
254 | } | ||
255 | } | ||