db0d33292769047ccac994773534ae01dab6964c
[yaffs-website] / web / core / modules / content_translation / tests / src / Kernel / Plugin / migrate / source / d7 / EntityTranslationSettingsTest.php
1 <?php
2
3 namespace Drupal\Tests\content_translation\Kernel\Plugin\migrate\source\d7;
4
5 use Drupal\Tests\migrate\Kernel\MigrateSqlSourceTestBase;
6
7 /**
8  * Tests entity translation settings source plugin.
9  *
10  * @covers \Drupal\content_translation\Plugin\migrate\source\d7\EntityTranslationSettings
11  *
12  * @group content_translation
13  */
14 class EntityTranslationSettingsTest extends MigrateSqlSourceTestBase {
15
16   /**
17    * {@inheritdoc}
18    */
19   public static $modules = [
20     'content_translation',
21     'language',
22     'migrate_drupal',
23   ];
24
25   /**
26    * {@inheritdoc}
27    */
28   public function providerSource() {
29     $tests = [];
30
31     // Source data when there's no entity type that uses entity translation.
32     $tests[0]['source_data']['variable'] = [
33       [
34         'name' => 'entity_translation_entity_types',
35         'value' => 'a:4:{s:7:"comment";i:0;s:4:"node";i:0;s:13:"taxonomy_term";i:0;s:4:"user";i:0;}',
36       ],
37     ];
38
39     // Source data when there's no bundle settings variables.
40     $tests[1]['source_data']['variable'] = [
41       [
42         'name' => 'entity_translation_entity_types',
43         'value' => 'a:4:{s:7:"comment";s:7:"comment";s:4:"node";s:4:"node";s:13:"taxonomy_term";s:13:"taxonomy_term";s:4:"user";s:4:"user";}',
44       ],
45       [
46         'name' => 'entity_translation_taxonomy',
47         'value' => 'a:3:{s:6:"forums";b:1;s:4:"tags";b:1;s:4:"test";b:0;}',
48       ],
49       [
50         'name' => 'language_content_type_article',
51         'value' => 's:1:"2";',
52       ],
53       [
54         'name' => 'language_content_type_forum',
55         'value' => 's:1:"4";',
56       ],
57       [
58         'name' => 'language_content_type_page',
59         'value' => 's:1:"4";',
60       ],
61     ];
62
63     // Source data when there's bundle settings variables.
64     $tests[2]['source_data']['variable'] = [
65       [
66         'name' => 'entity_translation_entity_types',
67         'value' => 'a:4:{s:7:"comment";s:7:"comment";s:4:"node";s:4:"node";s:13:"taxonomy_term";s:13:"taxonomy_term";s:4:"user";s:4:"user";}',
68       ],
69       [
70         'name' => 'entity_translation_settings_comment__comment_node_forum',
71         'value' => 'a:5:{s:16:"default_language";s:12:"xx-et-author";s:22:"hide_language_selector";i:1;s:21:"exclude_language_none";i:0;s:13:"lock_language";i:0;s:27:"shared_fields_original_only";i:0;}',
72       ],
73       [
74         'name' => 'entity_translation_settings_comment__comment_node_page',
75         'value' => 'a:5:{s:16:"default_language";s:12:"xx-et-author";s:22:"hide_language_selector";i:0;s:21:"exclude_language_none";i:0;s:13:"lock_language";i:0;s:27:"shared_fields_original_only";i:1;}',
76       ],
77       [
78         'name' => 'entity_translation_settings_node__forum',
79         'value' => 'a:5:{s:16:"default_language";s:12:"xx-et-author";s:22:"hide_language_selector";i:0;s:21:"exclude_language_none";i:0;s:13:"lock_language";i:0;s:27:"shared_fields_original_only";i:0;}',
80       ],
81       [
82         'name' => 'entity_translation_settings_node__page',
83         'value' => 'a:5:{s:16:"default_language";s:13:"xx-et-default";s:22:"hide_language_selector";i:1;s:21:"exclude_language_none";i:0;s:13:"lock_language";i:0;s:27:"shared_fields_original_only";i:1;}',
84       ],
85       [
86         'name' => 'entity_translation_settings_taxonomy_term__forums',
87         'value' => 'a:5:{s:16:"default_language";s:13:"xx-et-current";s:22:"hide_language_selector";i:0;s:21:"exclude_language_none";i:0;s:13:"lock_language";i:0;s:27:"shared_fields_original_only";i:1;}',
88       ],
89       [
90         'name' => 'entity_translation_settings_taxonomy_term__tags',
91         'value' => 'a:5:{s:16:"default_language";s:13:"xx-et-current";s:22:"hide_language_selector";i:1;s:21:"exclude_language_none";i:0;s:13:"lock_language";i:0;s:27:"shared_fields_original_only";i:0;}',
92       ],
93       [
94         'name' => 'entity_translation_settings_user__user',
95         'value' => 'a:5:{s:16:"default_language";s:12:"xx-et-author";s:22:"hide_language_selector";i:1;s:21:"exclude_language_none";i:0;s:13:"lock_language";i:0;s:27:"shared_fields_original_only";i:1;}',
96       ],
97       [
98         'name' => 'entity_translation_taxonomy',
99         'value' => 'a:3:{s:6:"forums";b:1;s:4:"tags";b:1;s:4:"test";b:0;}',
100       ],
101       [
102         'name' => 'language_content_type_article',
103         'value' => 's:1:"2";',
104       ],
105       [
106         'name' => 'language_content_type_forum',
107         'value' => 's:1:"4";',
108       ],
109       [
110         'name' => 'language_content_type_page',
111         'value' => 's:1:"4";',
112       ],
113     ];
114
115     // Source data when taxonomy terms are translatable but the
116     // 'entity_translation_taxonomy' variable is not set.
117     $tests[3]['source_data']['variable'] = [
118       [
119         'name' => 'entity_translation_entity_types',
120         'value' => 'a:4:{s:7:"comment";i:0;s:4:"node";i:0;s:13:"taxonomy_term";i:1;s:4:"user";i:0;}',
121       ],
122     ];
123
124     // Expected data when there's no entity type that uses entity translation.
125     $tests[0]['expected_data'] = [];
126
127     // Expected data when there's no bundle settings variables.
128     $tests[1]['expected_data'] = [
129       [
130         'id' => 'node.forum',
131         'target_entity_type_id' => 'node',
132         'target_bundle' => 'forum',
133         'default_langcode' => 'und',
134         'language_alterable' => TRUE,
135         'untranslatable_fields_hide' => FALSE,
136       ],
137       [
138         'id' => 'node.page',
139         'target_entity_type_id' => 'node',
140         'target_bundle' => 'page',
141         'default_langcode' => 'und',
142         'language_alterable' => TRUE,
143         'untranslatable_fields_hide' => FALSE,
144       ],
145       [
146         'id' => 'comment.comment_forum',
147         'target_entity_type_id' => 'comment',
148         'target_bundle' => 'comment_forum',
149         'default_langcode' => 'xx-et-current',
150         'language_alterable' => FALSE,
151         'untranslatable_fields_hide' => FALSE,
152       ],
153       [
154         'id' => 'comment.comment_node_page',
155         'target_entity_type_id' => 'comment',
156         'target_bundle' => 'comment_node_page',
157         'default_langcode' => 'xx-et-current',
158         'language_alterable' => FALSE,
159         'untranslatable_fields_hide' => FALSE,
160       ],
161       [
162         'id' => 'taxonomy_term.forums',
163         'target_entity_type_id' => 'taxonomy_term',
164         'target_bundle' => 'forums',
165         'default_langcode' => 'xx-et-default',
166         'language_alterable' => FALSE,
167         'untranslatable_fields_hide' => FALSE,
168       ],
169       [
170         'id' => 'taxonomy_term.tags',
171         'target_entity_type_id' => 'taxonomy_term',
172         'target_bundle' => 'tags',
173         'default_langcode' => 'xx-et-default',
174         'language_alterable' => FALSE,
175         'untranslatable_fields_hide' => FALSE,
176       ],
177       [
178         'id' => 'user.user',
179         'target_entity_type_id' => 'user',
180         'target_bundle' => 'user',
181         'default_langcode' => 'xx-et-default',
182         'language_alterable' => FALSE,
183         'untranslatable_fields_hide' => FALSE,
184       ],
185     ];
186
187     // Expected data when there's bundle settings variables.
188     $tests[2]['expected_data'] = [
189       [
190         'id' => 'node.forum',
191         'target_entity_type_id' => 'node',
192         'target_bundle' => 'forum',
193         'default_langcode' => 'xx-et-author',
194         'language_alterable' => TRUE,
195         'untranslatable_fields_hide' => FALSE,
196       ],
197       [
198         'id' => 'node.page',
199         'target_entity_type_id' => 'node',
200         'target_bundle' => 'page',
201         'default_langcode' => 'xx-et-default',
202         'language_alterable' => FALSE,
203         'untranslatable_fields_hide' => TRUE,
204       ],
205       [
206         'id' => 'comment.comment_forum',
207         'target_entity_type_id' => 'comment',
208         'target_bundle' => 'comment_forum',
209         'default_langcode' => 'xx-et-author',
210         'language_alterable' => FALSE,
211         'untranslatable_fields_hide' => FALSE,
212       ],
213       [
214         'id' => 'comment.comment_node_page',
215         'target_entity_type_id' => 'comment',
216         'target_bundle' => 'comment_node_page',
217         'default_langcode' => 'xx-et-author',
218         'language_alterable' => TRUE,
219         'untranslatable_fields_hide' => TRUE,
220       ],
221       [
222         'id' => 'taxonomy_term.forums',
223         'target_entity_type_id' => 'taxonomy_term',
224         'target_bundle' => 'forums',
225         'default_langcode' => 'xx-et-current',
226         'language_alterable' => TRUE,
227         'untranslatable_fields_hide' => TRUE,
228       ],
229       [
230         'id' => 'taxonomy_term.tags',
231         'target_entity_type_id' => 'taxonomy_term',
232         'target_bundle' => 'tags',
233         'default_langcode' => 'xx-et-current',
234         'language_alterable' => FALSE,
235         'untranslatable_fields_hide' => FALSE,
236       ],
237       [
238         'id' => 'user.user',
239         'target_entity_type_id' => 'user',
240         'target_bundle' => 'user',
241         'default_langcode' => 'xx-et-author',
242         'language_alterable' => FALSE,
243         'untranslatable_fields_hide' => TRUE,
244       ],
245     ];
246
247     // Expected data when taxonomy terms are translatable but the
248     // 'entity_translation_taxonomy' variable is not set.
249     $tests[3]['expected_data'] = [];
250
251     return $tests;
252   }
253
254 }