Skip to content

Commit 4d825e2

Browse files
Merge pull request #920 from mcamara/fix-locale-cookie
Fix incorrect parameter usage in LocaleCookieRedirect
2 parents a19ddcc + 443610a commit 4d825e2

File tree

2 files changed

+37
-1
lines changed

2 files changed

+37
-1
lines changed

src/Mcamara/LaravelLocalization/Middleware/LocaleCookieRedirect.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ public function handle($request, Closure $next)
5656
$redirection = app('laravellocalization')->getLocalizedURL($locale);
5757
$redirectResponse = new RedirectResponse($redirection, 302, ['Vary' => 'Accept-Language']);
5858

59-
return $redirectResponse->withCookie(cookie()->forever('locale', $params[0]));
59+
return $redirectResponse->withCookie(cookie()->forever('locale', $locale));
6060
}
6161

6262
return $next($request);

tests/LaravelLocalizationTest.php

+36
Original file line numberDiff line numberDiff line change
@@ -861,4 +861,40 @@ public function testSetLocaleWithMapping(): void
861861
$this->assertEquals('http://localhost/custom/some-route', app('laravellocalization')->localizeURL('some-route', 'custom'));
862862
$this->assertEquals('http://localhost/custom', app('laravellocalization')->localizeURL('http://localhost/custom', 'en'));
863863
}
864+
865+
866+
867+
public function testRedirectWithHiddenDefaultLocaleInUrlAndSavedLocale()
868+
{
869+
app('router')->group([
870+
'prefix' => app('laravellocalization')->setLocale(),
871+
'middleware' => [
872+
'Mcamara\LaravelLocalization\Middleware\LaravelLocalizationRedirectFilter',
873+
'Mcamara\LaravelLocalization\Middleware\LocaleCookieRedirect',
874+
],
875+
], function (){
876+
app('router')->get('/', ['as'=> 'index', function () {
877+
return 'Index page';
878+
}, ]);
879+
});
880+
881+
app('config')->set('laravellocalization.hideDefaultLocaleInURL', true);
882+
883+
$savedLocale = 'es';
884+
885+
$crawler = $this->call(
886+
'GET',
887+
self::$testUrl,
888+
[],
889+
['locale' => $savedLocale],
890+
[],
891+
[]
892+
);
893+
894+
$this->assertResponseStatus(302);
895+
$this->assertRedirectedTo(self::$testUrl . $savedLocale);
896+
897+
$localeCookie = $crawler->headers->getCookies()[0];
898+
$this->assertEquals($savedLocale, $localeCookie->getValue());
899+
}
864900
}

0 commit comments

Comments
 (0)