Skip to content
Snippets Groups Projects
Commit d6167f7d authored by Reiter, Christoph's avatar Reiter, Christoph :snake:
Browse files

locale: expose method for setting a locale on a request object

and not just the active request. In some cases this might be easier
to understand if the user already is working with a request object.
parent cc22deb2
No related branches found
No related tags found
No related merge requests found
Pipeline #202727 passed
...@@ -74,7 +74,10 @@ class Locale ...@@ -74,7 +74,10 @@ class Locale
return $locale; return $locale;
} }
private static function setRequestLocaleFromQuery(Request $request, string $queryParam): void /**
* Same as setCurrentRequestLocaleFromQuery(), but takes a request object.
*/
public static function setRequestLocaleFromQuery(Request $request, string $queryParam): void
{ {
if ($request->query->has($queryParam)) { if ($request->query->has($queryParam)) {
$lang = $request->query->get($queryParam); $lang = $request->query->get($queryParam);
......
...@@ -39,4 +39,20 @@ class LocaleTest extends TestCase ...@@ -39,4 +39,20 @@ class LocaleTest extends TestCase
$lang = $service->getCurrentPrimaryLanguage(); $lang = $service->getCurrentPrimaryLanguage();
$this->assertSame('de', $lang); $this->assertSame('de', $lang);
} }
public function testSetExplicit()
{
$stack = new RequestStack();
$params = new ParameterBag(['kernel.default_locale' => \Locale::acceptFromHttp('en')]);
$service = new Locale($stack, $params);
$request = new Request(['foo' => 'fr']);
$service->setRequestLocaleFromQuery($request, 'foo');
$stack->push($request);
$lang = $service->getCurrentPrimaryLanguage();
$this->assertSame('fr', $lang);
$stack->pop();
$lang = $service->getCurrentPrimaryLanguage();
$this->assertSame('en', $lang);
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment