From 39d743b8f1676ce8a3c77ee7ffa9885490a32f8a Mon Sep 17 00:00:00 2001
From: catch <catch@35733.no-reply.drupal.org>
Date: Sun, 21 Apr 2024 12:07:12 +0100
Subject: [PATCH] Issue #3440424 by alexpott: Inconsistent behaviour with
 drupalGet() when site is installed in a subdirectory

---
 .../FunctionalTests/BrowserTestBaseTest.php      | 16 +++++++++++++++-
 core/tests/Drupal/Tests/UiHelperTrait.php        |  4 ++++
 2 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/core/tests/Drupal/FunctionalTests/BrowserTestBaseTest.php b/core/tests/Drupal/FunctionalTests/BrowserTestBaseTest.php
index 301aaa43cee3..ba576a6359b9 100644
--- a/core/tests/Drupal/FunctionalTests/BrowserTestBaseTest.php
+++ b/core/tests/Drupal/FunctionalTests/BrowserTestBaseTest.php
@@ -11,6 +11,7 @@
 use Drupal\Tests\BrowserTestBase;
 use Drupal\Tests\StreamCapturer;
 use Drupal\Tests\Traits\Core\CronRunTrait;
+use Drupal\Tests\Traits\Core\PathAliasTestTrait;
 use Drupal\user\Entity\Role;
 use PHPUnit\Framework\ExpectationFailedException;
 use Symfony\Component\HttpFoundation\Request;
@@ -24,7 +25,7 @@
  * @group #slow
  */
 class BrowserTestBaseTest extends BrowserTestBase {
-
+  use PathAliasTestTrait;
   use CronRunTrait;
 
   /**
@@ -123,6 +124,19 @@ public function testDrupalGet() {
     $this->drupalGet('/test-page/');
     $this->assertSession()->statusCodeEquals(200);
     $this->assertSession()->addressEquals('/test-page/');
+    // Test alias handling.
+    $this->createPathAlias('/test-page', '/test-alias');
+    $this->rebuildAll();
+    $this->drupalGet('test-page');
+    $this->assertSession()->statusCodeEquals(200);
+    $this->assertSession()->addressEquals('test-alias');
+    $this->drupalGet('/test-page');
+    $this->assertSession()->statusCodeEquals(200);
+    $this->assertSession()->addressEquals('test-alias');
+    $this->drupalGet('/test-page/');
+    $this->assertSession()->statusCodeEquals(200);
+    $this->assertSession()->addressEquals('/test-page/');
+
   }
 
   /**
diff --git a/core/tests/Drupal/Tests/UiHelperTrait.php b/core/tests/Drupal/Tests/UiHelperTrait.php
index bcf5af79192b..71d6bc97b8fa 100644
--- a/core/tests/Drupal/Tests/UiHelperTrait.php
+++ b/core/tests/Drupal/Tests/UiHelperTrait.php
@@ -301,6 +301,10 @@ protected function buildUrl($path, array $options = []) {
       if (substr($path, 0, $length) === $base_path) {
         $path = substr($path, $length);
       }
+      // Additionally strip any forward slashes.
+      if (strlen($path) > 1) {
+        $path = ltrim($path, '/');
+      }
 
       $force_internal = isset($options['external']) && $options['external'] == FALSE;
       if (!$force_internal && UrlHelper::isExternal($path)) {
-- 
GitLab