@@ -381,6 +381,30 @@ public function testSessionIsNotReported()
381
381
$ listener (new RequestEvent ($ this ->createMock (HttpKernelInterface::class), $ request , HttpKernelInterface::MAIN_REQUEST ));
382
382
}
383
383
384
+ public function testOnKernelResponseRemoveListener ()
385
+ {
386
+ $ tokenStorage = new TokenStorage ();
387
+ $ tokenStorage ->setToken (new UsernamePasswordToken (new InMemoryUser ('test1 ' , 'pass1 ' ), 'phpunit ' , ['ROLE_USER ' ]));
388
+
389
+ $ request = new Request ();
390
+ $ request ->attributes ->set ('_security_firewall_run ' , '_security_session ' );
391
+
392
+ $ session = new Session (new MockArraySessionStorage ());
393
+ $ request ->setSession ($ session );
394
+
395
+ $ dispatcher = new EventDispatcher ();
396
+ $ httpKernel = $ this ->createMock (HttpKernelInterface::class);
397
+
398
+ $ listener = new ContextListener ($ tokenStorage , [], 'session ' , null , $ dispatcher , null , \Closure::fromCallable ([$ tokenStorage , 'getToken ' ]));
399
+ $ this ->assertEmpty ($ dispatcher ->getListeners ());
400
+
401
+ $ listener (new RequestEvent ($ httpKernel , $ request , HttpKernelInterface::MASTER_REQUEST ));
402
+ $ this ->assertNotEmpty ($ dispatcher ->getListeners ());
403
+
404
+ $ listener ->onKernelResponse (new ResponseEvent ($ httpKernel , $ request , HttpKernelInterface::MASTER_REQUEST , new Response ()));
405
+ $ this ->assertEmpty ($ dispatcher ->getListeners ());
406
+ }
407
+
384
408
protected function runSessionOnKernelResponse ($ newToken , $ original = null )
385
409
{
386
410
$ session = new Session (new MockArraySessionStorage ());
0 commit comments