From 554f305ce54b74e33349ed5bdb36ae3faa51d05c Mon Sep 17 00:00:00 2001
From: nod_ <nod_@598310.no-reply.drupal.org>
Date: Sun, 28 Jul 2024 03:02:17 +0200
Subject: [PATCH] Issue #3439835 by pooja_sharma, thebumik, FeyP, smustgrave,
 vensires: Fix Field UI tests that rely on UID1's super user behavior

(cherry picked from commit 139bf7296809d1aea05d8ccdfff7979197ba29ad)
---
 .../EntityReference/EntityReferenceXSSTest.php   | 12 +++---------
 .../Functional/FieldDefaultValueCallbackTest.php | 14 ++++----------
 .../tests/src/Functional/FieldUIRouteTest.php    | 16 +++++++---------
 3 files changed, 14 insertions(+), 28 deletions(-)

diff --git a/core/modules/field/tests/src/Functional/EntityReference/EntityReferenceXSSTest.php b/core/modules/field/tests/src/Functional/EntityReference/EntityReferenceXSSTest.php
index 5bb52d6206f1..8503a3e52cdb 100644
--- a/core/modules/field/tests/src/Functional/EntityReference/EntityReferenceXSSTest.php
+++ b/core/modules/field/tests/src/Functional/EntityReference/EntityReferenceXSSTest.php
@@ -25,14 +25,6 @@ class EntityReferenceXSSTest extends BrowserTestBase {
    */
   protected static $modules = ['node'];
 
-  /**
-   * {@inheritdoc}
-   *
-   * @todo Remove and fix test to not rely on super user.
-   * @see https://www.drupal.org/project/drupal/issues/3437620
-   */
-  protected bool $usesSuperUserAccessPolicy = TRUE;
-
   /**
    * {@inheritdoc}
    */
@@ -68,7 +60,9 @@ public function testEntityReferenceXSS(): void {
       ->save();
 
     // Create a node and reference the node with markup in the title.
-    $this->drupalLogin($this->rootUser);
+    $this->drupalLogin($this->drupalCreateUser([
+      'create article content',
+    ]));
     $this->drupalGet('node/add/article');
     $this->assertSession()->assertEscaped($referenced_node->getTitle());
     $this->assertSession()->assertEscaped($node_type_two->label());
diff --git a/core/modules/field/tests/src/Functional/FieldDefaultValueCallbackTest.php b/core/modules/field/tests/src/Functional/FieldDefaultValueCallbackTest.php
index f9405facbc69..c1be67840f96 100644
--- a/core/modules/field/tests/src/Functional/FieldDefaultValueCallbackTest.php
+++ b/core/modules/field/tests/src/Functional/FieldDefaultValueCallbackTest.php
@@ -22,14 +22,6 @@ class FieldDefaultValueCallbackTest extends BrowserTestBase {
    */
   protected static $modules = ['node', 'field_test', 'field_ui'];
 
-  /**
-   * {@inheritdoc}
-   *
-   * @todo Remove and fix test to not rely on super user.
-   * @see https://www.drupal.org/project/drupal/issues/3437620
-   */
-  protected bool $usesSuperUserAccessPolicy = TRUE;
-
   /**
    * {@inheritdoc}
    */
@@ -58,6 +50,10 @@ protected function setUp(): void {
       ]);
     }
 
+    $this->drupalLogin($this->drupalCreateUser([
+      'administer node fields',
+    ]));
+
   }
 
   public function testDefaultValueCallbackForm(): void {
@@ -76,8 +72,6 @@ public function testDefaultValueCallbackForm(): void {
     ]);
     $field_config->save();
 
-    $this->drupalLogin($this->rootUser);
-
     // Check that the default field form is visible when no callback is set.
     $this->drupalGet('/admin/structure/types/manage/article/fields/node.article.field_test');
     $this->assertSession()->fieldValueEquals('default_value_input[field_test][0][value]', '');
diff --git a/core/modules/field_ui/tests/src/Functional/FieldUIRouteTest.php b/core/modules/field_ui/tests/src/Functional/FieldUIRouteTest.php
index a720046ad331..3bbd99518ad6 100644
--- a/core/modules/field_ui/tests/src/Functional/FieldUIRouteTest.php
+++ b/core/modules/field_ui/tests/src/Functional/FieldUIRouteTest.php
@@ -22,14 +22,6 @@ class FieldUIRouteTest extends BrowserTestBase {
    */
   protected static $modules = ['block', 'entity_test', 'field_ui'];
 
-  /**
-   * {@inheritdoc}
-   *
-   * @todo Remove and fix test to not rely on super user.
-   * @see https://www.drupal.org/project/drupal/issues/3437620
-   */
-  protected bool $usesSuperUserAccessPolicy = TRUE;
-
   /**
    * {@inheritdoc}
    */
@@ -41,7 +33,6 @@ class FieldUIRouteTest extends BrowserTestBase {
   protected function setUp(): void {
     parent::setUp();
 
-    $this->drupalLogin($this->rootUser);
     $this->drupalPlaceBlock('local_tasks_block');
   }
 
@@ -49,6 +40,13 @@ protected function setUp(): void {
    * Ensures that entity types with bundles do not break following entity types.
    */
   public function testFieldUIRoutes(): void {
+    $this->drupalLogin($this->drupalCreateUser([
+      'administer account settings',
+      'administer entity_test_no_id fields',
+      'administer user fields',
+      'administer user form display',
+      'administer user display',
+    ]));
     $this->drupalGet('entity_test_no_id/structure/entity_test/fields');
     $this->assertSession()->pageTextContains('No fields are present yet.');
 
-- 
GitLab