.../src/Tests/Cache/AssertPageCacheTagsTrait.php | 23 ++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/core/modules/system/src/Tests/Cache/AssertPageCacheTagsTrait.php b/core/modules/system/src/Tests/Cache/AssertPageCacheTagsTrait.php index 86192ed..6fed903 100644 --- a/core/modules/system/src/Tests/Cache/AssertPageCacheTagsTrait.php +++ b/core/modules/system/src/Tests/Cache/AssertPageCacheTagsTrait.php @@ -6,6 +6,7 @@ */ namespace Drupal\system\Tests\Cache; + use Drupal\Core\Url; /** @@ -15,7 +16,6 @@ */ trait AssertPageCacheTagsTrait { - /** * Enables page caching. */ @@ -27,25 +27,32 @@ protected function enablePageCaching() { } /** - * Fills page cache for the given path, verify cache tags on page cache hit. + * Asserts page cache miss, then hit for the given URL; checks cache tags. * * @param \Drupal\Core\Url $url - * The url - * @param $expected_tags - * The expected cache tags for the page cache entry of the given $path. + * The URL to test. + * @param string[] $expected_tags + * The expected cache tags for the given URL. */ - protected function assertPageCacheTags(Url $url, $expected_tags) { + protected function assertPageCacheTags(Url $url, array $expected_tags) { + $absolute_url = $url->setAbsolute()->toString(); sort($expected_tags); - $this->drupalGet($url->setAbsolute()->toString()); + + // Assert cache miss + expected cache tags. + $this->drupalGet($absolute_url); $this->assertEqual($this->drupalGetHeader('X-Drupal-Cache'), 'MISS'); $actual_tags = explode(' ', $this->drupalGetHeader('X-Drupal-Cache-Tags')); sort($actual_tags); $this->assertIdentical($actual_tags, $expected_tags); - $this->drupalGet($url->setAbsolute()->toString()); + + // Assert cache hit + expected cache tags. + $this->drupalGet($absolute_url); $actual_tags = explode(' ', $this->drupalGetHeader('X-Drupal-Cache-Tags')); sort($actual_tags); $this->assertEqual($this->drupalGetHeader('X-Drupal-Cache'), 'HIT'); $this->assertIdentical($actual_tags, $expected_tags); + + // Assert page cache item + expected cache tags. $cid_parts = array($url->setAbsolute()->toString(), 'html'); $cid = implode(':', $cid_parts); $cache_entry = \Drupal::cache('render')->get($cid);