View source
<?php
namespace Drupal\block\Tests\Migrate\d7;
use Drupal\block\Entity\Block;
use Drupal\block_content\Entity\BlockContent;
use Drupal\migrate_drupal\Tests\d7\MigrateDrupal7TestBase;
class MigrateBlockTest extends MigrateDrupal7TestBase {
static $modules = [
'block',
'views',
'comment',
'menu_ui',
'block_content',
'node',
'text',
'filter',
'user',
];
protected function setUp() {
parent::setUp();
$this
->installConfig(static::$modules);
$this
->installEntitySchema('block_content');
$config = $this
->config('system.theme');
$config
->set('default', 'bartik');
$config
->set('admin', 'seven');
$config
->save();
\Drupal::service('theme_handler')
->install([
'bartik',
]);
$this
->executeMigrations([
'd7_filter_format',
'd7_user_role',
'block_content_type',
'block_content_body_field',
'd7_custom_block',
'd7_block',
]);
}
public function assertEntity($id, $plugin_id, array $roles, $pages, $region, $theme, $weight) {
$block = Block::load($id);
$this
->assertTrue($block instanceof Block);
$this
->assertIdentical($plugin_id, $block
->getPluginId());
$visibility = $block
->getVisibility();
if ($roles) {
$this
->assertIdentical($roles, array_values($visibility['user_role']['roles']));
$this
->assertIdentical('@user.current_user_context:current_user', $visibility['user_role']['context_mapping']['user']);
}
if ($pages) {
$this
->assertIdentical($pages, $visibility['request_path']['pages']);
}
$this
->assertIdentical($region, $block
->getRegion());
$this
->assertIdentical($theme, $block
->getTheme());
$this
->assertIdentical($weight, $block
->getWeight());
}
public function testBlockMigration() {
$this
->assertEntity('bartik_system_main', 'system_main_block', [], '', 'content', 'bartik', 0);
$this
->assertEntity('bartik_search_form', 'search_form_block', [], '', 'sidebar_first', 'bartik', -1);
$this
->assertEntity('bartik_user_login', 'user_login_block', [], '', 'sidebar_first', 'bartik', 0);
$this
->assertEntity('bartik_system_powered-by', 'system_powered_by_block', [], '', 'footer', 'bartik', 10);
$this
->assertEntity('seven_system_main', 'system_main_block', [], '', 'content', 'seven', 0);
$this
->assertEntity('seven_user_login', 'user_login_block', [], '', 'content', 'seven', 10);
$uuid = BlockContent::load(1)
->uuid();
$this
->assertEntity('bartik_block_1', 'block_content:' . $uuid, [
'authenticated',
], '', 'highlighted', 'bartik', 0);
$non_existent_blocks = [
'bartik_system_navigation',
'bartik_system_help',
'seven_user_new',
'seven_search_form',
'bartik_comment_recent',
'bartik_node_syndicate',
'bartik_node_recent',
'bartik_shortcut_shortcuts',
'bartik_system_management',
'bartik_system_user-menu',
'bartik_system_main-menu',
'bartik_user_new',
'bartik_user_online',
'seven_comment_recent',
'seven_node_syndicate',
'seven_shortcut_shortcuts',
'seven_system_powered-by',
'seven_system_navigation',
'seven_system_management',
'seven_system_user-menu',
'seven_system_main-menu',
'seven_user_online',
'bartik_blog_recent',
'bartik_book_navigation',
'bartik_locale_language',
'bartik_forum_active',
'bartik_forum_new',
'seven_blog_recent',
'seven_book_navigation',
'seven_locale_language',
'seven_forum_active',
'seven_forum_new',
'bartik_menu_menu-test-menu',
'bartik_statistics_popular',
'seven_menu_menu-test-menu',
'seven_statistics_popular',
'seven_block_1',
];
$this
->assertTrue(empty(Block::loadMultiple($non_existent_blocks)));
}
}