annotate core/modules/block/tests/src/Functional/BlockTemplateSuggestionsTest.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 4c8ae668cc8c
children
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 namespace Drupal\Tests\block\Functional;
Chris@0 4
Chris@0 5 use Drupal\block\Entity\Block;
Chris@0 6 use Drupal\Tests\BrowserTestBase;
Chris@0 7
Chris@0 8 /**
Chris@0 9 * Tests the block_theme_suggestions_block() function.
Chris@0 10 *
Chris@0 11 * @group block
Chris@0 12 */
Chris@0 13 class BlockTemplateSuggestionsTest extends BrowserTestBase {
Chris@0 14
Chris@0 15 /**
Chris@0 16 * Modules to install.
Chris@0 17 *
Chris@0 18 * @var array
Chris@0 19 */
Chris@0 20 public static $modules = ['block'];
Chris@0 21
Chris@0 22 /**
Chris@0 23 * Tests template suggestions from block_theme_suggestions_block().
Chris@0 24 */
Chris@0 25 public function testBlockThemeHookSuggestions() {
Chris@0 26 // Define a block with a derivative to be preprocessed, which includes both
Chris@0 27 // an underscore (not transformed) and a hyphen (transformed to underscore),
Chris@0 28 // and generates possibilities for each level of derivative.
Chris@0 29 // @todo Clarify this comment.
Chris@0 30 $block = Block::create([
Chris@0 31 'plugin' => 'system_menu_block:admin',
Chris@0 32 'region' => 'footer',
Chris@0 33 'id' => 'machinename',
Chris@0 34 ]);
Chris@0 35
Chris@0 36 $variables = [];
Chris@0 37 $plugin = $block->getPlugin();
Chris@0 38 $variables['elements']['#configuration'] = $plugin->getConfiguration();
Chris@0 39 $variables['elements']['#plugin_id'] = $plugin->getPluginId();
Chris@0 40 $variables['elements']['#id'] = $block->id();
Chris@0 41 $variables['elements']['#base_plugin_id'] = $plugin->getBaseId();
Chris@0 42 $variables['elements']['#derivative_plugin_id'] = $plugin->getDerivativeId();
Chris@0 43 $variables['elements']['content'] = [];
Chris@0 44 $suggestions = block_theme_suggestions_block($variables);
Chris@0 45 $this->assertEqual($suggestions, ['block__system', 'block__system_menu_block', 'block__system_menu_block__admin', 'block__machinename']);
Chris@0 46 }
Chris@0 47
Chris@0 48 }