public function testGetPreferredLocale_Available_ShouldReturnTheFirstBrowserLanguageThatMatchesAnAvailableLanguage()
{
$request = $this->getMockBuilder('Symfony\\Component\\HttpFoundation\\Request')->disableOriginalConstructor()->getMock();
$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,en-US;q=0.6,en;q=0.4'));
$request->server = $server;
$parameterBag = $this->getMockBuilder('Symfony\\Component\\HttpFoundation\\ParameterBag')->disableOriginalConstructor()->getMock();
$request->attributes = $parameterBag;
$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' => 'jp'), array('locale' => 'de')), 'en');
$preferredLocale = $listener->getPreferredLocale($request);
$this->assertEquals('de', $preferredLocale);
// its the first matched browser lang
}