Example #1
0
 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));
 }