View source
<?php
namespace Drupal\Tests\field_group_migrate\Kernel\Migrate\d7;
use Drupal\Tests\migrate_drupal\Kernel\d7\MigrateDrupal7TestBase;
class MigrateFieldGroupTest extends MigrateDrupal7TestBase {
public static $modules = [
'field_group',
'field_group_migrate',
'comment',
'datetime',
'image',
'link',
'node',
'taxonomy',
'telephone',
'text',
'taxonomy',
'menu_ui',
];
protected function setUp() {
parent::setUp();
$this
->loadFixture(__DIR__ . '/../../../../fixtures/drupal7.php');
$this
->installConfig(static::$modules);
$this
->executeMigrations([
'd7_node_type',
'd7_comment_type',
'd7_taxonomy_vocabulary',
'd7_view_modes',
'd7_field',
'd7_field_group',
]);
}
protected function assertEntity($id, $type, $group_name, $expected_label, $expected_weight = 0, $expected_format_settings = [], $expected_format_type = 'tabs', $expected_children = [], $expected_parent_name = '') {
$entity = \Drupal::entityTypeManager()
->getStorage($type)
->load($id);
$field_group_settings = $entity
->getThirdPartySettings('field_group');
$this
->assertNotEmpty($field_group_settings);
$this
->assertArrayHasKey($group_name, $field_group_settings);
$field_group = $field_group_settings[$group_name];
$this
->assertEquals($expected_label, $field_group['label']);
$this
->assertEquals($expected_format_settings, $field_group['format_settings']);
$this
->assertEquals($expected_children, $field_group['children']);
$this
->assertEquals($expected_parent_name, $field_group['parent_name']);
$this
->assertEquals($expected_weight, $field_group['weight']);
$this
->assertEquals($expected_format_type, $field_group['format_type']);
}
public function testFieldGroup() {
$this
->assertEntity('node.page.default', 'entity_view_display', 'group_page', 'Node group', 0, [
'direction' => 'horizontal',
]);
$this
->assertEntity('user.user.default', 'entity_view_display', 'group_user', 'User group parent', 1, [
'element' => 'div',
], 'html_element');
$this
->assertEntity('user.user.default', 'entity_view_display', 'group_user_child', 'User group child', 99, [
'direction' => 'vertical',
'label' => 'User group child',
'classes' => 'user-group-child',
'id' => 'group_article_node_article_teaser',
], 'tabs', [
'user_picture',
], 'group_user');
$this
->assertEntity('node.article.teaser', 'entity_view_display', 'group_article', 'htab group', 2, [
'classes' => 'htab-group',
], 'tab', [
'field_image',
]);
$entity = \Drupal::entityTypeManager()
->getStorage('entity_view_display')
->load('node.page.teaser');
$field_group_settings = $entity
->getThirdPartySettings('field_group');
$this
->assertEmpty($field_group_settings);
$this
->assertEntity('node.page.default', 'entity_form_display', 'group_page', 'Node form group', 0, [
'direction' => 'horizontal',
]);
$this
->assertEntity('node.article.default', 'entity_form_display', 'group_article', 'htab form group', 2, [], 'tab', [
'field_image',
]);
$entity = \Drupal::entityTypeManager()
->getStorage('entity_form_display')
->load('node.blog.default');
$field_group_settings = $entity
->getThirdPartySettings('field_group');
$this
->assertEmpty($field_group_settings);
}
}