From f3fc637adf4bf4d28a7385d405051a36784bb99b Mon Sep 17 00:00:00 2001
From: "kunal.sachdev" <kunal.sachdev@3685163.no-reply.drupal.org>
Date: Wed, 4 May 2022 13:54:52 +0000
Subject: [PATCH] Issue #3274047 by kunal.sachdev, phenaproxima: Do not use
 rootUser in tests unless absolutely necessary

---
 .../tests/src/Functional/UpdaterFormTest.php     |  7 ++++++-
 package_manager/package_manager.install          |  4 ++--
 tests/src/Functional/UpdateLockTest.php          |  5 ++++-
 tests/src/Functional/UpdaterFormTest.php         | 16 ++++++++++++++--
 4 files changed, 26 insertions(+), 6 deletions(-)

diff --git a/automatic_updates_extensions/tests/src/Functional/UpdaterFormTest.php b/automatic_updates_extensions/tests/src/Functional/UpdaterFormTest.php
index 5a3cb665f5..3c7c20e9e0 100644
--- a/automatic_updates_extensions/tests/src/Functional/UpdaterFormTest.php
+++ b/automatic_updates_extensions/tests/src/Functional/UpdaterFormTest.php
@@ -64,7 +64,12 @@ class UpdaterFormTest extends AutomaticUpdatesFunctionalTestBase {
   protected function setUp(): void {
     parent::setUp();
     $this->setReleaseMetadata(__DIR__ . '/../../fixtures/release-history/semver_test.1.1.xml');
-    $this->drupalLogin($this->rootUser);
+    $user = $this->createUser([
+      'administer site configuration',
+      'administer software updates',
+      'access site in maintenance mode',
+    ]);
+    $this->drupalLogin($user);
     $this->drupalPlaceBlock('local_tasks_block', ['primary' => TRUE]);
   }
 
diff --git a/package_manager/package_manager.install b/package_manager/package_manager.install
index 7048207067..c4fb7265e2 100644
--- a/package_manager/package_manager.install
+++ b/package_manager/package_manager.install
@@ -8,7 +8,7 @@
 /**
  * Implements hook_requirements().
  */
-function package_manager_requirements() {
+function package_manager_requirements(string $phase) {
   $requirements = [];
 
   if (!class_exists('PhpTuf\ComposerStager\Domain\Beginner')) {
@@ -18,7 +18,7 @@ function package_manager_requirements() {
       'severity' => REQUIREMENT_ERROR,
     ];
   }
-  if (extension_loaded('xdebug')) {
+  if ($phase === 'runtime' && extension_loaded('xdebug')) {
     $requirements['package_manager_xdebug'] = [
       'title' => 'Xdebug enabled',
       'description' => t('Xdebug is enabled, which may have a negative performance impact on Package Manager and any modules that use it.'),
diff --git a/tests/src/Functional/UpdateLockTest.php b/tests/src/Functional/UpdateLockTest.php
index 07634ed400..df5d5ad8ed 100644
--- a/tests/src/Functional/UpdateLockTest.php
+++ b/tests/src/Functional/UpdateLockTest.php
@@ -31,7 +31,10 @@ class UpdateLockTest extends AutomaticUpdatesFunctionalTestBase {
   protected function setUp(): void {
     parent::setUp();
 
-    $this->drupalLogin($this->rootUser);
+    $user = $this->createUser([
+      'administer site configuration',
+    ]);
+    $this->drupalLogin($user);
     $this->checkForUpdates();
   }
 
diff --git a/tests/src/Functional/UpdaterFormTest.php b/tests/src/Functional/UpdaterFormTest.php
index 01a4346fa2..453ee42a33 100644
--- a/tests/src/Functional/UpdaterFormTest.php
+++ b/tests/src/Functional/UpdaterFormTest.php
@@ -50,7 +50,15 @@ class UpdaterFormTest extends AutomaticUpdatesFunctionalTestBase {
     parent::setUp();
 
     $this->setReleaseMetadata(__DIR__ . '/../../fixtures/release-history/drupal.9.8.1-security.xml');
-    $this->drupalLogin($this->rootUser);
+    $user = $this->createUser([
+      'administer site configuration',
+      'administer software updates',
+      'access administration pages',
+      'access site in maintenance mode',
+      'administer modules',
+      'access site reports',
+    ]);
+    $this->drupalLogin($user);
     $this->checkForUpdates();
   }
 
@@ -307,7 +315,11 @@ class UpdaterFormTest extends AutomaticUpdatesFunctionalTestBase {
 
     // We should get the same error if we log in as another user and try to
     // delete the staged update.
-    $this->drupalLogin($this->rootUser);
+    $user = $this->createUser([
+      'administer software updates',
+      'access site in maintenance mode',
+    ]);
+    $this->drupalLogin($user);
     $this->drupalGet('/admin/reports/updates/automatic-update');
     $assert_session->pageTextContains($conflict_message);
     $page->pressButton('Delete existing update');
-- 
GitLab