/** * @param Request $request * @param string $code * * @return Response */ public function switchAction(Request $request, $code) { if (!in_array($code, $this->localeProvider->getAvailableLocalesCodes())) { throw new HttpException(Response::HTTP_NOT_ACCEPTABLE, sprintf('The locale code "%s" is invalid.', $code)); } $this->localeChangeHandler->handle($code); return new RedirectResponse($request->headers->get('referer', $request->getBaseUrl())); }
function it_handles_locale_changing_by_all_nested_handlers(LocaleChangeHandlerInterface $firstLocaleChangeHandler, LocaleChangeHandlerInterface $secondLocaleChangeHandler) { $firstLocaleChangeHandler->handle('en_GB')->shouldBeCalled(); $secondLocaleChangeHandler->handle('en_GB')->shouldBeCalled(); $this->addHandler($firstLocaleChangeHandler); $this->addHandler($secondLocaleChangeHandler); $this->handle('en_GB'); }