public function testLanguageSubdirectoryResolver() { $url = 'http://example.com/foo/bar'; $request = new ServerRequest([], [], $url); $environment = new Environment(); $environment->setRequest($request); $environment->setDefaultLanguage('en'); $environment->setSupportedLanguages(['en', 'fr', 'nl']); $languageResolver = new LanguageSubdirectoryResolver($environment); $language = $languageResolver->resolve($request); $this->assertSame('en', $language); $environment->setLanguageResolver($languageResolver); $uriBuilder = new UriBuilder($environment); $this->assertSame('/foo/bar', $uriBuilder->buildUri($request->getUri()->getPath(), null, false)); $this->assertSame($url, $uriBuilder->buildUri($request->getUri()->getPath(), null, true)); $this->assertSame('http://example.com/fr/foo/bar', $uriBuilder->buildUri($request->getUri()->getPath(), 'fr', true)); $url = 'http://example.com:8080/foo/bar'; $request = new ServerRequest([], [], $url); $environment->setRequest($request); $languageResolver = new LanguageSubdirectoryResolver($environment); $language = $languageResolver->resolve($request); $this->assertSame('en', $language); $environment->setLanguageResolver($languageResolver); $uriBuilder = new UriBuilder($environment); $this->assertSame('http://example.com:8080/fr/foo/bar', $uriBuilder->buildUri($request->getUri()->getPath(), 'fr', true)); $url = 'http://example.com/fr/pomme/framboise'; $request = new ServerRequest([], [], $url); $environment->setRequest($request); $languageResolver = new LanguageSubdirectoryResolver($environment); $language = $languageResolver->resolve($request); $this->assertSame('fr', $language); $environment->setLanguageResolver($languageResolver); $uriBuilder = new UriBuilder($environment); $this->assertSame('/fr/pomme/framboise', $uriBuilder->buildUri($request->getUri()->getPath(), null, false)); $this->assertSame($url, $uriBuilder->buildUri($request->getUri()->getPath(), null, true)); }
private function registerEnvironment() { $environment = new Environment(); $environment->setRequest($this->request)->setResponse($this->response)->setBasePathResolver('auto'); $this->container->share($environment); }