Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
CRAP | |
0.00% |
0 / 17 |
| BlockCreationTrait | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
12 | |
0.00% |
0 / 17 |
| placeBlock | |
0.00% |
0 / 1 |
12 | |
0.00% |
0 / 17 |
|||
| <?php | |
| /** | |
| * @file | |
| * Contains \Drupal\simpletest\BlockCreationTrait. | |
| */ | |
| namespace Drupal\simpletest; | |
| use Drupal\block\Entity\Block; | |
| /** | |
| * Provides methods to create and place block with default settings. | |
| * | |
| * This trait is meant to be used only by test classes. | |
| */ | |
| trait BlockCreationTrait { | |
| /** | |
| * Creates a block instance based on default settings. | |
| * | |
| * @param string $plugin_id | |
| * The plugin ID of the block type for this block instance. | |
| * @param array $settings | |
| * (optional) An associative array of settings for the block entity. | |
| * Override the defaults by specifying the key and value in the array, for | |
| * example: | |
| * @code | |
| * $this->drupalPlaceBlock('system_powered_by_block', array( | |
| * 'label' => t('Hello, world!'), | |
| * )); | |
| * @endcode | |
| * The following defaults are provided: | |
| * - label: Random string. | |
| * - ID: Random string. | |
| * - region: 'sidebar_first'. | |
| * - theme: The default theme. | |
| * - visibility: Empty array. | |
| * | |
| * @return \Drupal\block\Entity\Block | |
| * The block entity. | |
| * | |
| * @todo | |
| * Add support for creating custom block instances. | |
| */ | |
| protected function placeBlock($plugin_id, array $settings = array()) { | |
| $config = \Drupal::configFactory(); | |
| $settings += array( | |
| 'plugin' => $plugin_id, | |
| 'region' => 'sidebar_first', | |
| 'id' => strtolower($this->randomMachineName(8)), | |
| 'theme' => $config->get('system.theme')->get('default'), | |
| 'label' => $this->randomMachineName(8), | |
| 'visibility' => array(), | |
| 'weight' => 0, | |
| ); | |
| $values = []; | |
| foreach (array('region', 'id', 'theme', 'plugin', 'weight', 'visibility') as $key) { | |
| $values[$key] = $settings[$key]; | |
| // Remove extra values that do not belong in the settings array. | |
| unset($settings[$key]); | |
| } | |
| foreach ($values['visibility'] as $id => $visibility) { | |
| $values['visibility'][$id]['id'] = $id; | |
| } | |
| $values['settings'] = $settings; | |
| $block = Block::create($values); | |
| $block->save(); | |
| return $block; | |
| } | |
| } |