function EntityCreateAccessCustomCidTest::testCustomCid
Tests the entity access control handler with a custom static cache ID.
@covers ::buildCreateAccessCid @dataProvider providerTestCustomCid
Parameters
string $bundle: The machine name of the entity bundle.
array $context: The context array.
string $cid: The static cache ID.
bool $in_cache: Whether there is already a cached createAccess() check for the cache ID.
File
-
core/
tests/ Drupal/ Tests/ Core/ Entity/ Access/ EntityCreateAccessCustomCidTest.php, line 220
Class
- EntityCreateAccessCustomCidTest
- Tests entity access control handler custom internal cache ID.
Namespace
Drupal\Tests\Core\Entity\AccessCode
public function testCustomCid(string $bundle, array $context, string $cid, bool $in_cache) : void {
$context['langcode'] = $this->langcode;
// Drupal\Core\Cache is used when merging access results in
// checkCreateAccess(), and it calls the cache context manager service.
$cache_context_manager = $this->createMock(CacheContextsManager::class);
$cache_context_manager->expects($this->any())
->method('assertValidTokens')
->willReturn(TRUE);
$container = new ContainerBuilder();
\Drupal::setContainer($container);
$container->set('cache_contexts_manager', $cache_context_manager);
$handler = new EntityTestAccessControlHandler($this->entityType);
$handler->setModuleHandler($this->moduleHandler);
$this->setUpAccessCache($handler, $in_cache, $cid);
// The prefilled cache is set to AccessResult::allowed(), but the default
// for EntityTestAccessControlHandler() is neutral(); so createAccess() will
// return TRUE for a cache hit and FALSE otherwise.
$this->assertSame($in_cache, $handler->createAccess($bundle, $this->account, $context));
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.