5
5
use PHPUnit \Framework \TestCase ;
6
6
use Symfony \Bridge \Twig \AppVariable ;
7
7
use Symfony \Component \HttpFoundation \Request ;
8
+ use Symfony \Component \HttpFoundation \Session \Flash \FlashBag ;
8
9
use Symfony \Component \HttpFoundati
8000
on \Session \Session ;
9
10
10
11
class AppVariableTest extends TestCase
@@ -157,6 +158,62 @@ public function testGetSessionWithRequestStackNotSet()
157
158
$ this ->appVariable ->getSession ();
158
159
}
159
160
161
+ public function testGetFlashesWithNoRequest ()
162
+ {
163
+ $ this ->setRequestStack (null );
164
+
165
+ $ this ->assertEquals (array (), $ this ->appVariable ->getFlashes ());
166
+ }
167
+
168
+ public function testGetFlashesWithNoSessionStarted ()
169
+ {
170
+ $ request = $ this ->getMockBuilder ('Symfony\Component\HttpFoundation\Request ' )->getMock ();
171
+ $ request ->method ('getSession ' )->willReturn (new Session ());
172
+
173
+ $ this ->setRequestStack ($ request );
174
+
175
+ $ this ->assertEquals (array (), $ this ->appVariable ->getFlashes ());
176
+ }
177
+
178
+ public function testGetFlashes ()
179
+ {
180
+ $ flashMessages = $ this ->setFlashMessages ();
181
+ $ this ->assertEquals ($ flashMessages , $ this ->appVariable ->getFlashes (null ));
182
+
183
+ $ flashMessages = $ this ->setFlashMessages ();
184
+ $ this ->assertEquals ($ flashMessages , $ this ->appVariable ->getFlashes ('' ));
185
+
186
+ $ flashMessages = $ this ->setFlashMessages ();
187
+ $ this ->assertEquals ($ flashMessages , $ this ->appVariable ->getFlashes (array ()));
188
+
189
+ $ flashMessages = $ this ->setFlashMessages ();
190
+ $ this ->assertEquals (array (), $ this ->appVariable ->getFlashes ('this-does-not-exist ' ));
191
+
192
+ $ flashMessages = $ this ->setFlashMessages ();
193
+ $ this ->assertEquals (array (), $ this ->appVariable ->getFlashes (array ('this-does-not-exist ' )));
194
+
195
+ $ flashMessages = $ this ->setFlashMessages ();
196
+ $ this ->assertEquals ($ flashMessages ['notice ' ], $ this ->appVariable ->getFlashes ('notice ' ));
197
+
198
+ $ flashMessages = $ this ->setFlashMessages ();
199
+ $ this ->assertEquals (
200
+ array ('notice ' => $ flashMessages ['notice ' ]),
201
+ $ this ->appVariable ->getFlashes (array ('notice ' ))
202
+ );
203
+
204
+ $ flashMessages = $ this ->setFlashMessages ();
205
+ $ this ->assertEquals (
206
+ array ('notice ' => $ flashMessages ['notice ' ]),
207
+ $ this ->appVariable ->getFlashes (array ('notice ' , 'this-does-not-exist ' ))
208
+ );
209
+
210
+ $ flashMessages = $ this ->setFlashMessages ();
211
+ $ this ->assertEquals (
212
+ array ('notice ' => $ flashMessages ['notice ' ], 'error ' => $ flashMessages ['error ' ]),
213
+ $ this ->appVariable ->getFlashes (array ('notice ' , 'error ' ))
214
+ );
215
+ }
216
+
160
217
protected function setRequestStack ($ request )
161
218
{
162
219
$ requestStackMock = $ this ->getMockBuilder ('Symfony\Component\HttpFoundation\RequestStack ' )->getMock ();
@@ -175,4 +232,25 @@ protected function setTokenStorage($user)
175
232
176
233
$ token ->method ('getUser ' )->willReturn ($ user );
177
234
}
235
+
236
+ private function setFlashMessages ()
237
+ {
238
+ $ flashMessages = array (
239
+ 'notice ' => array ('Notice #1 message ' ),
240
+ 'warning ' => array ('Warning #1 message ' ),
241
+ 'error ' => array ('Error #1 message ' , 'Error #2 message ' ),
242
+ );
243
+ $ flashBag = new FlashBag ();
244
+ $ flashBag ->initialize ($ flashMessages );
245
+
246
+ $ session = $ this ->getMockBuilder ('Symfony\Component\HttpFoundation\Session\Session ' )->getMock ();
247
+ $ session ->method ('isStarted ' )->willReturn (true );
248
+ $ session ->method ('getFlashBag ' )->willReturn ($ flashBag );
249
+
250
+ $ request = $ this ->getMockBuilder ('Symfony\Component\HttpFoundation\Request ' )->getMock ();
251
+ $ request ->method ('getSession ' )->willReturn ($ session );
252
+ $ this ->setRequestStack ($ request );
253
+
254
+ return $ flashMessages ;
255
+ }
178
256
}
0 commit comments