3 namespace Drupal\Tests\block\Unit\Menu;
5 use Drupal\Tests\Core\Menu\LocalTaskIntegrationTestBase;
6 use Symfony\Component\DependencyInjection\ContainerBuilder;
9 * Tests block local tasks.
13 class BlockLocalTasksTest extends LocalTaskIntegrationTestBase {
15 protected function setUp() {
16 $this->directoryList = ['block' => 'core/modules/block'];
19 $config_factory = $this->getConfigFactoryStub(['system.theme' => [
20 'default' => 'test_c',
24 $themes['test_a'] = (object) [
31 $themes['test_b'] = (object) [
37 $themes['test_c'] = (object) [
43 $theme_handler = $this->getMock('Drupal\Core\Extension\ThemeHandlerInterface');
44 $theme_handler->expects($this->any())
46 ->will($this->returnValue($themes));
47 $theme_handler->expects($this->any())
55 $container = new ContainerBuilder();
56 $container->set('config.factory', $config_factory);
57 $container->set('theme_handler', $theme_handler);
58 $container->set('app.root', $this->root);
59 \Drupal::setContainer($container);
63 * Tests the admin edit local task.
65 public function testBlockAdminLocalTasks() {
66 $this->assertLocalTasks('entity.block.edit_form', [['entity.block.edit_form']]);
70 * Tests the block admin display local tasks.
72 * @dataProvider providerTestBlockAdminDisplay
74 public function testBlockAdminDisplay($route, $expected) {
75 $this->assertLocalTasks($route, $expected);
79 * Provides a list of routes to test.
81 public function providerTestBlockAdminDisplay() {
83 ['block.admin_display', [['block.admin_display'], ['block.admin_display_theme:test_b', 'block.admin_display_theme:test_c']]],
84 ['block.admin_display_theme', [['block.admin_display'], ['block.admin_display_theme:test_b', 'block.admin_display_theme:test_c']]],