function LocalTaskIntegrationTestBase::getLocalTaskManager

Same name and namespace in other branches
  1. 11.x core/tests/Drupal/Tests/Core/Menu/LocalTaskIntegrationTestBase.php \Drupal\Tests\Core\Menu\LocalTaskIntegrationTestBase::getLocalTaskManager()
  2. 10 core/tests/Drupal/Tests/Core/Menu/LocalTaskIntegrationTestBase.php \Drupal\Tests\Core\Menu\LocalTaskIntegrationTestBase::getLocalTaskManager()
  3. 9 core/tests/Drupal/Tests/Core/Menu/LocalTaskIntegrationTestBase.php \Drupal\Tests\Core\Menu\LocalTaskIntegrationTestBase::getLocalTaskManager()
  4. 8.9.x core/tests/Drupal/Tests/Core/Menu/LocalTaskIntegrationTestBase.php \Drupal\Tests\Core\Menu\LocalTaskIntegrationTestBase::getLocalTaskManager()

Sets up the local task manager for the test.

1 call to LocalTaskIntegrationTestBase::getLocalTaskManager()
LocalTaskIntegrationTestBase::assertLocalTasks in core/tests/Drupal/Tests/Core/Menu/LocalTaskIntegrationTestBase.php
Tests integration for local tasks.

File

core/tests/Drupal/Tests/Core/Menu/LocalTaskIntegrationTestBase.php, line 70

Class

LocalTaskIntegrationTestBase
Defines a base unit test for testing existence of local tasks.

Namespace

Drupal\Tests\Core\Menu

Code

protected function getLocalTaskManager(array $module_dirs, string $route_name, array $route_params) : LocalTaskManager {
  $module_handler = $this->createStub(ModuleHandlerInterface::class);
  // Set all the modules as being existent.
  $module_handler->method('moduleExists')
    ->willReturnCallback(function ($module) use ($module_dirs) : bool {
    return isset($module_dirs[$module]);
  });
  $language = $this->createStub(LanguageInterface::class);
  $language->method('getId')
    ->willReturn('en');
  $language_manager = $this->createStub(LanguageManagerInterface::class);
  $language_manager->method('getCurrentLanguage')
    ->willReturn($language);
  $manager = new LocalTaskManager($this->createStub(ArgumentResolverInterface::class), new RequestStack(), $this->createStub(RouteMatchInterface::class), $this->createStub(RouteProviderInterface::class), $module_handler, $this->createStub(CacheBackendInterface::class), $language_manager, $this->createStub(AccessManagerInterface::class), $this->createStub(AccountInterface::class));
  $pluginDiscovery = new YamlDiscovery('links.task', $module_dirs);
  $pluginDiscovery = new ContainerDerivativeDiscoveryDecorator($pluginDiscovery);
  $property = new \ReflectionProperty('Drupal\\Core\\Menu\\LocalTaskManager', 'discovery');
  $property->setValue($manager, $pluginDiscovery);
  $method = new \ReflectionMethod('Drupal\\Core\\Menu\\LocalTaskManager', 'alterInfo');
  $method->invoke($manager, 'local_tasks');
  $factory = $this->createStub(FactoryInterface::class);
  $factory->method('createInstance')
    ->willReturn($this->createStub('Drupal\\Core\\Menu\\LocalTaskInterface'));
  $property = new \ReflectionProperty('Drupal\\Core\\Menu\\LocalTaskManager', 'factory');
  $property->setValue($manager, $factory);
  return $manager;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.