Beispiel #1
0
 /**
  * @param MvcEvent $event
  *
  * @return MvcEvent
  */
 public function __invoke(MvcEvent $event)
 {
     if (!($result = $this->langRecognizer->recognize($event))) {
         return false;
     }
     list($lang, $newLocale, $routeMatchLang) = $result;
     if ($result = $this->langRedirector->checkRedirect($event, $lang, $routeMatchLang)) {
         return $event;
     }
     \Locale::setDefault($newLocale);
     /** @var Translator $translator */
     $translator = $this->mvcTranslator->getTranslator();
     $translator->setLocale($newLocale);
     AbstractValidator::setDefaultTranslator($this->mvcTranslator);
     return $event;
 }
 /**
  * @dataProvider dataProviderForTestRecognize_WhenShouldRedirectToRecognizedLanguageIsEnabled
  *
  * @param string $browserLangLocale
  * @param string $routeMatchLang
  * @param array  $expectedResult
  */
 public function testRecognize_WhenShouldRedirectToRecognizedLanguageIsEnabled($browserLangLocale, $routeMatchLang, $expectedResult)
 {
     $this->prepareTestedObject($this->prepareConfig(true));
     $request = new Request();
     $request->getHeaders()->addHeaderLine('Accept-Language', $browserLangLocale);
     $paramsBefore = ['__NAMESPACE__' => 'Module\\Some', 'controller' => 'TestController', 'action' => 'index', 'lang' => $routeMatchLang, '__CONTROLLER__' => 'test'];
     $routeMatch = new RouteMatch($paramsBefore);
     $matchedRouteName = 'some\\test';
     $routeMatch->setMatchedRouteName($matchedRouteName);
     $event = new MvcEvent();
     $event->setRequest($request);
     $event->setResponse(new Response());
     $event->setRouteMatch($routeMatch);
     $result = $this->testedObject->recognize($event);
     $this->assertSame($expectedResult, $result);
 }