View source
<?php
namespace Drupal\Tests\field\Kernel\Migrate\d7;
use Drupal\Core\Database\Database;
use Drupal\KernelTests\KernelTestBase;
use Drupal\Tests\migrate\Kernel\MigrateDumpAlterInterface;
use Drupal\Tests\migrate_drupal\Kernel\d7\MigrateDrupal7TestBase;
class MigrateFieldInstanceLabelDescriptionTest extends MigrateDrupal7TestBase implements MigrateDumpAlterInterface {
protected static $modules = [
'comment',
'config_translation',
'datetime',
'field',
'file',
'image',
'language',
'link',
'locale',
'menu_ui',
'node',
'system',
'taxonomy',
'telephone',
'text',
];
public function setUp() : void {
parent::setUp();
$this
->installEntitySchema('node');
$this
->installEntitySchema('comment');
$this
->installEntitySchema('taxonomy_term');
$this
->installConfig(static::$modules);
$this
->executeMigrations([
'd7_node_type',
'd7_comment_type',
'd7_taxonomy_vocabulary',
'd7_field',
'd7_field_instance',
'd7_field_instance_widget_settings',
'language',
'd7_field_instance_label_description_translation',
]);
}
public static function migrateDumpAlter(KernelTestBase $test) {
$db = Database::getConnection('default', 'migrate');
$db
->delete('field_config_instance')
->condition('field_name', 'field_image')
->condition('bundle', 'article')
->execute();
}
public function testFieldInstanceLabelDescriptionTranslationMigration() {
$language_manager = $this->container
->get('language_manager');
$config_translation = $language_manager
->getLanguageConfigOverride('fr', 'field.field.node.article.field_image');
$this
->assertNull($config_translation
->get('label'));
$this
->assertNull($config_translation
->get('description'));
$config_translation = $language_manager
->getLanguageConfigOverride('fr', 'field.field.node.test_content_type.field_email');
$this
->assertNull($config_translation
->get('label'));
$this
->assertSame("fr - The email help text.", $config_translation
->get('description'));
$config_translation = $language_manager
->getLanguageConfigOverride('is', 'field.field.node.test_content_type.field_email');
$this
->assertSame("is - Email", $config_translation
->get('label'));
$this
->assertSame("is - The email help text.", $config_translation
->get('description'));
$config_translation = $language_manager
->getLanguageConfigOverride('is', 'field.field.node.test_content_type.field_boolean');
$this
->assertSame("is - Some helpful text.", $config_translation
->get('description'));
$config_translation = $language_manager
->getLanguageConfigOverride('fr', 'field.field.node.article.body');
$this
->assertSame("fr - Body", $config_translation
->get('label'));
$config_translation = $language_manager
->getLanguageConfigOverride('fr', 'field.field.node.article.field_link');
$this
->assertSame("fr - Link", $config_translation
->get('label'));
$config_translation = $language_manager
->getLanguageConfigOverride('is', 'field.field.taxonomy_term.test_vocabulary.field_term_reference');
$this
->assertSame("is - Term Reference", $config_translation
->get('label'));
}
}