From 421f994a8dce82eafaa70bf610291322275b2f90 Mon Sep 17 00:00:00 2001 From: catch <catch@35733.no-reply.drupal.org> Date: Fri, 14 Aug 2020 09:52:24 +0100 Subject: [PATCH] Issue #3164589 by ankithashetty, paulocs, S_Bhandari, Suresh Prabhu Parkala, mondrake, longwave: Replace assertions that use $this->getSession()->getResponseHeader() with WebAssert methods --- .../tests/src/Functional/BasicAuthTest.php | 4 +- .../Functional/NodeBlockFunctionalTest.php | 12 +++--- .../Cache/PageCacheTagsTestBase.php | 7 +--- .../src/Functional/Routing/RouterTest.php | 41 ++++++++----------- .../tests/src/Functional/System/ThemeTest.php | 6 +-- .../Functional/ToolbarCacheContextsTest.php | 4 +- .../tests/src/Functional/UITestBase.php | 2 +- .../FunctionalTests/BrowserTestBaseTest.php | 3 +- 8 files changed, 35 insertions(+), 44 deletions(-) diff --git a/core/modules/basic_auth/tests/src/Functional/BasicAuthTest.php b/core/modules/basic_auth/tests/src/Functional/BasicAuthTest.php index 70affbb1a47b..ca6ef50bfd7d 100644 --- a/core/modules/basic_auth/tests/src/Functional/BasicAuthTest.php +++ b/core/modules/basic_auth/tests/src/Functional/BasicAuthTest.php @@ -211,8 +211,8 @@ public function testCacheabilityOf401Response() { $assert_response_cacheability = function ($expected_page_cache_header_value, $expected_dynamic_page_cache_header_value) use ($session, $url) { $this->drupalGet($url); $this->assertSession()->statusCodeEquals(401); - $this->assertSame($expected_page_cache_header_value, $session->getResponseHeader('X-Drupal-Cache')); - $this->assertSame($expected_dynamic_page_cache_header_value, $session->getResponseHeader('X-Drupal-Dynamic-Cache')); + $this->assertSession()->responseHeaderEquals('X-Drupal-Cache', $expected_page_cache_header_value); + $this->assertSession()->responseHeaderEquals('X-Drupal-Dynamic-Cache', $expected_dynamic_page_cache_header_value); }; // 1. First request: cold caches, both Page Cache and Dynamic Page Cache are diff --git a/core/modules/node/tests/src/Functional/NodeBlockFunctionalTest.php b/core/modules/node/tests/src/Functional/NodeBlockFunctionalTest.php index 54f11056e46f..5e083222a445 100644 --- a/core/modules/node/tests/src/Functional/NodeBlockFunctionalTest.php +++ b/core/modules/node/tests/src/Functional/NodeBlockFunctionalTest.php @@ -168,28 +168,28 @@ public function testRecentNodeBlock() { // Ensure that a page that does not have a node context can still be cached, // the front page is the user page which is already cached from the login // request above. - $this->assertSame('HIT', $this->getSession()->getResponseHeader('X-Drupal-Dynamic-Cache')); + $this->assertSession()->responseHeaderEquals('X-Drupal-Dynamic-Cache', 'HIT'); $this->drupalGet('node/add/article'); $this->assertText($label, 'Block was displayed on the node/add/article page.'); $this->assertCacheContexts(['languages:language_content', 'languages:language_interface', 'session', 'theme', 'url.path', 'url.query_args', 'user', 'route']); // The node/add/article page is an admin path and currently uncacheable. - $this->assertSame('UNCACHEABLE', $this->getSession()->getResponseHeader('X-Drupal-Dynamic-Cache')); + $this->assertSession()->responseHeaderEquals('X-Drupal-Dynamic-Cache', 'UNCACHEABLE'); $this->drupalGet('node/' . $node1->id()); $this->assertText($label, 'Block was displayed on the node/N when node is of type article.'); $this->assertCacheContexts(['languages:language_content', 'languages:language_interface', 'theme', 'url.query_args:' . MainContentViewSubscriber::WRAPPER_FORMAT, 'url.site', 'user', 'route', 'timezone']); - $this->assertSame('MISS', $this->getSession()->getResponseHeader('X-Drupal-Dynamic-Cache')); + $this->assertSession()->responseHeaderEquals('X-Drupal-Dynamic-Cache', 'MISS'); $this->drupalGet('node/' . $node1->id()); - $this->assertSame('HIT', $this->getSession()->getResponseHeader('X-Drupal-Dynamic-Cache')); + $this->assertSession()->responseHeaderEquals('X-Drupal-Dynamic-Cache', 'HIT'); $this->drupalGet('node/' . $node5->id()); $this->assertNoText($label, 'Block was not displayed on nodes of type page.'); $this->assertCacheContexts(['languages:language_content', 'languages:language_interface', 'theme', 'url.query_args:' . MainContentViewSubscriber::WRAPPER_FORMAT, 'url.site', 'user', 'route', 'timezone']); - $this->assertSame('MISS', $this->getSession()->getResponseHeader('X-Drupal-Dynamic-Cache')); + $this->assertSession()->responseHeaderEquals('X-Drupal-Dynamic-Cache', 'MISS'); $this->drupalGet('node/' . $node5->id()); - $this->assertSame('HIT', $this->getSession()->getResponseHeader('X-Drupal-Dynamic-Cache')); + $this->assertSession()->responseHeaderEquals('X-Drupal-Dynamic-Cache', 'HIT'); // Place a block to determine which revision is provided as context // to blocks. diff --git a/core/modules/system/tests/src/Functional/Cache/PageCacheTagsTestBase.php b/core/modules/system/tests/src/Functional/Cache/PageCacheTagsTestBase.php index 5398e218de81..81721994adf2 100644 --- a/core/modules/system/tests/src/Functional/Cache/PageCacheTagsTestBase.php +++ b/core/modules/system/tests/src/Functional/Cache/PageCacheTagsTestBase.php @@ -4,7 +4,6 @@ use Drupal\Core\Url; use Drupal\Tests\BrowserTestBase; -use Drupal\Component\Render\FormattableMarkup; /** * Provides helper methods for page cache tags tests. @@ -43,8 +42,7 @@ protected function setUp() { */ protected function verifyPageCache(Url $url, $hit_or_miss, $tags = FALSE) { $this->drupalGet($url); - $message = new FormattableMarkup('Page cache @hit_or_miss for %path.', ['@hit_or_miss' => $hit_or_miss, '%path' => $url->toString()]); - $this->assertEqual($this->drupalGetHeader('X-Drupal-Cache'), $hit_or_miss, $message); + $this->assertSession()->responseHeaderEquals('X-Drupal-Cache', $hit_or_miss); if ($hit_or_miss === 'HIT' && is_array($tags)) { $absolute_url = $url->setAbsolute()->toString(); @@ -68,8 +66,7 @@ protected function verifyPageCache(Url $url, $hit_or_miss, $tags = FALSE) { */ protected function verifyDynamicPageCache(Url $url, $hit_or_miss) { $this->drupalGet($url); - $message = new FormattableMarkup('Dynamic page cache @hit_or_miss for %path.', ['@hit_or_miss' => $hit_or_miss, '%path' => $url->toString()]); - $this->assertSame($hit_or_miss, $this->getSession()->getResponseHeader('X-Drupal-Dynamic-Cache'), $message); + $this->assertSession()->responseHeaderEquals('X-Drupal-Dynamic-Cache', $hit_or_miss); } } diff --git a/core/modules/system/tests/src/Functional/Routing/RouterTest.php b/core/modules/system/tests/src/Functional/Routing/RouterTest.php index 771d5ac563d6..16a838988714 100644 --- a/core/modules/system/tests/src/Functional/Routing/RouterTest.php +++ b/core/modules/system/tests/src/Functional/Routing/RouterTest.php @@ -39,22 +39,21 @@ public function testFinishResponseSubscriber() { $this->drupalGet('router_test/test1'); $this->assertRaw('test1', 'The correct string was returned because the route was successful.'); $session = $this->getSession(); - // Check expected headers from FinishResponseSubscriber. - $headers = $session->getResponseHeaders(); - $this->assertEquals($headers['X-UA-Compatible'], ['IE=edge']); - $this->assertEquals($headers['Content-language'], ['en']); - $this->assertEquals($headers['X-Content-Type-Options'], ['nosniff']); - $this->assertEquals($headers['X-Frame-Options'], ['SAMEORIGIN']); - $this->assertNull($this->drupalGetHeader('Vary'), 'Vary header is not set.'); + // Check expected headers from FinishResponseSubscriber. + $this->assertSession()->responseHeaderEquals('X-UA-Compatible', 'IE=edge'); + $this->assertSession()->responseHeaderEquals('Content-language', 'en'); + $this->assertSession()->responseHeaderEquals('X-Content-Type-Options', 'nosniff'); + $this->assertSession()->responseHeaderEquals('X-Frame-Options', 'SAMEORIGIN'); + $this->assertSession()->responseHeaderEquals('Vary', NULL); $this->drupalGet('router_test/test2'); $this->assertRaw('test2', 'The correct string was returned because the route was successful.'); // Check expected headers from FinishResponseSubscriber. $headers = $session->getResponseHeaders(); - $this->assertEqual($headers['X-Drupal-Cache-Contexts'], [implode(' ', $expected_cache_contexts)]); - $this->assertEqual($headers['X-Drupal-Cache-Tags'], ['config:user.role.anonymous http_response rendered']); - $this->assertEqual($headers['X-Drupal-Cache-Max-Age'], ['-1 (Permanent)']); + $this->assertSession()->responseHeaderEquals('X-Drupal-Cache-Contexts', implode(' ', $expected_cache_contexts)); + $this->assertSession()->responseHeaderEquals('X-Drupal-Cache-Tags', 'config:user.role.anonymous http_response rendered'); + $this->assertSession()->responseHeaderEquals('X-Drupal-Cache-Max-Age', '-1 (Permanent)'); // Confirm that the page wrapping is being added, so we're not getting a // raw body returned. $this->assertRaw('</html>', 'Page markup was found.'); @@ -66,15 +65,13 @@ public function testFinishResponseSubscriber() { // X-Drupal-Cache-Contexts and X-Drupal-Cache-Tags headers. // 1. controller result: render array, globally cacheable route access. $this->drupalGet('router_test/test18'); - $headers = $session->getResponseHeaders(); - $this->assertEqual($headers['X-Drupal-Cache-Contexts'], [implode(' ', Cache::mergeContexts($renderer_required_cache_contexts, ['url']))]); - $this->assertEqual($headers['X-Drupal-Cache-Tags'], ['config:user.role.anonymous foo http_response rendered']); - $this->assertEqual($headers['X-Drupal-Cache-Max-Age'], ['60']); + $this->assertSession()->responseHeaderEquals('X-Drupal-Cache-Contexts', implode(' ', Cache::mergeContexts($renderer_required_cache_contexts, ['url']))); + $this->assertSession()->responseHeaderEquals('X-Drupal-Cache-Tags', 'config:user.role.anonymous foo http_response rendered'); + $this->assertSession()->responseHeaderEquals('X-Drupal-Cache-Max-Age', '60'); // 2. controller result: render array, per-role cacheable route access. $this->drupalGet('router_test/test19'); - $headers = $session->getResponseHeaders(); - $this->assertEqual($headers['X-Drupal-Cache-Contexts'], [implode(' ', Cache::mergeContexts($renderer_required_cache_contexts, ['url', 'user.roles']))]); - $this->assertEqual($headers['X-Drupal-Cache-Tags'], ['config:user.role.anonymous foo http_response rendered']); + $this->assertSession()->responseHeaderEquals('X-Drupal-Cache-Contexts', implode(' ', Cache::mergeContexts($renderer_required_cache_contexts, ['url', 'user.roles']))); + $this->assertSession()->responseHeaderEquals('X-Drupal-Cache-Tags', 'config:user.role.anonymous foo http_response rendered'); // 3. controller result: Response object, globally cacheable route access. $this->drupalGet('router_test/test1'); $headers = $session->getResponseHeaders(); @@ -89,14 +86,12 @@ public function testFinishResponseSubscriber() { $this->assertFalse(isset($headers['X-Drupal-Cache-Max-Age'])); // 5. controller result: CacheableResponse object, globally cacheable route access. $this->drupalGet('router_test/test21'); - $headers = $session->getResponseHeaders(); - $this->assertEqual($headers['X-Drupal-Cache-Contexts'], ['']); - $this->assertEqual($headers['X-Drupal-Cache-Tags'], ['http_response']); + $this->assertSession()->responseHeaderEquals('X-Drupal-Cache-Contexts', ''); + $this->assertSession()->responseHeaderEquals('X-Drupal-Cache-Tags', 'http_response'); // 6. controller result: CacheableResponse object, per-role cacheable route access. $this->drupalGet('router_test/test22'); - $headers = $session->getResponseHeaders(); - $this->assertEqual($headers['X-Drupal-Cache-Contexts'], ['user.roles']); - $this->assertEqual($headers['X-Drupal-Cache-Tags'], ['http_response']); + $this->assertSession()->responseHeaderEquals('X-Drupal-Cache-Contexts', 'user.roles'); + $this->assertSession()->responseHeaderEquals('X-Drupal-Cache-Tags', 'http_response'); // Finally, verify that the X-Drupal-Cache-Contexts and X-Drupal-Cache-Tags // headers are not sent when their container parameter is set to FALSE. diff --git a/core/modules/system/tests/src/Functional/System/ThemeTest.php b/core/modules/system/tests/src/Functional/System/ThemeTest.php index 6bc3504c31c8..1fc2b69d2ac7 100644 --- a/core/modules/system/tests/src/Functional/System/ThemeTest.php +++ b/core/modules/system/tests/src/Functional/System/ThemeTest.php @@ -266,9 +266,9 @@ public function testThemeSettingsRenderCacheClear() { // cleared by installing a theme. $this->drupalLogout(); $this->drupalGet(''); - $this->assertEquals('MISS', $this->getSession()->getResponseHeader('X-Drupal-Cache')); + $this->assertSession()->responseHeaderEquals('X-Drupal-Cache', 'MISS'); $this->drupalGet(''); - $this->assertEquals('HIT', $this->getSession()->getResponseHeader('X-Drupal-Cache')); + $this->assertSession()->responseHeaderEquals('X-Drupal-Cache', 'HIT'); $this->drupalLogin($this->adminUser); // Save Bartik's theme settings which should invalidate the 'rendered' cache @@ -276,7 +276,7 @@ public function testThemeSettingsRenderCacheClear() { $this->drupalPostForm('admin/appearance/settings/bartik', [], t('Save configuration')); $this->drupalLogout(); $this->drupalGet(''); - $this->assertEquals('MISS', $this->getSession()->getResponseHeader('X-Drupal-Cache')); + $this->assertSession()->responseHeaderEquals('X-Drupal-Cache', 'MISS'); } /** diff --git a/core/modules/toolbar/tests/src/Functional/ToolbarCacheContextsTest.php b/core/modules/toolbar/tests/src/Functional/ToolbarCacheContextsTest.php index 6f4987182852..e6698f74a5a8 100644 --- a/core/modules/toolbar/tests/src/Functional/ToolbarCacheContextsTest.php +++ b/core/modules/toolbar/tests/src/Functional/ToolbarCacheContextsTest.php @@ -70,9 +70,9 @@ public function testCacheIntegration() { $this->installExtraModules(['dynamic_page_cache']); $this->drupalLogin($this->adminUser); $this->drupalGet('test-page'); - $this->assertSame('MISS', $this->getSession()->getResponseHeader('X-Drupal-Dynamic-Cache')); + $this->assertSession()->responseHeaderEquals('X-Drupal-Dynamic-Cache', 'MISS'); $this->drupalGet('test-page'); - $this->assertSame('HIT', $this->getSession()->getResponseHeader('X-Drupal-Dynamic-Cache')); + $this->assertSession()->responseHeaderEquals('X-Drupal-Dynamic-Cache', 'HIT'); } /** diff --git a/core/modules/views_ui/tests/src/Functional/UITestBase.php b/core/modules/views_ui/tests/src/Functional/UITestBase.php index 9f87ed948d78..919a67c1cd18 100644 --- a/core/modules/views_ui/tests/src/Functional/UITestBase.php +++ b/core/modules/views_ui/tests/src/Functional/UITestBase.php @@ -80,7 +80,7 @@ protected function drupalGet($path, array $options = [], array $headers = []) { $url = preg_replace('|/nojs/|', '/ajax/', $url, 1); $result = $this->drupalGet($url, $options); $this->assertSession()->statusCodeEquals(200); - $this->assertEquals('application/json', $this->getSession()->getResponseHeader('Content-Type')); + $this->assertSession()->responseHeaderEquals('Content-Type', 'application/json'); $this->assertNotEmpty(json_decode($result), 'Ensure that the AJAX request returned valid content.'); } diff --git a/core/tests/Drupal/FunctionalTests/BrowserTestBaseTest.php b/core/tests/Drupal/FunctionalTests/BrowserTestBaseTest.php index e4b77cd5303f..4be2efc6489e 100644 --- a/core/tests/Drupal/FunctionalTests/BrowserTestBaseTest.php +++ b/core/tests/Drupal/FunctionalTests/BrowserTestBaseTest.php @@ -77,8 +77,7 @@ public function testGoTo() { 'Test-Header' => 'header value', ]); $this->assertSession()->responseHeaderExists('Test-Header'); - $returned_header = $this->getSession()->getResponseHeader('Test-Header'); - $this->assertSame('header value', $returned_header); + $this->assertSession()->responseHeaderEquals('Test-Header', 'header value'); } /** -- GitLab