3 namespace Drupal\Tests\content_translation\Kernel\Plugin\migrate\source\d7;
5 use Drupal\Tests\migrate\Kernel\MigrateSqlSourceTestBase;
8 * Tests entity translation settings source plugin.
10 * @covers \Drupal\content_translation\Plugin\migrate\source\d7\EntityTranslationSettings
12 * @group content_translation
14 class EntityTranslationSettingsTest extends MigrateSqlSourceTestBase {
19 public static $modules = [
20 'content_translation',
28 public function providerSource() {
31 // Source data when there's no entity type that uses entity translation.
32 $tests[0]['source_data']['variable'] = [
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;}',
39 // Source data when there's no bundle settings variables.
40 $tests[1]['source_data']['variable'] = [
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";}',
46 'name' => 'entity_translation_taxonomy',
47 'value' => 'a:3:{s:6:"forums";b:1;s:4:"tags";b:1;s:4:"test";b:0;}',
50 'name' => 'language_content_type_article',
51 'value' => 's:1:"2";',
54 'name' => 'language_content_type_forum',
55 'value' => 's:1:"4";',
58 'name' => 'language_content_type_page',
59 'value' => 's:1:"4";',
63 // Source data when there's bundle settings variables.
64 $tests[2]['source_data']['variable'] = [
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";}',
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;}',
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;}',
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;}',
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;}',
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;}',
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;}',
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;}',
98 'name' => 'entity_translation_taxonomy',
99 'value' => 'a:3:{s:6:"forums";b:1;s:4:"tags";b:1;s:4:"test";b:0;}',
102 'name' => 'language_content_type_article',
103 'value' => 's:1:"2";',
106 'name' => 'language_content_type_forum',
107 'value' => 's:1:"4";',
110 'name' => 'language_content_type_page',
111 'value' => 's:1:"4";',
115 // Source data when taxonomy terms are translatable but the
116 // 'entity_translation_taxonomy' variable is not set.
117 $tests[3]['source_data']['variable'] = [
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;}',
124 // Expected data when there's no entity type that uses entity translation.
125 $tests[0]['expected_data'] = [];
127 // Expected data when there's no bundle settings variables.
128 $tests[1]['expected_data'] = [
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,
139 'target_entity_type_id' => 'node',
140 'target_bundle' => 'page',
141 'default_langcode' => 'und',
142 'language_alterable' => TRUE,
143 'untranslatable_fields_hide' => FALSE,
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,
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,
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,
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,
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,
187 // Expected data when there's bundle settings variables.
188 $tests[2]['expected_data'] = [
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,
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,
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,
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,
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,
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,
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,
247 // Expected data when taxonomy terms are translatable but the
248 // 'entity_translation_taxonomy' variable is not set.
249 $tests[3]['expected_data'] = [];