function ConfigActionsTest::testPlaceBlockAtPosition
File
-
core/
modules/ block/ tests/ src/ Kernel/ ConfigActionsTest.php, line 144
Class
- ConfigActionsTest
- @covers \Drupal\block\Plugin\ConfigAction\PlaceBlock @covers \Drupal\block\Plugin\ConfigAction\PlaceBlockDeriver @group block
Namespace
Drupal\Tests\block\KernelCode
public function testPlaceBlockAtPosition() : void {
// Ensure there's at least one block already in the region.
$block = Block::create([
'id' => 'block_1',
'theme' => 'olivero',
'region' => 'content_above',
'weight' => 0,
'plugin' => 'system_powered_by_block',
]);
$block->save();
$this->configActionManager
->applyAction('placeBlockInDefaultTheme', 'block.block.first', [
'plugin' => $block->getPluginId(),
'region' => [
$block->getTheme() => $block->getRegion(),
],
'position' => 'first',
]);
$this->configActionManager
->applyAction('placeBlockInDefaultTheme', 'block.block.last', [
'plugin' => $block->getPluginId(),
'region' => [
$block->getTheme() => $block->getRegion(),
],
'position' => 'last',
]);
// Query for blocks in the region, ordered by weight.
$blocks = $this->container
->get(EntityTypeManagerInterface::class)
->getStorage('block')
->getQuery()
->condition('theme', $block->getTheme())
->condition('region', $block->getRegion())
->sort('weight', 'ASC')
->execute();
$this->assertGreaterThanOrEqual(3, $blocks);
$this->assertSame('first', key($blocks));
$this->assertSame('last', end($blocks));
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.