diff --git a/core/lib/Drupal/Core/Routing/UrlGenerator.php b/core/lib/Drupal/Core/Routing/UrlGenerator.php index 53ac95d..eb3d5f7 100644 --- a/core/lib/Drupal/Core/Routing/UrlGenerator.php +++ b/core/lib/Drupal/Core/Routing/UrlGenerator.php @@ -197,10 +197,17 @@ public function generateFromRoute($name, $parameters = array(), $options = array $scheme = $req; } $port = ''; - if ('http' === $scheme && 80 != $this->context->getHttpPort()) { - $port = ':' . $this->context->getHttpPort(); - } elseif ('https' === $scheme && 443 != $this->context->getHttpsPort()) { - $port = ':' . $this->context->getHttpsPort(); + if ('http' === $scheme) { + $http_port = $this->context->getHttpPort(); + if ($http_port && $http_port != 80) { + $port = ':' . $http_port; + } + } + elseif ('https' === $scheme) { + $https_port = $this->context->getHttpsPort(); + if ($https_port && $https_port != 443) { + $port = ':' . $https_port; + } } return $scheme . '://' . $host . $port . $base_url . $path . $fragment; } diff --git a/core/modules/system/lib/Drupal/system/Tests/Theme/ThemeTestTwig.php b/core/modules/system/lib/Drupal/system/Tests/Theme/ThemeTestTwig.php index 801062b..48f1bf0 100644 --- a/core/modules/system/lib/Drupal/system/Tests/Theme/ThemeTestTwig.php +++ b/core/modules/system/lib/Drupal/system/Tests/Theme/ThemeTestTwig.php @@ -56,15 +56,18 @@ public function testTwigUrlGenerator() { $url_generator = $this->container->get('url_generator'); $link_generator = $this->container->get('link_generator'); $expected = array( - 'url: ' . $url_generator->generateFromPath('user/register'), - 'url: ' . $url_generator->generateFromPath('user/register', array('absolute' => TRUE)), - 'get_url: ' . $url_generator->generateFromRoute('user_register'), - 'get_url: ' . $url_generator->generateFromRoute('user_register', array(), array('absolute' => TRUE)), - 'get_url: ' . $url_generator->generateFromRoute('user_register', array(), array('absolute' => TRUE, 'fragment' => 'bottom')), - 'get_link: ' . $link_generator->generate('Register', 'user_register'), - 'get_link: ' . $link_generator->generate('Register', 'user_register', array(), array('absolute' => TRUE)), - 'get_link: ' . $link_generator->generate('Register', 'user_register', array(), array('absolute' => TRUE, 'fragment' => 'bottom')), + 'url not absolute: ' . $url_generator->generateFromPath('user/register'), + 'url absolute: ' . $url_generator->generateFromPath('user/register', array('absolute' => TRUE)), + 'get_url not absolute: ' . $url_generator->generateFromRoute('user_register'), + 'get_url absolute: ' . $url_generator->generateFromRoute('user_register', array(), array('absolute' => TRUE)), + 'get_url absolute with fragment: ' . $url_generator->generateFromRoute('user_register', array(), array('absolute' => TRUE, 'fragment' => 'bottom')), + 'get_link not absolute: ' . $link_generator->generate('Register', 'user_register'), + 'get_link absolute: ' . $link_generator->generate('Register', 'user_register', array(), array('absolute' => TRUE)), + 'get_link absolute with fragment: ' . $link_generator->generate('Register', 'user_register', array(), array('absolute' => TRUE, 'fragment' => 'bottom')), ); + // Make sure we got something. + $content = $this->drupalGetContent(); + $this->assertFalse(empty($content), 'Page content is not empty'); foreach ($expected as $string) { $this->assertRaw('
' . $string . '
'); } diff --git a/core/modules/system/tests/modules/twig_theme_test/templates/twig_theme_test.url_generator.html.twig b/core/modules/system/tests/modules/twig_theme_test/templates/twig_theme_test.url_generator.html.twig index 3665049..c66e789 100644 --- a/core/modules/system/tests/modules/twig_theme_test/templates/twig_theme_test.url_generator.html.twig +++ b/core/modules/system/tests/modules/twig_theme_test/templates/twig_theme_test.url_generator.html.twig @@ -1,20 +1,20 @@ {# Test the url twig function #} -
url: {{ url('user/register') }}
+
url not absolute: {{ url('user/register') }}
-
url: {{ url('user/register', {'absolute': 1 }) }}
+
url absolute: {{ url('user/register', {'absolute': 1 }) }}
{# Test the get_url twig function #} -
get_url: {{ get_url('user_register') }}
+
get_url not absolute: {{ get_url('user_register') }}
-
get_url: {{ get_url('user_register', {}, {'absolute': '1' }) }}
+
get_url absolute: {{ get_url('user_register', {}, {'absolute': '1' }) }}
-
get_url: {{ get_url('user_register', {}, {'absolute': '1', 'fragment': 'bottom' }) }}
+
get_url absolute with fragment: {{ get_url('user_register', {}, {'absolute': '1', 'fragment': 'bottom' }) }}
{# Test the get_link twig function #} -
get_link: {{ get_link('Register', 'user_register') }}
+
get_link not absolute: {{ get_link('Register', 'user_register') }}
-
get_link: {{ get_link('Register', 'user_register', {}, {'absolute': '1' }) }}
+
get_link absolute: {{ get_link('Register', 'user_register', {}, {'absolute': '1' }) }}
-
get_link: {{ get_link('Register', 'user_register', {}, {'absolute': '1', 'fragment': 'bottom' }) }}
\ No newline at end of file +
get_link absolute with fragment: {{ get_link('Register', 'user_register', {}, {'absolute': '1', 'fragment': 'bottom' }) }}
diff --git a/core/scripts/run-tests.sh b/core/scripts/run-tests.sh index 31a9c89..da92b1f 100755 --- a/core/scripts/run-tests.sh +++ b/core/scripts/run-tests.sh @@ -298,6 +298,7 @@ function simpletest_script_init($server_software) { } $_SERVER['HTTP_HOST'] = $host; + $_SERVER['SERVER_PORT'] = isset($parsed_url['port']) ? $parsed_url['port'] : 80; $_SERVER['REMOTE_ADDR'] = '127.0.0.1'; $_SERVER['SERVER_ADDR'] = '127.0.0.1'; $_SERVER['SERVER_SOFTWARE'] = $server_software;