You are here

public function BlockTemplateSuggestionsTest::testBlockThemeHookSuggestions in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/block/tests/src/Kernel/BlockTemplateSuggestionsTest.php \Drupal\Tests\block\Kernel\BlockTemplateSuggestionsTest::testBlockThemeHookSuggestions()

Tests template suggestions from block_theme_suggestions_block().

File

core/modules/block/tests/src/Kernel/BlockTemplateSuggestionsTest.php, line 26

Class

BlockTemplateSuggestionsTest
Tests the block_theme_suggestions_block() function.

Namespace

Drupal\Tests\block\Kernel

Code

public function testBlockThemeHookSuggestions() {
  $this
    ->installConfig([
    'system',
  ]);

  // Create a block using a plugin with derivative to be preprocessed.
  $block = Block::create([
    'plugin' => 'system_menu_block:admin',
    'region' => 'footer',
    'id' => 'machinename',
  ]);
  $variables = [];

  /** @var \Drupal\Core\Block\BlockPluginInterface $plugin */
  $plugin = $block
    ->getPlugin();
  $variables['elements']['#configuration'] = $plugin
    ->getConfiguration();
  $variables['elements']['#plugin_id'] = $plugin
    ->getPluginId();
  $variables['elements']['#id'] = $block
    ->id();
  $variables['elements']['#base_plugin_id'] = $plugin
    ->getBaseId();
  $variables['elements']['#derivative_plugin_id'] = $plugin
    ->getDerivativeId();
  $variables['elements']['content'] = [];
  $suggestions = block_theme_suggestions_block($variables);
  $this
    ->assertSame([
    'block__system',
    'block__system_menu_block',
    'block__system_menu_block__admin',
    'block__machinename',
  ], $suggestions);
}