public function testLocalesWithApiRequestAndAcceptLanguageHeader() { $request = $this->createRequestMock(); $request->headers->expects($this->once())->method('get')->with($this->identicalTo('Accept-Language'))->will($this->returnValue($acceptLanguage = 'accept-language')); $this->requestStack->expects($this->once())->method('getMasterRequest')->will($this->returnValue($request)); $this->localeNegotiator->expects($this->once())->method('parse')->with($this->identicalTo('accept-language'))->will($this->returnValue([new AcceptLanguage($locale = 'fr')])); $this->parameterResolver->expects($this->once())->method('resolveApi')->will($this->returnValue(true)); $this->assertSame([$locale], $this->localeContext->getLocales()); }
/** * @param Request $request * * @return string[] */ private function parseAcceptLanguage(Request $request) { $locales = []; $acceptLanguage = trim($request->headers->get('Accept-Language')); if (!empty($acceptLanguage)) { $locales = array_map(function (AcceptLanguage $acceptLanguage) { return $acceptLanguage->getType(); }, $this->localeNegotiator->parse($acceptLanguage)); } return $locales; }