public function testGetPreferredLocale_NotAvailable_ShouldReturnDefault() { $request = $this->getMockBuilder('Symfony\\Component\\HttpFoundation\\Request')->disableOriginalConstructor()->getMock(); $parameterBag = $this->getMockBuilder('Symfony\\Component\\HttpFoundation\\ParameterBag')->disableOriginalConstructor()->getMock(); $request->attributes = $parameterBag; $server = $this->getMock('\\Symfony\\Component\\HttpFoundation\\ServerBag'); $server->expects($this->exactly(2))->method('get')->with('HTTP_ACCEPT_LANGUAGE')->will($this->returnValue('de-DE,de;q=0.8,jp')); $request->server = $server; $accessMapStub = $this->getMock('\\Symfony\\Component\\Security\\Http\\AccessMap'); $accessMapStub->expects($this->never())->method('getPatterns')->will($this->returnValue(array(array('hallo')))); $listener = new LocaleListener($accessMapStub, array(array('locale' => 'it'), array('locale' => 'fr')), 'en'); $preferredLocale = $listener->getPreferredLocale($request); $this->assertEquals('en', $preferredLocale); // its the default }