/**
* Tests that tags are invalidated when an entity with that bundle changes.
*/
public function testBundleListingCache() { // Access to lists of test entities with each bundle.
$bundle_a_url = Url::
fromRoute('cache_test_list.bundle_tags',
['entity_type_id' => 'entity_test_with_bundle', 'bundle' => 'bundle_a'
]);
$bundle_b_url = Url::
fromRoute('cache_test_list.bundle_tags',
['entity_type_id' => 'entity_test_with_bundle', 'bundle' => 'bundle_b'
]);
$this->
drupalGet($bundle_a_url);
$this->
assertSession()->
responseHeaderEquals('X-Drupal-Cache', 'MISS'
);
$this->
assertCacheTags(['rendered', 'entity_test_with_bundle_list:bundle_a'
]);
$this->
drupalGet($bundle_a_url);
$this->
assertSession()->
responseHeaderEquals('X-Drupal-Cache', 'HIT'
);
$this->
assertCacheTags(['rendered', 'entity_test_with_bundle_list:bundle_a'
]);
$this->
drupalGet($bundle_b_url);
$this->
assertSession()->
responseHeaderEquals('X-Drupal-Cache', 'MISS'
);
$this->
assertCacheTags(['rendered', 'entity_test_with_bundle_list:bundle_b'
]);
$this->
drupalGet($bundle_b_url);
$this->
assertSession()->
responseHeaderEquals('X-Drupal-Cache', 'HIT'
);
$entity1 = EntityTestWithBundle::
create(['type' => 'bundle_a', 'name' => 'entity1'
]);
$entity1->
save();