getMock('Symfony\Component\HttpKernel\HttpKernelInterface'), $request, HttpKernelInterface::MASTER_REQUEST); } public function testWithoutSession() { $request = Request::create('/'); $listener = new LocaleListener('fr'); $event = $this->getEvent($request); $listener->onKernelRequest($event); $this->assertEquals('en', $request->getLocale()); } public function testWithPreviousSession() { $request = Request::create('/'); // generate a previous session $request->cookies->set('MOCKSESSID', 'foo'); $request->setSession(new Session(new MockArraySessionStorage())); $listener = new LocaleListener('fr'); $event = $this->getEvent($request); $listener->onKernelRequest($event); $this->assertEquals('fr', $request->getLocale()); } public function testLocaleFromRequestAttribute() { $request = Request::create('/'); // generate a previous session $request->cookies->set('MOCKSESSID', 'foo'); $request->setSession(new Session(new MockArraySessionStorage())); $request->attributes->set('_locale', 'es'); $listener = new LocaleListener('fr'); $event = $this->getEvent($request); $listener->onKernelRequest($event); $this->assertEquals('en', $request->getLocale()); $this->assertEquals('es', $request->getSession()->get('_locale')); } public function testSubscribedEvents() { $request = Request::create('/'); // generate a previous session $request->cookies->set('MOCKSESSID', 'foo'); $request->setSession(new Session(new MockArraySessionStorage())); $listener = new LocaleListener('fr'); $event = $this->getEvent($request); $dispatcher = new EventDispatcher(); $dispatcher->addSubscriber($listener); $dispatcher->dispatch( KernelEvents::REQUEST, $event ); $this->assertEquals('fr', $request->getLocale()); } }