55use PHPUnit \Framework \TestCase ;
66use Symfony \Bridge \Twig \AppVariable ;
77use Symfony \Component \HttpFoundation \Request ;
8+ use Symfony \Component \HttpFoundation \Session \Flash \FlashBag ;
89use Symfony \Component \HttpFoundation \Session \Session ;
910
1011class AppVariableTest extends TestCase
@@ -157,6 +158,62 @@ public function testGetSessionWithRequestStackNotSet()
157158 $ this ->appVariable ->getSession ();
158159 }
159160
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+ );
5492
td>215+ }
216+
160217 protected function setRequestStack ($ request )
161218 {
162219 $ requestStackMock = $ this ->getMockBuilder ('Symfony\Component\HttpFoundation\RequestStack ' )->getMock ();
@@ -175,4 +232,25 @@ protected function setTokenStorage($user)
175232
176233 $ token ->method ('getUser ' )->willReturn ($ user );
177234 }
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+ }
178256}
0 commit comments