Exemplo n.º 1
0
 /**
  * Tests path-based URL generation.
  */
 public function testPathBasedURLGeneration()
 {
     $base_path = '/subdir';
     $base_url = 'http://www.example.com' . $base_path;
     $this->generator->setBasePath($base_path . '/');
     $this->generator->setBaseUrl($base_url . '/');
     foreach (array('', 'index.php/') as $script_path) {
         $this->generator->setScriptPath($script_path);
         foreach (array(FALSE, TRUE) as $absolute) {
             // Get the expected start of the path string.
             $base = ($absolute ? $base_url . '/' : $base_path . '/') . $script_path;
             $url = $base . 'node/123';
             $result = $this->generator->generateFromPath('node/123', array('absolute' => $absolute));
             $this->assertEquals($url, $result, "{$url} == {$result}");
             $url = $base . 'node/123#foo';
             $result = $this->generator->generateFromPath('node/123', array('fragment' => 'foo', 'absolute' => $absolute));
             $this->assertEquals($url, $result, "{$url} == {$result}");
             $url = $base . 'node/123?foo';
             $result = $this->generator->generateFromPath('node/123', array('query' => array('foo' => NULL), 'absolute' => $absolute));
             $this->assertEquals($url, $result, "{$url} == {$result}");
             $url = $base . 'node/123?foo=bar&bar=baz';
             $result = $this->generator->generateFromPath('node/123', array('query' => array('foo' => 'bar', 'bar' => 'baz'), 'absolute' => $absolute));
             $this->assertEquals($url, $result, "{$url} == {$result}");
             $url = $base . 'node/123?foo#bar';
             $result = $this->generator->generateFromPath('node/123', array('query' => array('foo' => NULL), 'fragment' => 'bar', 'absolute' => $absolute));
             $this->assertEquals($url, $result, "{$url} == {$result}");
             $url = $base;
             $result = $this->generator->generateFromPath('<front>', array('absolute' => $absolute));
             $this->assertEquals($url, $result, "{$url} == {$result}");
         }
     }
 }
Exemplo n.º 2
0
 /**
  * Tests path-based URL generation.
  */
 public function testPathBasedURLGeneration()
 {
     $base_path = '/subdir';
     $base_url = 'http://www.example.com' . $base_path;
     foreach (array('', 'index.php/') as $script_path) {
         foreach (array(FALSE, TRUE) as $absolute) {
             // Setup a fake request which looks like a Drupal installed under the
             // subdir "subdir" on the domain www.example.com.
             // To reproduce the values install Drupal like that and use a debugger.
             $server = ['SCRIPT_NAME' => '/subdir/index.php', 'SCRIPT_FILENAME' => $this->root . '/index.php', 'SERVER_NAME' => 'http://www.example.com'];
             $request = Request::create('/subdir/' . $script_path, 'GET', [], [], [], $server);
             $request->headers->set('host', ['www.example.com']);
             $this->requestStack->push($request);
             // Determine the expected cacheability.
             $expected_cacheability = (new CacheableMetadata())->setCacheContexts($absolute ? ['url.site'] : [])->setCacheMaxAge(Cache::PERMANENT);
             // Get the expected start of the path string.
             $base = ($absolute ? $base_url . '/' : $base_path . '/') . $script_path;
             $url = $base . 'node/123';
             $result = $this->generator->generateFromPath('node/123', array('absolute' => $absolute));
             $this->assertEquals($url, $result, "{$url} == {$result}");
             $generated_url = $this->generator->generateFromPath('node/123', array('absolute' => $absolute), TRUE);
             $this->assertEquals($url, $generated_url->getGeneratedUrl(), "{$url} == {$result}");
             $this->assertEquals($expected_cacheability, CacheableMetadata::createFromObject($generated_url));
             $url = $base . 'node/123#foo';
             $result = $this->generator->generateFromPath('node/123', array('fragment' => 'foo', 'absolute' => $absolute));
             $this->assertEquals($url, $result, "{$url} == {$result}");
             $generated_url = $this->generator->generateFromPath('node/123', array('fragment' => 'foo', 'absolute' => $absolute), TRUE);
             $this->assertEquals($url, $generated_url->getGeneratedUrl(), "{$url} == {$result}");
             $this->assertEquals($expected_cacheability, CacheableMetadata::createFromObject($generated_url));
             $url = $base . 'node/123?foo';
             $result = $this->generator->generateFromPath('node/123', array('query' => array('foo' => NULL), 'absolute' => $absolute));
             $this->assertEquals($url, $result, "{$url} == {$result}");
             $generated_url = $this->generator->generateFromPath('node/123', array('query' => array('foo' => NULL), 'absolute' => $absolute), TRUE);
             $this->assertEquals($url, $generated_url->getGeneratedUrl(), "{$url} == {$result}");
             $this->assertEquals($expected_cacheability, CacheableMetadata::createFromObject($generated_url));
             $url = $base . 'node/123?foo=bar&bar=baz';
             $result = $this->generator->generateFromPath('node/123', array('query' => array('foo' => 'bar', 'bar' => 'baz'), 'absolute' => $absolute));
             $this->assertEquals($url, $result, "{$url} == {$result}");
             $generated_url = $this->generator->generateFromPath('node/123', array('query' => array('foo' => 'bar', 'bar' => 'baz'), 'absolute' => $absolute), TRUE);
             $this->assertEquals($url, $generated_url->getGeneratedUrl(), "{$url} == {$result}");
             $this->assertEquals($expected_cacheability, CacheableMetadata::createFromObject($generated_url));
             $url = $base . 'node/123?foo#bar';
             $result = $this->generator->generateFromPath('node/123', array('query' => array('foo' => NULL), 'fragment' => 'bar', 'absolute' => $absolute));
             $this->assertEquals($url, $result, "{$url} == {$result}");
             $generated_url = $this->generator->generateFromPath('node/123', array('query' => array('foo' => NULL), 'fragment' => 'bar', 'absolute' => $absolute), TRUE);
             $this->assertEquals($url, $generated_url->getGeneratedUrl(), "{$url} == {$result}");
             $this->assertEquals($expected_cacheability, CacheableMetadata::createFromObject($generated_url));
             $url = $base;
             $result = $this->generator->generateFromPath('<front>', array('absolute' => $absolute));
             $this->assertEquals($url, $result, "{$url} == {$result}");
             $generated_url = $this->generator->generateFromPath('<front>', array('absolute' => $absolute), TRUE);
             $this->assertEquals($url, $generated_url->getGeneratedUrl(), "{$url} == {$result}");
             $this->assertEquals($expected_cacheability, CacheableMetadata::createFromObject($generated_url));
         }
     }
 }