function BlockTestBase::moveBlockToRegion

Moves a block to a given region via the UI and confirms the result.

Parameters

array $block: An array of information about the block, including the following keys:

  • module: The module providing the block.
  • title: The title of the block.
  • delta: The block's delta key.

string $region: The machine name of the theme region to move the block to, for example 'header' or 'sidebar_first'.

1 method overrides BlockTestBase::moveBlockToRegion()
BlockTest::moveBlockToRegion in drupal/core/modules/block/lib/Drupal/block/Tests/BlockTest.php
Moves a block to a given region via the UI and confirms the result.

File

drupal/core/modules/block/lib/Drupal/block/Tests/BlockTestBase.php, line 90
Contains \Drupal\block\Tests\BlockTestBase.

Class

BlockTestBase
Provides setup and helper methods for block module tests.

Namespace

Drupal\block\Tests

Code

function moveBlockToRegion(array $block, $region) {

  // Set the created block to a specific region.
  $edit = array();
  $edit['blocks[0][region]'] = $region;
  $this
    ->drupalPost('admin/structure/block', $edit, t('Save blocks'));

  // Confirm that the block was moved to the proper region.
  $this
    ->assertText(t('The block settings have been updated.'), format_string('Block successfully moved to %region_name region.', array(
    '%region_name' => $region,
  )));

  // Confirm that the block is being displayed.
  $this
    ->drupalGet('');
  $this
    ->assertText(t($block['title']), 'Block successfully being displayed on the page.');

  // Confirm that the custom block was found at the proper region.
  $xpath = $this
    ->buildXPathQuery('//div[@class=:region-class]//div[@id=:block-id]/*', array(
    ':region-class' => 'region region-' . drupal_html_class($region),
    ':block-id' => 'block-' . strtr(strtolower($block['machine_name']), '-', '_'),
  ));
  $this
    ->assertFieldByXPath($xpath, NULL, t('Block found in %region_name region.', array(
    '%region_name' => drupal_html_class($region),
  )));
}