View source
<?php
namespace Drupal\Tests\block\Unit\Menu;
use Drupal\Tests\Core\Menu\LocalTaskIntegrationTestBase;
use Symfony\Component\DependencyInjection\ContainerBuilder;
class BlockLocalTasksTest extends LocalTaskIntegrationTestBase {
protected function setUp() {
$this->directoryList = [
'block' => 'core/modules/block',
];
parent::setUp();
$config_factory = $this
->getConfigFactoryStub([
'system.theme' => [
'default' => 'test_c',
],
]);
$themes = [];
$themes['test_a'] = (object) [
'status' => 1,
'info' => [
'name' => 'test_a',
'hidden' => TRUE,
],
];
$themes['test_b'] = (object) [
'status' => 1,
'info' => [
'name' => 'test_b',
],
];
$themes['test_c'] = (object) [
'status' => 1,
'info' => [
'name' => 'test_c',
],
];
$theme_handler = $this
->createMock('Drupal\\Core\\Extension\\ThemeHandlerInterface');
$theme_handler
->expects($this
->any())
->method('listInfo')
->will($this
->returnValue($themes));
$theme_handler
->expects($this
->any())
->method('hasUi')
->willReturnMap([
[
'test_a',
FALSE,
],
[
'test_b',
TRUE,
],
[
'test_c',
TRUE,
],
]);
$container = new ContainerBuilder();
$container
->set('config.factory', $config_factory);
$container
->set('theme_handler', $theme_handler);
$container
->set('app.root', $this->root);
\Drupal::setContainer($container);
}
public function testBlockAdminLocalTasks() {
$this
->assertLocalTasks('entity.block.edit_form', [
[
'entity.block.edit_form',
],
]);
}
public function testBlockAdminDisplay($route, $expected) {
$this
->assertLocalTasks($route, $expected);
}
public function providerTestBlockAdminDisplay() {
return [
[
'block.admin_display',
[
[
'block.admin_display',
],
[
'block.admin_display_theme:test_b',
'block.admin_display_theme:test_c',
],
],
],
[
'block.admin_display_theme',
[
[
'block.admin_display',
],
[
'block.admin_display_theme:test_b',
'block.admin_display_theme:test_c',
],
],
],
];
}
}