@@ -322,6 +322,30 @@ public function testSessionIsNotReported()
322322 $ listener (new RequestEvent ($ this ->createMock (HttpKernelInterface::class), $ request , HttpKernelInterface::MAIN_REQUEST ));
323323 }
324324
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 , $ 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+
325349 protected function runSessionOnKernelResponse ($ newToken , $ original = null )
326350 {
327351 $ session = new Session (new MockArraySessionStorage ());
0 commit comments