public function PageCacheTest::testConfigChangePageCache in Zircon Profile 8
Same name and namespace in other branches
- 8.0 core/modules/rest/src/Tests/PageCacheTest.php \Drupal\rest\Tests\PageCacheTest::testConfigChangePageCache()
Tests that configuration changes also clear the page cache.
File
- core/
modules/ rest/ src/ Tests/ PageCacheTest.php, line 27 - Contains \Drupal\rest\Tests\PageCacheTest.
Class
- PageCacheTest
- Tests page caching for REST GET requests.
Namespace
Drupal\rest\TestsCode
public function testConfigChangePageCache() {
$this
->enableService('entity:entity_test', 'GET');
// Allow anonymous users to issue GET requests.
$permissions = $this
->entityPermissions('entity_test', 'view');
$permissions[] = 'restful get entity:entity_test';
user_role_grant_permissions('anonymous', $permissions);
// Create an entity programmatically.
$entity = $this
->entityCreate('entity_test');
$entity
->save();
// Read it over the REST API.
$this
->httpRequest($entity
->urlInfo()
->setRouteParameter('_format', $this->defaultFormat), 'GET', NULL, $this->defaultMimeType);
$this
->assertResponse(200, 'HTTP response code is correct.');
$this
->assertHeader('x-drupal-cache', 'MISS');
$this
->assertCacheTag('config:rest.settings');
$this
->assertCacheTag('entity_test:1');
// Read it again, should be page-cached now.
$this
->httpRequest($entity
->urlInfo()
->setRouteParameter('_format', $this->defaultFormat), 'GET', NULL, $this->defaultMimeType);
$this
->assertResponse(200, 'HTTP response code is correct.');
$this
->assertHeader('x-drupal-cache', 'HIT');
$this
->assertCacheTag('config:rest.settings');
$this
->assertCacheTag('entity_test:1');
// Trigger a config save which should clear the page cache, so we should get
// a cache miss now for the same request.
$this
->config('rest.settings')
->save();
$this
->httpRequest($entity
->urlInfo()
->setRouteParameter('_format', $this->defaultFormat), 'GET', NULL, $this->defaultMimeType);
$this
->assertResponse(200, 'HTTP response code is correct.');
$this
->assertHeader('x-drupal-cache', 'MISS');
$this
->assertCacheTag('config:rest.settings');
$this
->assertCacheTag('entity_test:1');
}