mirror of
https://github.com/shlinkio/shlink.git
synced 2025-02-25 18:45:27 -06:00
Added missing X-Api-Key header to cross domain middleware
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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'],
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user