Loading core/modules/aggregator/tests/src/Kernel/Migrate/d6/MigrateBlockTest.php 0 → 100644 +108 −0 Original line number Diff line number Diff line <?php namespace Drupal\Tests\aggregator\Kernel\Migrate\d6; use Drupal\block\Entity\Block; // @todo Remove in https://www.drupal.org/node/3267274 use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase; /** * Tests migration of aggregator block. * * @group aggregator */ class MigrateBlockTest extends MigrateDrupal6TestBase { /** * {@inheritdoc} */ protected static $modules = [ 'aggregator', 'block', 'block_content', 'path_alias', ]; /** * {@inheritdoc} */ protected function setUp(): void { parent::setUp(); // Install the themes used for this test. $this->container->get('theme_installer')->install(['bartik', 'test_theme']); $this->installEntitySchema('block_content'); $this->installConfig(['block_content']); // Set Bartik as the default public theme. $config = $this->config('system.theme'); $config->set('default', 'bartik'); $config->save(); $this->executeMigrations([ 'd6_filter_format', 'block_content_type', 'block_content_body_field', 'd6_custom_block', 'd6_user_role', 'd6_block', ]); block_rebuild(); } /** * Asserts various aspects of a block. * * @param string $id * The block ID. * @param array $visibility * The block visibility settings. * @param string $region * The display region. * @param string $theme * The theme. * @param int $weight * The block weight. * @param array $settings * (optional) The block settings. * @param bool $status * Whether the block is expected to be enabled or disabled. * * @internal */ public function assertEntity(string $id, array $visibility, string $region, string $theme, int $weight, array $settings = NULL, bool $status = TRUE): void { $block = Block::load($id); $this->assertInstanceOf(Block::class, $block); $this->assertSame($visibility, $block->getVisibility()); $this->assertSame($region, $block->getRegion()); $this->assertSame($theme, $block->getTheme()); $this->assertSame($weight, $block->getWeight()); $this->assertSame($status, $block->status()); if ($settings) { $block_settings = $block->get('settings'); $block_settings['id'] = current(explode(':', $block_settings['id'])); $this->assertEquals($settings, $block_settings); } } /** * Tests the block migration. */ public function testBlockMigration() { $blocks = Block::loadMultiple(); $this->assertCount(14, $blocks); // Check aggregator block. $settings = [ 'id' => 'aggregator_feed_block', 'label' => '', 'provider' => 'aggregator', 'label_display' => '0', 'block_count' => 7, 'feed' => '5', ]; $this->assertEntity('aggregator', [], 'sidebar_second', 'bartik', -2, $settings); } } core/modules/block/src/Plugin/migrate/destination/EntityBlock.php +15 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,8 @@ namespace Drupal\block\Plugin\migrate\destination; use Drupal\Core\Config\Schema\SchemaIncompleteException; use Drupal\migrate\MigrateException; use Drupal\migrate\Plugin\migrate\destination\EntityConfigBase; use Drupal\migrate\Row; Loading @@ -25,4 +27,17 @@ protected function getEntityId(Row $row) { return reset($blocks); } /** * {@inheritdoc} */ public function import(Row $row, array $old_destination_id_values = []) { try { $entity_ids = parent::import($row, $old_destination_id_values); } catch (SchemaIncompleteException $e) { throw new MigrateException($e->getMessage()); } return $entity_ids; } } core/modules/block/tests/src/Kernel/Migrate/d6/MigrateBlockContentTranslationTest.php +0 −1 Original line number Diff line number Diff line Loading @@ -15,7 +15,6 @@ class MigrateBlockContentTranslationTest extends MigrateDrupal6TestBase { * {@inheritdoc} */ protected static $modules = [ 'aggregator', 'book', 'block', 'comment', Loading core/modules/block/tests/src/Kernel/Migrate/d6/MigrateBlockTest.php +7 −3 Original line number Diff line number Diff line Loading @@ -23,7 +23,6 @@ class MigrateBlockTest extends MigrateDrupal6TestBase { 'block_content', 'taxonomy', 'node', 'aggregator', 'book', 'forum', 'path_alias', Loading Loading @@ -197,9 +196,9 @@ public function testBlockMigration() { // Check aggregator block. $settings = [ 'id' => 'aggregator_feed_block', 'id' => 'broken', 'label' => '', 'provider' => 'aggregator', 'provider' => 'core', 'label_display' => '0', 'block_count' => 7, 'feed' => '5', Loading Loading @@ -306,6 +305,11 @@ public function testBlockMigration() { // Custom block with php code is not migrated. $block = Block::load('block_3'); $this->assertNotInstanceOf(Block::class, $block); // Check migrate messages. $messages = iterator_to_array($this->getMigration('d6_block')->getIdMap()->getMessages()); $this->assertCount(2, $messages); $this->assertSame($messages[1]->message, 'Schema errors for block.block.aggregator with the following errors: block.block.aggregator:settings.block_count missing schema, block.block.aggregator:settings.feed missing schema'); } } core/modules/block/tests/src/Kernel/Migrate/d7/MigrateBlockContentTranslationTest.php +0 −1 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ class MigrateBlockContentTranslationTest extends MigrateDrupal7TestBase { protected static $modules = [ 'node', 'text', 'aggregator', 'book', 'block', 'comment', Loading Loading
core/modules/aggregator/tests/src/Kernel/Migrate/d6/MigrateBlockTest.php 0 → 100644 +108 −0 Original line number Diff line number Diff line <?php namespace Drupal\Tests\aggregator\Kernel\Migrate\d6; use Drupal\block\Entity\Block; // @todo Remove in https://www.drupal.org/node/3267274 use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase; /** * Tests migration of aggregator block. * * @group aggregator */ class MigrateBlockTest extends MigrateDrupal6TestBase { /** * {@inheritdoc} */ protected static $modules = [ 'aggregator', 'block', 'block_content', 'path_alias', ]; /** * {@inheritdoc} */ protected function setUp(): void { parent::setUp(); // Install the themes used for this test. $this->container->get('theme_installer')->install(['bartik', 'test_theme']); $this->installEntitySchema('block_content'); $this->installConfig(['block_content']); // Set Bartik as the default public theme. $config = $this->config('system.theme'); $config->set('default', 'bartik'); $config->save(); $this->executeMigrations([ 'd6_filter_format', 'block_content_type', 'block_content_body_field', 'd6_custom_block', 'd6_user_role', 'd6_block', ]); block_rebuild(); } /** * Asserts various aspects of a block. * * @param string $id * The block ID. * @param array $visibility * The block visibility settings. * @param string $region * The display region. * @param string $theme * The theme. * @param int $weight * The block weight. * @param array $settings * (optional) The block settings. * @param bool $status * Whether the block is expected to be enabled or disabled. * * @internal */ public function assertEntity(string $id, array $visibility, string $region, string $theme, int $weight, array $settings = NULL, bool $status = TRUE): void { $block = Block::load($id); $this->assertInstanceOf(Block::class, $block); $this->assertSame($visibility, $block->getVisibility()); $this->assertSame($region, $block->getRegion()); $this->assertSame($theme, $block->getTheme()); $this->assertSame($weight, $block->getWeight()); $this->assertSame($status, $block->status()); if ($settings) { $block_settings = $block->get('settings'); $block_settings['id'] = current(explode(':', $block_settings['id'])); $this->assertEquals($settings, $block_settings); } } /** * Tests the block migration. */ public function testBlockMigration() { $blocks = Block::loadMultiple(); $this->assertCount(14, $blocks); // Check aggregator block. $settings = [ 'id' => 'aggregator_feed_block', 'label' => '', 'provider' => 'aggregator', 'label_display' => '0', 'block_count' => 7, 'feed' => '5', ]; $this->assertEntity('aggregator', [], 'sidebar_second', 'bartik', -2, $settings); } }
core/modules/block/src/Plugin/migrate/destination/EntityBlock.php +15 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,8 @@ namespace Drupal\block\Plugin\migrate\destination; use Drupal\Core\Config\Schema\SchemaIncompleteException; use Drupal\migrate\MigrateException; use Drupal\migrate\Plugin\migrate\destination\EntityConfigBase; use Drupal\migrate\Row; Loading @@ -25,4 +27,17 @@ protected function getEntityId(Row $row) { return reset($blocks); } /** * {@inheritdoc} */ public function import(Row $row, array $old_destination_id_values = []) { try { $entity_ids = parent::import($row, $old_destination_id_values); } catch (SchemaIncompleteException $e) { throw new MigrateException($e->getMessage()); } return $entity_ids; } }
core/modules/block/tests/src/Kernel/Migrate/d6/MigrateBlockContentTranslationTest.php +0 −1 Original line number Diff line number Diff line Loading @@ -15,7 +15,6 @@ class MigrateBlockContentTranslationTest extends MigrateDrupal6TestBase { * {@inheritdoc} */ protected static $modules = [ 'aggregator', 'book', 'block', 'comment', Loading
core/modules/block/tests/src/Kernel/Migrate/d6/MigrateBlockTest.php +7 −3 Original line number Diff line number Diff line Loading @@ -23,7 +23,6 @@ class MigrateBlockTest extends MigrateDrupal6TestBase { 'block_content', 'taxonomy', 'node', 'aggregator', 'book', 'forum', 'path_alias', Loading Loading @@ -197,9 +196,9 @@ public function testBlockMigration() { // Check aggregator block. $settings = [ 'id' => 'aggregator_feed_block', 'id' => 'broken', 'label' => '', 'provider' => 'aggregator', 'provider' => 'core', 'label_display' => '0', 'block_count' => 7, 'feed' => '5', Loading Loading @@ -306,6 +305,11 @@ public function testBlockMigration() { // Custom block with php code is not migrated. $block = Block::load('block_3'); $this->assertNotInstanceOf(Block::class, $block); // Check migrate messages. $messages = iterator_to_array($this->getMigration('d6_block')->getIdMap()->getMessages()); $this->assertCount(2, $messages); $this->assertSame($messages[1]->message, 'Schema errors for block.block.aggregator with the following errors: block.block.aggregator:settings.block_count missing schema, block.block.aggregator:settings.feed missing schema'); } }
core/modules/block/tests/src/Kernel/Migrate/d7/MigrateBlockContentTranslationTest.php +0 −1 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ class MigrateBlockContentTranslationTest extends MigrateDrupal7TestBase { protected static $modules = [ 'node', 'text', 'aggregator', 'book', 'block', 'comment', Loading