Browse Source

Fix grammar and use an early return.

mark_story 10 years ago
parent
commit
1f50eec608

+ 6 - 4
src/I18n/Middleware/LocaleSelectorMiddleware.php

@@ -46,14 +46,16 @@ class LocaleSelectorMiddleware
     /**
      * @param ServerRequestInterface $request  The request.
      * @param ResponseInterface $response The response.
-     * @param callable $next The next middleware to call
-     * @return \Psr\Http\Message\ResponseInterface A response
+     * @param callable $next The next middleware to call.
+     * @return \Psr\Http\Message\ResponseInterface A response.
      */
     public function __invoke(ServerRequestInterface $request, ResponseInterface $response, $next)
     {
         $locale = Locale::acceptFromHttp($request->getHeaderLine('Accept-Language'));
-
-        if ($locale && (in_array($locale, $this->locales) || $this->locales === ['*'])) {
+        if (!$locale) {
+            return $next($request, $response);
+        }
+        if (in_array($locale, $this->locales) || $this->locales === ['*']) {
             I18n::locale($locale);
         }
         return $next($request, $response);

+ 6 - 0
tests/TestCase/I18n/Middleware/LocaleSelectorMiddlewareTest.php

@@ -65,6 +65,12 @@ class LocaleSelectorMiddlewareTest extends TestCase
         $middleware = new LocaleSelectorMiddleware([]);
         $middleware($request, $response, $this->next);
         $this->assertSame($this->locale, I18n::locale());
+
+        $request = ServerRequestFactory::fromGlobals(['HTTP_ACCEPT_LANGUAGE' => 'garbage']);
+        $response = new Response();
+        $middleware = new LocaleSelectorMiddleware([]);
+        $middleware($request, $response, $this->next);
+        $this->assertSame($this->locale, I18n::locale());
     }
 
     /**