Networking\InitCmsBundle\Tests\EventListener\LocaleListenerTest::testGetPreferredLocale_Available_ShouldReturnTheFirstBrowserLanguageThatMatchesAnAvailableLanguage PHP Method

testGetPreferredLocale_Available_ShouldReturnTheFirstBrowserLanguageThatMatchesAnAvailableLanguage() public method

    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
    }