@@ -322,6 +322,30 @@ public function testSessionIsNotReported()
322
322
$ listener (new RequestEvent ($ this ->createMock (HttpKernelInterface::class), $ request , HttpKernelInterface::MAIN_REQUEST ));
323
323
}
324
324
325
+ public function testOnKernelResponseRemoveListener ()
326
+ {
327
+ $ tokenStorage = new TokenStorage ();
328
+ $ tokenStorage ->setToken (new UsernamePasswordToken (new InMemoryUser ('test1 ' , 'pass1 ' ), 'phpunit ' , ['ROLE_USER ' ]));
329
+
330
+ $ request = new Request ();
331
+ $ request ->attributes ->set ('_security_firewall_run ' , '_security_session ' );
332
+
333
+ $ session = new Session (new MockArraySessionStorage ());
334
+ $ request ->setSession ($ session );
335
+
336
+ $ dispatcher = new EventDispatcher ();
337
+ $ httpKernel = $ this ->createMock (HttpKernelInterface::class);
338
+
339
+ $ listener = new ContextListener ($ tokenStorage , [], 'session ' , null , $ dispatcher , null , \Closure::fromCallable ([$ tokenStorage , 'getToken ' ]));
340
+ $ this ->assertEmpty ($ dispatcher ->getListeners ());
341
+
342
+ $ listener (new RequestEvent ($ httpKernel , $ request , HttpKernelInterface::MASTER_REQUEST ));
343
+ $ this ->assertNotEmpty ($ dispatcher ->getListeners ());
344
+
345
+ $ listener ->onKernelResponse (new ResponseEvent ($ httpKernel , $ request , HttpKernelInterface::MASTER_REQUEST , new Response ()));
346
+ $ this ->assertEmpty ($ dispatcher ->getListeners ());
347
+ }
348
+
325
349
protected function runSessionOnKernelResponse ($ newToken , $ original = null )
326
350
{
327
351
$ session = new Session (new MockArraySessionStorage ());
0 commit comments