5d51972d72f589e05d40327ab12c20478a0fa7e4
[yaffs-website] / web / core / modules / field / tests / src / Kernel / Migrate / d6 / MigrateFieldInstanceLabelDescriptionTest.php
1 <?php
2
3 namespace Drupal\Tests\field\Kernel\Migrate\d6;
4
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;
9
10 /**
11  * Tests migration field label and description i18n translations.
12  *
13  * @group migrate_drupal_6
14  * @group legacy
15  */
16 class MigrateFieldInstanceLabelDescriptionTest extends MigrateDrupal6TestBase implements MigrateDumpAlterInterface {
17
18   /**
19    * {@inheritdoc}
20    */
21   public static $modules = [
22     'config_translation',
23     'locale',
24     'language',
25     'menu_ui',
26     'node',
27     'field',
28   ];
29
30   /**
31    * {@inheritdoc}
32    */
33   public function setUp() {
34     parent::setUp();
35     $this->migrateFields();
36
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');
43   }
44
45   /**
46    * {@inheritdoc}
47    */
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')
56       ->execute();
57   }
58
59   /**
60    * Tests migration of file variables to file.settings.yml.
61    */
62   public function testFieldInstanceLabelDescriptionTranslationMigration() {
63     $language_manager = $this->container->get('language_manager');
64
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'));
70
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'));
74
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'));
78
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'));
82
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'));
86
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'));
90
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'));
94
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'));
98
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'));
102
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'));
106
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'));
110
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'));
114
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'));
118
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'));
123
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'));
128
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'));
132   }
133
134 }