From 2a9221d5569ca5577b9938235674c3406f85a91c Mon Sep 17 00:00:00 2001
From: Alex Pott <alex.a.pott@googlemail.com>
Date: Thu, 29 Sep 2022 18:01:55 +0100
Subject: [PATCH] Issue #2341553 by GoZ, DuaelFr, smustgrave, Prashant.c,
 Rajender Rajan, Lendude, marvin_B8, voleger, dawehner: Use routing to
 generate update.php url

---
 .../Core/Installer/Exception/AlreadyInstalledException.php     | 2 ++
 .../src/Functional/LocaleTranslatedSchemaDefinitionTest.php    | 3 ++-
 .../src/Functional/UpdateSystem/InvalidUpdateHookTest.php      | 3 ++-
 .../tests/src/Functional/UpdateSystem/UpdatesWith7xTest.php    | 3 ++-
 4 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/core/lib/Drupal/Core/Installer/Exception/AlreadyInstalledException.php b/core/lib/Drupal/Core/Installer/Exception/AlreadyInstalledException.php
index 465059561680..02d2995fd56c 100644
--- a/core/lib/Drupal/Core/Installer/Exception/AlreadyInstalledException.php
+++ b/core/lib/Drupal/Core/Installer/Exception/AlreadyInstalledException.php
@@ -21,6 +21,8 @@ public function __construct(TranslationInterface $string_translation) {
     $title = $this->t('Drupal already installed');
     $replacements = [
       ':base-url' => $GLOBALS['base_url'],
+      // We cannot use the route system.db_update here because we are too early
+      // in the execution stack.
       ':update-url' => $GLOBALS['base_path'] . 'update.php',
     ];
     $message = $this->t('<ul>
diff --git a/core/modules/locale/tests/src/Functional/LocaleTranslatedSchemaDefinitionTest.php b/core/modules/locale/tests/src/Functional/LocaleTranslatedSchemaDefinitionTest.php
index 85148eebb703..445ea672d2da 100644
--- a/core/modules/locale/tests/src/Functional/LocaleTranslatedSchemaDefinitionTest.php
+++ b/core/modules/locale/tests/src/Functional/LocaleTranslatedSchemaDefinitionTest.php
@@ -2,6 +2,7 @@
 
 namespace Drupal\Tests\locale\Functional;
 
+use Drupal\Core\Url;
 use Drupal\language\Entity\ConfigurableLanguage;
 use Drupal\Tests\BrowserTestBase;
 use Drupal\Tests\RequirementsPageTrait;
@@ -71,7 +72,7 @@ public function testTranslatedUpdate() {
     // Visit the update page to collect any strings that may be translatable.
     $user = $this->drupalCreateUser(['administer software updates']);
     $this->drupalLogin($user);
-    $update_url = $GLOBALS['base_url'] . '/update.php';
+    $update_url = Url::fromRoute('system.db_update')->setAbsolute()->toString();
 
     // Collect strings from the PHP warning page, if applicable, as well as the
     // main update page.
diff --git a/core/modules/system/tests/src/Functional/UpdateSystem/InvalidUpdateHookTest.php b/core/modules/system/tests/src/Functional/UpdateSystem/InvalidUpdateHookTest.php
index 3f6f666bec2a..8412ab1f0e52 100644
--- a/core/modules/system/tests/src/Functional/UpdateSystem/InvalidUpdateHookTest.php
+++ b/core/modules/system/tests/src/Functional/UpdateSystem/InvalidUpdateHookTest.php
@@ -2,6 +2,7 @@
 
 namespace Drupal\Tests\system\Functional\UpdateSystem;
 
+use Drupal\Core\Url;
 use Drupal\Tests\BrowserTestBase;
 use Drupal\Tests\RequirementsPageTrait;
 
@@ -52,7 +53,7 @@ protected function setUp(): void {
     parent::setUp();
     require_once $this->root . '/core/includes/update.inc';
 
-    $this->updateUrl = $GLOBALS['base_url'] . '/update.php';
+    $this->updateUrl = Url::fromRoute('system.db_update')->setAbsolute()->toString();
     $this->updateUser = $this->drupalCreateUser([
       'administer software updates',
     ]);
diff --git a/core/modules/system/tests/src/Functional/UpdateSystem/UpdatesWith7xTest.php b/core/modules/system/tests/src/Functional/UpdateSystem/UpdatesWith7xTest.php
index 7c50ceed8bb8..e12b58687314 100644
--- a/core/modules/system/tests/src/Functional/UpdateSystem/UpdatesWith7xTest.php
+++ b/core/modules/system/tests/src/Functional/UpdateSystem/UpdatesWith7xTest.php
@@ -2,6 +2,7 @@
 
 namespace Drupal\Tests\system\Functional\UpdateSystem;
 
+use Drupal\Core\Url;
 use Drupal\Tests\BrowserTestBase;
 use Drupal\Tests\RequirementsPageTrait;
 
@@ -45,7 +46,7 @@ class UpdatesWith7xTest extends BrowserTestBase {
   protected function setUp(): void {
     parent::setUp();
     require_once $this->root . '/core/includes/update.inc';
-    $this->updateUrl = $GLOBALS['base_url'] . '/update.php';
+    $this->updateUrl = Url::fromRoute('system.db_update')->setAbsolute()->toString();
     $this->updateUser = $this->drupalCreateUser([
       'administer software updates',
     ]);
-- 
GitLab