class BlockLocalTasksTest

Same name in other branches
  1. 9 core/modules/block/tests/src/Unit/Menu/BlockLocalTasksTest.php \Drupal\Tests\block\Unit\Menu\BlockLocalTasksTest
  2. 8.9.x core/modules/block/tests/src/Unit/Menu/BlockLocalTasksTest.php \Drupal\Tests\block\Unit\Menu\BlockLocalTasksTest
  3. 10 core/modules/block/tests/src/Unit/Menu/BlockLocalTasksTest.php \Drupal\Tests\block\Unit\Menu\BlockLocalTasksTest

Tests block local tasks.

@group block

Hierarchy

Expanded class hierarchy of BlockLocalTasksTest

File

core/modules/block/tests/src/Unit/Menu/BlockLocalTasksTest.php, line 15

Namespace

Drupal\Tests\block\Unit\Menu
View source
class BlockLocalTasksTest extends LocalTaskIntegrationTestBase {
    
    /**
     * {@inheritdoc}
     */
    protected function setUp() : void {
        $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')
            ->willReturn($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->setParameter('app.root', $this->root);
        \Drupal::setContainer($container);
    }
    
    /**
     * Tests the admin edit local task.
     */
    public function testBlockAdminLocalTasks() : void {
        $this->assertLocalTasks('entity.block.edit_form', [
            [
                'entity.block.edit_form',
            ],
        ]);
    }
    
    /**
     * Tests the block admin display local tasks.
     *
     * @dataProvider providerTestBlockAdminDisplay
     */
    public function testBlockAdminDisplay($route, $expected) : void {
        $this->assertLocalTasks($route, $expected);
    }
    
    /**
     * Provides a list of routes to test.
     */
    public static 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',
                    ],
                ],
            ],
        ];
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title
BlockLocalTasksTest::providerTestBlockAdminDisplay public static function Provides a list of routes to test.
BlockLocalTasksTest::setUp protected function Overrides LocalTaskIntegrationTestBase::setUp
BlockLocalTasksTest::testBlockAdminDisplay public function Tests the block admin display local tasks.
BlockLocalTasksTest::testBlockAdminLocalTasks public function Tests the admin edit local task.
ExpectDeprecationTrait::expectDeprecation public function Adds an expected deprecation.
ExpectDeprecationTrait::setUpErrorHandler public function Sets up the test error handler.
ExpectDeprecationTrait::tearDownErrorHandler public function Tears down the test error handler.
LocalTaskIntegrationTestBase::$container protected property The container.
LocalTaskIntegrationTestBase::$directoryList protected property A list of module directories used for YAML searching.
LocalTaskIntegrationTestBase::$moduleHandler protected property The module handler.
LocalTaskIntegrationTestBase::assertLocalTasks protected function Tests integration for local tasks.
LocalTaskIntegrationTestBase::getLocalTaskManager protected function Sets up the local task manager for the test.
RandomGeneratorTrait::getRandomGenerator protected function Gets the random generator for the utility methods.
RandomGeneratorTrait::randomMachineName protected function Generates a unique random string containing letters and numbers.
RandomGeneratorTrait::randomObject public function Generates a random PHP object.
RandomGeneratorTrait::randomString public function Generates a pseudo-random string of ASCII characters of codes 32 to 126.
UnitTestCase::$root protected property The app root.
UnitTestCase::getClassResolverStub protected function Returns a stub class resolver.
UnitTestCase::getConfigFactoryStub public function Returns a stub config factory that behaves according to the passed array.
UnitTestCase::getContainerWithCacheTagsInvalidator protected function Sets up a container with a cache tags invalidator.
UnitTestCase::getStringTranslationStub public function Returns a stub translation manager that just returns the passed string.
UnitTestCase::setDebugDumpHandler public static function Registers the dumper CLI handler when the DebugDump extension is enabled.

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