protected function verifyRenderCacheHandling() { // Force a request via GET so we can test the render cache.
$request = \Drupal::
request();
$request_method =
$request->server->
get('REQUEST_METHOD'
);
$request->
setMethod('GET'
);
// Test that a cache entry is created.
$build =
$this->
getBlockRenderArray();
$cid = 'entity_view:block:test_block:' .
implode(':', \Drupal::
service('cache_contexts_manager'
)->
convertTokensToKeys(['languages:' . LanguageInterface::TYPE_INTERFACE, 'theme', 'user.permissions'
])->
getKeys());
$this->renderer->
renderRoot($build);
$this->
assertNotEmpty($this->container->
get('cache.render'
)->
get($cid), 'The block render element has been cached.'
);
// Re-save the block and check that the cache entry has been deleted.
$this->block->
save();
$this->
assertFalse($this->container->
get('cache.render'
)->
get($cid), 'The block render cache entry has been cleared when the block was saved.'
);
// Rebuild the render array (creating a new cache entry in the process) and
// delete the block to check the cache entry is deleted.
unset($build['#printed'
]);
// Re-add the block because \Drupal\block\BlockViewBuilder::buildBlock()