Added missing X-Api-Key header to cross domain middleware

This commit is contained in:
Alejandro Celaya
2018-11-18 17:00:23 +01:00
parent 90732a4fad
commit d4d65bdf37
4 changed files with 30 additions and 16 deletions

View File

@@ -13,6 +13,8 @@ use function explode;
class LocaleMiddleware implements MiddlewareInterface
{
private const ACCEPT_LANGUAGE = 'Accept-Language';
/**
* @var Translator
*/
@@ -36,11 +38,11 @@ class LocaleMiddleware implements MiddlewareInterface
*/
public function process(Request $request, DelegateInterface $delegate): Response
{
if (! $request->hasHeader('Accept-Language')) {
if (! $request->hasHeader(self::ACCEPT_LANGUAGE)) {
return $delegate->handle($request);
}
$locale = $request->getHeaderLine('Accept-Language');
$locale = $request->getHeaderLine(self::ACCEPT_LANGUAGE);
$this->translator->setLocale($this->normalizeLocale($locale));
return $delegate->handle($request);
}

View File

@@ -49,19 +49,25 @@ class LocaleMiddlewareTest extends TestCase
/**
* @test
* @dataProvider provideLanguages
*/
public function localeGetsNormalized()
public function localeGetsNormalized(string $lang, string $expected)
{
$delegate = TestUtils::createReqHandlerMock();
$handler = TestUtils::createReqHandlerMock();
$this->assertEquals('ru', $this->translator->getLocale());
$request = ServerRequestFactory::fromGlobals()->withHeader('Accept-Language', 'es_ES');
$this->middleware->process($request, $delegate->reveal());
$this->assertEquals('es', $this->translator->getLocale());
$request = ServerRequestFactory::fromGlobals()->withHeader('Accept-Language', $lang);
$this->middleware->process($request, $handler->reveal());
$this->assertEquals($expected, $this->translator->getLocale());
}
$request = ServerRequestFactory::fromGlobals()->withHeader('Accept-Language', 'en-US');
$this->middleware->process($request, $delegate->reveal());
$this->assertEquals('en', $this->translator->getLocale());
public function provideLanguages(): array
{
return [
['ru', 'ru'],
['es_ES', 'es'],
['en-US', 'en'],
];
}
}