PageRenderTime 53ms CodeModel.GetById 23ms RepoModel.GetById 0ms app.codeStats 0ms

/web/core/modules/content_translation/tests/src/Kernel/Plugin/migrate/source/d7/EntityTranslationSettingsTest.php

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