function NodeAccessGrantsCacheContextTest::testCacheContext
Same name and namespace in other branches
- 10 core/modules/node/tests/src/Functional/NodeAccessGrantsCacheContextTest.php \Drupal\Tests\node\Functional\NodeAccessGrantsCacheContextTest::testCacheContext()
- 9 core/modules/node/tests/src/Functional/NodeAccessGrantsCacheContextTest.php \Drupal\Tests\node\Functional\NodeAccessGrantsCacheContextTest::testCacheContext()
- 8.9.x core/modules/node/tests/src/Functional/NodeAccessGrantsCacheContextTest.php \Drupal\Tests\node\Functional\NodeAccessGrantsCacheContextTest::testCacheContext()
Tests NodeAccessGrantsCacheContext::getContext().
File
-
core/
modules/ node/ tests/ src/ Functional/ NodeAccessGrantsCacheContextTest.php, line 128
Class
- NodeAccessGrantsCacheContextTest
- Tests the node access grants cache context service.
Namespace
Drupal\Tests\node\FunctionalCode
public function testCacheContext() : void {
$this->assertUserCacheContext([
0 => 'view.all:0;node_access_test_author:0;node_access_all:0',
$this->adminUser
->id() => 'all',
$this->accessUser
->id() => 'view.all:0;node_access_test_author:2;node_access_test:8888,8889',
$this->noAccessUser
->id() => 'view.all:0;node_access_test_author:3',
]);
// Grant view to all nodes (because nid = 0) for users in the
// 'node_access_all' realm.
$record = [
'nid' => 0,
'gid' => 0,
'realm' => 'node_access_all',
'grant_view' => 1,
'grant_update' => 0,
'grant_delete' => 0,
];
Database::getConnection()->insert('node_access')
->fields($record)
->execute();
// Put user accessUser (uid 0) in the realm.
\Drupal::state()->set('node_access_test.no_access_uid', 0);
\Drupal::service('node.view_all_nodes_memory_cache')->deleteAll();
$this->assertUserCacheContext([
0 => 'view.all',
$this->adminUser
->id() => 'all',
$this->accessUser
->id() => 'view.all:0;node_access_test_author:2;node_access_test:8888,8889',
$this->noAccessUser
->id() => 'view.all:0;node_access_test_author:3',
]);
// Put user accessUser (uid 2) in the realm.
\Drupal::state()->set('node_access_test.no_access_uid', $this->accessUser
->id());
\Drupal::service('node.view_all_nodes_memory_cache')->deleteAll();
$this->assertUserCacheContext([
0 => 'view.all:0;node_access_test_author:0',
$this->adminUser
->id() => 'all',
$this->accessUser
->id() => 'view.all',
$this->noAccessUser
->id() => 'view.all:0;node_access_test_author:3',
]);
// Put user noAccessUser (uid 3) in the realm.
\Drupal::state()->set('node_access_test.no_access_uid', $this->noAccessUser
->id());
\Drupal::service('node.view_all_nodes_memory_cache')->deleteAll();
$this->assertUserCacheContext([
0 => 'view.all:0;node_access_test_author:0',
$this->adminUser
->id() => 'all',
$this->accessUser
->id() => 'view.all:0;node_access_test_author:2;node_access_test:8888,8889',
$this->noAccessUser
->id() => 'view.all',
]);
// Uninstall the node_access_test module.
\Drupal::service('module_installer')->uninstall([
'node_access_test',
]);
$this->assertUserCacheContext([
0 => 'view.all',
$this->adminUser
->id() => 'all',
$this->accessUser
->id() => 'view.all',
$this->noAccessUser
->id() => 'view.all',
]);
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.