3 namespace Drupal\Tests\field\Kernel\Migrate\d6;
5 use Drupal\KernelTests\KernelTestBase;
6 use Drupal\Core\Database\Database;
7 use Drupal\Tests\migrate\Kernel\MigrateDumpAlterInterface;
8 use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase;
11 * Tests migration field label and description i18n translations.
13 * @group migrate_drupal_6
16 class MigrateFieldInstanceLabelDescriptionTest extends MigrateDrupal6TestBase implements MigrateDumpAlterInterface {
21 public static $modules = [
33 public function setUp() {
35 $this->migrateFields();
37 $this->installEntitySchema('node');
38 $this->installConfig(['node']);
39 $this->installSchema('node', ['node_access']);
40 $this->installSchema('system', ['sequences']);
41 $this->executeMigration('language');
42 $this->executeMigration('d6_field_instance_label_description_translation');
48 public static function migrateDumpAlter(KernelTestBase $test) {
49 $db = Database::getConnection('default', 'migrate');
50 // Alter the database to test the migration is successful when a translated
51 // field is deleted but the translation data for that field remains in both
52 // the i18n_strings and locales_target tables.
53 $db->delete('content_node_field_instance')
54 ->condition('field_name', 'field_test')
55 ->condition('type_name', 'story')
60 * Tests migration of file variables to file.settings.yml.
62 public function testFieldInstanceLabelDescriptionTranslationMigration() {
63 $language_manager = $this->container->get('language_manager');
65 // Tests fields on 'story' node type.
66 // Check that the deleted field with translations was skipped.
67 $config_translation = $language_manager->getLanguageConfigOverride('fr', 'field.field.node.story.field_test');
68 $this->assertNull($config_translation->get('label'));
69 $this->assertNull($config_translation->get('description'));
71 $config_translation = $language_manager->getLanguageConfigOverride('fr', 'field.field.node.story.field_test_two');
72 $this->assertSame("fr - Integer Field", $config_translation->get('label'));
73 $this->assertSame("fr - An example integer field.", $config_translation->get('description'));
75 $config_translation = $language_manager->getLanguageConfigOverride('fr', 'field.field.node.story.field_test_four');
76 $this->assertSame("fr - Float Field", $config_translation->get('label'));
77 $this->assertSame("fr - An example float field.", $config_translation->get('description'));
79 $config_translation = $language_manager->getLanguageConfigOverride('fr', 'field.field.node.story.field_test_email');
80 $this->assertSame("fr - Email Field", $config_translation->get('label'));
81 $this->assertSame("fr - An example email field.", $config_translation->get('description'));
83 $config_translation = $language_manager->getLanguageConfigOverride('fr', 'field.field.node.story.field_test_imagefield');
84 $this->assertSame("fr - Image Field", $config_translation->get('label'));
85 $this->assertSame("fr - An example image field.", $config_translation->get('description'));
87 $config_translation = $language_manager->getLanguageConfigOverride('zu', 'field.field.node.story.field_test_imagefield');
88 $this->assertSame("zu - Image Field", $config_translation->get('label'));
89 $this->assertSame("zu - An example image field.", $config_translation->get('description'));
91 $config_translation = $language_manager->getLanguageConfigOverride('fr', 'field.field.node.story.field_test_filefield');
92 $this->assertSame("fr - File Field", $config_translation->get('label'));
93 $this->assertSame("fr - An example file field.", $config_translation->get('description'));
95 $config_translation = $language_manager->getLanguageConfigOverride('fr', 'field.field.node.story.field_test_link');
96 $this->assertSame("fr - Link Field", $config_translation->get('label'));
97 $this->assertSame("fr - An example link field.", $config_translation->get('description'));
99 $config_translation = $language_manager->getLanguageConfigOverride('fr', 'field.field.node.story.field_test_date');
100 $this->assertSame("fr - Date Field", $config_translation->get('label'));
101 $this->assertSame("fr - An example date field.", $config_translation->get('description'));
103 $config_translation = $language_manager->getLanguageConfigOverride('fr', 'field.field.node.story.field_test_datetime');
104 $this->assertSame("fr - Datetime Field", $config_translation->get('label'));
105 $this->assertSame("fr - An example datetime field.", $config_translation->get('description'));
107 $config_translation = $language_manager->getLanguageConfigOverride('fr', 'field.field.node.story.field_test_datestamp');
108 $this->assertSame("fr - Date Stamp Field", $config_translation->get('label'));
109 $this->assertSame("fr - An example date stamp field.", $config_translation->get('description'));
111 $config_translation = $language_manager->getLanguageConfigOverride('fr', 'field.field.node.story.field_test_date');
112 $this->assertSame("fr - Date Field", $config_translation->get('label'));
113 $this->assertSame("fr - An example date field.", $config_translation->get('description'));
115 $config_translation = $language_manager->getLanguageConfigOverride('fr', 'field.field.node.story.field_test_phone');
116 $this->assertSame("fr - Phone Field", $config_translation->get('label'));
117 $this->assertSame("fr - An example phone field.", $config_translation->get('description'));
119 // Tests fields on 'test_page' node type.
120 $config_translation = $language_manager->getLanguageConfigOverride('fr', 'field.field.node.test_page.field_test');
121 $this->assertSame("Champ de texte", $config_translation->get('label'));
122 $this->assertSame("fr - An example text field.", $config_translation->get('description'));
124 // Tests fields on 'test_planet' node type.
125 $config_translation = $language_manager->getLanguageConfigOverride('fr', 'field.field.node.test_planet.field_multivalue');
126 $this->assertSame("fr - Decimal Field", $config_translation->get('label'));
127 $this->assertSame("Un exemple plusieurs valeurs champ décimal.", $config_translation->get('description'));
129 $config_translation = $language_manager->getLanguageConfigOverride('fr', 'field.field.node.test_planet.field_test_text_single_checkbox');
130 $this->assertNull($config_translation->get('label'));
131 $this->assertSame('fr - An example text field using a single on/off checkbox.', $config_translation->get('description'));