public function LocalTaskManagerTest::testGetTasksBuildWithCacheabilityMetadata in Drupal 8
@covers ::getTasksBuild
File
- core/
tests/ Drupal/ Tests/ Core/ Menu/ LocalTaskManagerTest.php, line 434
Class
- LocalTaskManagerTest
- @coversDefaultClass \Drupal\Core\Menu\LocalTaskManager @group Menu
Namespace
Drupal\Tests\Core\MenuCode
public function testGetTasksBuildWithCacheabilityMetadata() {
$definitions = $this
->getLocalTaskFixtures();
$this->pluginDiscovery
->expects($this
->once())
->method('getDefinitions')
->will($this
->returnValue($definitions));
// Set up some cacheability metadata and ensure its merged together.
$definitions['menu_local_task_test_tasks_settings']['cache_tags'] = [
'tag.example1',
];
$definitions['menu_local_task_test_tasks_settings']['cache_contexts'] = [
'context.example1',
];
$definitions['menu_local_task_test_tasks_edit']['cache_tags'] = [
'tag.example2',
];
$definitions['menu_local_task_test_tasks_edit']['cache_contexts'] = [
'context.example2',
];
// Test the cacheability metadata of access checking.
$definitions['menu_local_task_test_tasks_view_child1']['access'] = AccessResult::allowed()
->addCacheContexts([
'user.permissions',
]);
$this
->setupFactoryAndLocalTaskPlugins($definitions, 'menu_local_task_test_tasks_view');
$this
->setupLocalTaskManager();
$this->argumentResolver
->expects($this
->any())
->method('getArguments')
->willReturn([]);
$this->routeMatch
->expects($this
->any())
->method('getRouteName')
->willReturn('menu_local_task_test_tasks_view');
$this->routeMatch
->expects($this
->any())
->method('getRawParameters')
->willReturn(new ParameterBag());
$cacheability = new CacheableMetadata();
$local_tasks = $this->manager
->getTasksBuild('menu_local_task_test_tasks_view', $cacheability);
// Ensure that all cacheability metadata is merged together.
$this
->assertEquals([
'tag.example1',
'tag.example2',
], $cacheability
->getCacheTags());
$this
->assertEquals([
'context.example1',
'context.example2',
'route',
'user.permissions',
], $cacheability
->getCacheContexts());
}