From c4e7dd71b6053541d93ce2a6bda9b653921acf5c Mon Sep 17 00:00:00 2001
From: Dave Long <dave@longwaveconsulting.com>
Date: Tue, 27 Feb 2024 10:56:51 +0000
Subject: [PATCH] Issue #3421258 by mstrelan, acbramley: Fix strict type errors
 in WebAssert calls

---
 .../src/Functional/ModerationFormTest.php     |  4 ++--
 .../ViewsModerationStateFilterTest.php        |  2 +-
 .../src/Functional/Views/FilterDateTest.php   |  8 +++----
 .../src/Functional/Theme/TwigTransTest.php    |  2 +-
 .../src/Functional/TelephoneFieldTest.php     |  2 +-
 .../UpdateSemverTestBaselineTrait.php         |  4 ++--
 .../src/Functional/DemoUmamiProfileTest.php   | 14 ++++++------
 .../FunctionalTests/BrowserTestBaseTest.php   | 22 +++++++++----------
 8 files changed, 29 insertions(+), 29 deletions(-)

diff --git a/core/modules/content_moderation/tests/src/Functional/ModerationFormTest.php b/core/modules/content_moderation/tests/src/Functional/ModerationFormTest.php
index 4f621c0868be..c4b992ac196e 100644
--- a/core/modules/content_moderation/tests/src/Functional/ModerationFormTest.php
+++ b/core/modules/content_moderation/tests/src/Functional/ModerationFormTest.php
@@ -312,7 +312,7 @@ public function testContentTranslationNodeForm() {
     $french = \Drupal::languageManager()->getLanguage('fr');
 
     $this->drupalGet($latest_version_path);
-    $this->assertSession()->statusCodeEquals('403');
+    $this->assertSession()->statusCodeEquals(403);
     $this->assertSession()->elementNotExists('xpath', '//ul[@class="entity-moderation-form"]');
 
     // Add french translation (revision 2).
@@ -326,7 +326,7 @@ public function testContentTranslationNodeForm() {
     ], 'Save (this translation)');
 
     $this->drupalGet($latest_version_path, ['language' => $french]);
-    $this->assertSession()->statusCodeEquals('403');
+    $this->assertSession()->statusCodeEquals(403);
     $this->assertSession()->elementNotExists('xpath', '//ul[@class="entity-moderation-form"]');
 
     // Add french pending revision (revision 3).
diff --git a/core/modules/content_moderation/tests/src/Functional/ViewsModerationStateFilterTest.php b/core/modules/content_moderation/tests/src/Functional/ViewsModerationStateFilterTest.php
index 97554b4427db..1f2e249efdb4 100644
--- a/core/modules/content_moderation/tests/src/Functional/ViewsModerationStateFilterTest.php
+++ b/core/modules/content_moderation/tests/src/Functional/ViewsModerationStateFilterTest.php
@@ -341,7 +341,7 @@ protected function assertFilterStates(array $states, bool $check_size = FALSE):
     // Check that the size of the select element does not exceed 8 options.
     if ($check_size) {
       $this->assertGreaterThan(8, count($states));
-      $assert_session->elementAttributeContains('css', '#edit-default-revision-state', 'size', 8);
+      $assert_session->elementAttributeContains('css', '#edit-default-revision-state', 'size', '8');
     }
 
     // Check that an option exists for each of the expected states.
diff --git a/core/modules/datetime/tests/src/Functional/Views/FilterDateTest.php b/core/modules/datetime/tests/src/Functional/Views/FilterDateTest.php
index ce3f43014533..da75c930a863 100644
--- a/core/modules/datetime/tests/src/Functional/Views/FilterDateTest.php
+++ b/core/modules/datetime/tests/src/Functional/Views/FilterDateTest.php
@@ -160,22 +160,22 @@ public function testExposedGroupedFilters() {
     $this->drupalGet($path);
 
     // Filter the Preview by 'empty'.
-    $this->getSession()->getPage()->findField($this->fieldName . '_value')->selectOption(1);
+    $this->getSession()->getPage()->findField($this->fieldName . '_value')->selectOption('1');
     $this->getSession()->getPage()->pressButton('Apply');
     $this->assertIds([4]);
 
     // Filter the Preview by 'not empty'.
-    $this->getSession()->getPage()->findField($this->fieldName . '_value')->selectOption(2);
+    $this->getSession()->getPage()->findField($this->fieldName . '_value')->selectOption('2');
     $this->getSession()->getPage()->pressButton('Apply');
     $this->assertIds([1, 2, 3]);
 
     // Filter the Preview by 'less than'.
-    $this->getSession()->getPage()->findField($this->fieldName . '_value')->selectOption(3);
+    $this->getSession()->getPage()->findField($this->fieldName . '_value')->selectOption('3');
     $this->getSession()->getPage()->pressButton('Apply');
     $this->assertIds([2, 3]);
 
     // Filter the Preview by 'between'.
-    $this->getSession()->getPage()->findField($this->fieldName . '_value')->selectOption(4);
+    $this->getSession()->getPage()->findField($this->fieldName . '_value')->selectOption('4');
     $this->getSession()->getPage()->pressButton('Apply');
     $this->assertIds([2]);
   }
diff --git a/core/modules/system/tests/src/Functional/Theme/TwigTransTest.php b/core/modules/system/tests/src/Functional/Theme/TwigTransTest.php
index 6b7d74da7beb..a5516a94912d 100644
--- a/core/modules/system/tests/src/Functional/Theme/TwigTransTest.php
+++ b/core/modules/system/tests/src/Functional/Theme/TwigTransTest.php
@@ -182,7 +182,7 @@ protected function assertTwigTransTags(): void {
     // Makes sure https://www.drupal.org/node/2489024 doesn't happen without
     // twig debug.
     // Ensure that running php code inside a Twig trans is not possible.
-    $this->assertSession()->pageTextNotContains(pi());
+    $this->assertSession()->pageTextNotContains((string) pi());
   }
 
   /**
diff --git a/core/modules/telephone/tests/src/Functional/TelephoneFieldTest.php b/core/modules/telephone/tests/src/Functional/TelephoneFieldTest.php
index 3bc8400195e0..b68eed6b56e2 100644
--- a/core/modules/telephone/tests/src/Functional/TelephoneFieldTest.php
+++ b/core/modules/telephone/tests/src/Functional/TelephoneFieldTest.php
@@ -91,7 +91,7 @@ protected function setUp(): void {
   public function testTelephoneWidget() {
     $this->drupalGet('node/add/article');
     $this->assertSession()->fieldValueEquals("field_telephone[0][value]", '');
-    $this->assertSession()->elementAttributeContains('css', 'input[name="field_telephone[0][value]"]', 'maxlength', TelephoneItem::MAX_LENGTH);
+    $this->assertSession()->elementAttributeContains('css', 'input[name="field_telephone[0][value]"]', 'maxlength', (string) TelephoneItem::MAX_LENGTH);
     $this->assertSession()->responseContains('placeholder="123-456-7890"');
   }
 
diff --git a/core/modules/update/tests/src/Functional/UpdateSemverTestBaselineTrait.php b/core/modules/update/tests/src/Functional/UpdateSemverTestBaselineTrait.php
index b9b86fd6a451..ef2a965c4b14 100644
--- a/core/modules/update/tests/src/Functional/UpdateSemverTestBaselineTrait.php
+++ b/core/modules/update/tests/src/Functional/UpdateSemverTestBaselineTrait.php
@@ -121,8 +121,8 @@ public function testMajorUpdateAvailable() {
           $this->refreshUpdateStatus([$this->updateProject => '9']);
           $this->standardTests();
           $this->assertUpdateTableTextNotContains('Security update required!');
-          $this->assertUpdateTableElementContains(Link::fromTextAndUrl('9.0.0', Url::fromUri("http://example.com/{$this->updateProject}-9-0-0-release"))->toString());
-          $this->assertUpdateTableElementContains(Link::fromTextAndUrl('Release notes', Url::fromUri("http://example.com/{$this->updateProject}-9-0-0-release"))->toString());
+          $this->assertUpdateTableElementContains((string) Link::fromTextAndUrl('9.0.0', Url::fromUri("http://example.com/{$this->updateProject}-9-0-0-release"))->toString());
+          $this->assertUpdateTableElementContains((string) Link::fromTextAndUrl('Release notes', Url::fromUri("http://example.com/{$this->updateProject}-9-0-0-release"))->toString());
           $this->assertUpdateTableTextNotContains('Up to date');
           $this->assertUpdateTableTextContains('Not supported!');
           $this->assertUpdateTableTextContains('Recommended version:');
diff --git a/core/profiles/demo_umami/tests/src/Functional/DemoUmamiProfileTest.php b/core/profiles/demo_umami/tests/src/Functional/DemoUmamiProfileTest.php
index bfe1fa7221d8..70f7e4e08ebb 100644
--- a/core/profiles/demo_umami/tests/src/Functional/DemoUmamiProfileTest.php
+++ b/core/profiles/demo_umami/tests/src/Functional/DemoUmamiProfileTest.php
@@ -174,10 +174,10 @@ public function testEditNodesByAdmin() {
       ->loadByProperties(['title' => 'Deep mediterranean quiche']);
     $node = reset($nodes);
     $this->drupalGet($node->toUrl('edit-form'));
-    $webassert->statusCodeEquals('200');
+    $webassert->statusCodeEquals(200);
 
     $this->submitForm([], 'Preview');
-    $webassert->statusCodeEquals('200');
+    $webassert->statusCodeEquals(200);
     $this->assertSession()->elementsCount('css', 'h1', 1);
     $this->clickLink('Back to content editing');
 
@@ -221,27 +221,27 @@ protected function testDemonstrationWarningMessage() {
 
     // Check when editing a node, the warning is visible.
     $this->drupalGet($recipe_node->toUrl('edit-form'));
-    $web_assert->statusCodeEquals('200');
+    $web_assert->statusCodeEquals(200);
     $web_assert->pageTextContains('This site is intended for demonstration purposes.');
 
     // Check when adding a node, the warning is visible.
     $this->drupalGet('node/add/recipe');
-    $web_assert->statusCodeEquals('200');
+    $web_assert->statusCodeEquals(200);
     $web_assert->pageTextContains('This site is intended for demonstration purposes.');
 
     // Check when looking at admin/content, the warning is visible.
     $this->drupalGet('admin/content');
-    $web_assert->statusCodeEquals('200');
+    $web_assert->statusCodeEquals(200);
     $web_assert->pageTextContains('This site is intended for demonstration purposes.');
 
     // Check when viewing a node, the warning is not visible.
     $this->drupalGet($recipe_node->toUrl());
-    $web_assert->statusCodeEquals('200');
+    $web_assert->statusCodeEquals(200);
     $web_assert->pageTextNotContains('This site is intended for demonstration purposes.');
 
     // Check when viewing the homepage, the warning is not visible.
     $this->drupalGet('<front>');
-    $web_assert->statusCodeEquals('200');
+    $web_assert->statusCodeEquals(200);
     $web_assert->pageTextNotContains('This site is intended for demonstration purposes.');
   }
 
diff --git a/core/tests/Drupal/FunctionalTests/BrowserTestBaseTest.php b/core/tests/Drupal/FunctionalTests/BrowserTestBaseTest.php
index 5de919c221d4..a6cbfb723a77 100644
--- a/core/tests/Drupal/FunctionalTests/BrowserTestBaseTest.php
+++ b/core/tests/Drupal/FunctionalTests/BrowserTestBaseTest.php
@@ -362,13 +362,13 @@ public function testFieldAssertsForCheckbox() {
 
     // Part 1 - Test by name.
     // Test that checkboxes are found/not found correctly by name, when using
-    // TRUE or FALSE to match their 'checked' state.
+    // '1' or '' to match their 'checked' state.
     $this->assertSession()->fieldExists('checkbox_enabled');
     $this->assertSession()->fieldExists('checkbox_disabled');
-    $this->assertSession()->fieldValueEquals('checkbox_enabled', TRUE);
-    $this->assertSession()->fieldValueEquals('checkbox_disabled', FALSE);
-    $this->assertSession()->fieldValueNotEquals('checkbox_enabled', FALSE);
-    $this->assertSession()->fieldValueNotEquals('checkbox_disabled', TRUE);
+    $this->assertSession()->fieldValueEquals('checkbox_enabled', '1');
+    $this->assertSession()->fieldValueEquals('checkbox_disabled', '');
+    $this->assertSession()->fieldValueNotEquals('checkbox_enabled', '');
+    $this->assertSession()->fieldValueNotEquals('checkbox_disabled', '1');
 
     // Test that we have legacy support.
     $this->assertSession()->fieldValueEquals('checkbox_enabled', '1');
@@ -376,7 +376,7 @@ public function testFieldAssertsForCheckbox() {
 
     // Test that the assertion fails correctly if given the right value.
     try {
-      $this->assertSession()->fieldValueNotEquals('checkbox_enabled', TRUE);
+      $this->assertSession()->fieldValueNotEquals('checkbox_enabled', '1');
       $this->fail('fieldValueNotEquals failed to throw an exception.');
     }
     catch (ExpectationException $e) {
@@ -385,11 +385,11 @@ public function testFieldAssertsForCheckbox() {
 
     // Part 2 - Test by ID.
     // Test that checkboxes are found/not found correctly by ID, when using
-    // TRUE or FALSE to match their 'checked' state.
-    $this->assertSession()->fieldValueEquals('edit-checkbox-enabled', TRUE);
-    $this->assertSession()->fieldValueEquals('edit-checkbox-disabled', FALSE);
-    $this->assertSession()->fieldValueNotEquals('edit-checkbox-enabled', FALSE);
-    $this->assertSession()->fieldValueNotEquals('edit-checkbox-disabled', TRUE);
+    // '1' or '' to match their 'checked' state.
+    $this->assertSession()->fieldValueEquals('edit-checkbox-enabled', '1');
+    $this->assertSession()->fieldValueEquals('edit-checkbox-disabled', '');
+    $this->assertSession()->fieldValueNotEquals('edit-checkbox-enabled', '');
+    $this->assertSession()->fieldValueNotEquals('edit-checkbox-disabled', '1');
 
     // Test that checkboxes are found by ID, when using NULL to ignore the
     // 'checked' state.
-- 
GitLab