Issue #3067206 by voleger: Properly deprecate drupalGetHeaders() method of Drupal\Tests\BrowserTestBase

merge-requests/1119/head
catch 2019-07-12 16:22:06 +01:00
parent 717e8b7ef5
commit 2844951c51
5 changed files with 44 additions and 13 deletions

View File

@ -79,7 +79,7 @@ class NodeViewTest extends NodeTestBase {
$this->drupalGet($node->toUrl());
$links = $this->drupalGetHeaders()['Link'];
$links = $this->getSession()->getResponseHeaders()['Link'];
$this->assertEqual($links, $expected);
}

View File

@ -113,7 +113,7 @@ class StyleSerializerTest extends ViewTestBase {
// propagation of cache max-age.
// Test the http Content-type.
$headers = $this->drupalGetHeaders();
$headers = $this->getSession()->getResponseHeaders();
$this->assertSame(['application/json'], $headers['Content-Type']);
$expected = [];

View File

@ -33,8 +33,9 @@ class RouterTest extends BrowserTestBase {
// Confirm that the router can get to a controller.
$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 = $this->getSession()->getResponseHeaders();
$headers = $session->getResponseHeaders();
$this->assertEquals($headers['X-UA-Compatible'], ['IE=edge']);
$this->assertEquals($headers['Content-language'], ['en']);
@ -44,7 +45,7 @@ class RouterTest extends BrowserTestBase {
$this->drupalGet('router_test/test2');
$this->assertRaw('test2', 'The correct string was returned because the route was successful.');
// Check expected headers from FinishResponseSubscriber.
$headers = $this->drupalGetHeaders();
$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']);
// Confirm that the page wrapping is being added, so we're not getting a
@ -58,46 +59,46 @@ class RouterTest extends BrowserTestBase {
// 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 = $this->drupalGetHeaders();
$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']);
// 2. controller result: render array, per-role cacheable route access.
$this->drupalGet('router_test/test19');
$headers = $this->drupalGetHeaders();
$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']);
// 3. controller result: Response object, globally cacheable route access.
$this->drupalGet('router_test/test1');
$headers = $this->drupalGetHeaders();
$headers = $session->getResponseHeaders();
$this->assertFalse(isset($headers['X-Drupal-Cache-Contexts']));
$this->assertFalse(isset($headers['X-Drupal-Cache-Tags']));
// 4. controller result: Response object, per-role cacheable route access.
$this->drupalGet('router_test/test20');
$headers = $this->drupalGetHeaders();
$headers = $session->getResponseHeaders();
$this->assertFalse(isset($headers['X-Drupal-Cache-Contexts']));
$this->assertFalse(isset($headers['X-Drupal-Cache-Tags']));
// 5. controller result: CacheableResponse object, globally cacheable route access.
$this->drupalGet('router_test/test21');
$headers = $this->drupalGetHeaders();
$headers = $session->getResponseHeaders();
$this->assertEqual($headers['X-Drupal-Cache-Contexts'], ['']);
$this->assertEqual($headers['X-Drupal-Cache-Tags'], ['http_response']);
// 6. controller result: CacheableResponse object, per-role cacheable route access.
$this->drupalGet('router_test/test22');
$headers = $this->drupalGetHeaders();
$headers = $session->getResponseHeaders();
$this->assertEqual($headers['X-Drupal-Cache-Contexts'], ['user.roles']);
$this->assertEqual($headers['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.
$this->drupalGet('router_test/test18');
$headers = $this->drupalGetHeaders();
$headers = $session->getResponseHeaders();
$this->assertTrue(isset($headers['X-Drupal-Cache-Contexts']));
$this->assertTrue(isset($headers['X-Drupal-Cache-Tags']));
$this->setContainerParameter('http.response.debug_cacheability_headers', FALSE);
$this->rebuildContainer();
$this->resetAll();
$this->drupalGet('router_test/test18');
$headers = $this->drupalGetHeaders();
$headers = $session->getResponseHeaders();
$this->assertFalse(isset($headers['X-Drupal-Cache-Contexts']));
$this->assertFalse(isset($headers['X-Drupal-Cache-Tags']));
}

View File

@ -0,0 +1,27 @@
<?php
namespace Drupal\FunctionalTests;
use Drupal\Tests\BrowserTestBase;
/**
* Tests BrowserTestBase legacy functionality.
*
* @group browsertestbase
* @group legacy
*/
class BrowserTestBaseLegacyTest extends BrowserTestBase {
/**
* Test ::drupalGetHeaders().
*
* @expectedDeprecation Drupal\Tests\BrowserTestBase::drupalGetHeaders() is deprecated in drupal:8.8.0 and is removed from drupal:9.0.0. Use $this->getSession()->getResponseHeaders() instead. See https://www.drupal.org/node/3067207
*/
public function testDrupalGetHeaders() {
$this->assertSame(
$this->getSession()->getResponseHeaders(),
$this->drupalGetHeaders()
);
}
}

View File

@ -637,10 +637,13 @@ abstract class BrowserTestBase extends TestCase {
* @return array
* The HTTP headers values.
*
* @deprecated Scheduled for removal in Drupal 9.0.0.
* @deprecated in drupal:8.8.0 and is removed from drupal:9.0.0.
* Use $this->getSession()->getResponseHeaders() instead.
*
* @see https://www.drupal.org/node/3067207
*/
protected function drupalGetHeaders() {
@trigger_error('Drupal\Tests\BrowserTestBase::drupalGetHeaders() is deprecated in drupal:8.8.0 and is removed from drupal:9.0.0. Use $this->getSession()->getResponseHeaders() instead. See https://www.drupal.org/node/3067207', E_USER_DEPRECATED);
return $this->getSession()->getResponseHeaders();
}