Updated Drupal to 8.6. This goes with the following updates because it's possible...
[yaffs-website] / web / core / modules / content_translation / tests / src / Kernel / Plugin / migrate / source / d7 / EntityTranslationSettingsTest.php
diff --git a/web/core/modules/content_translation/tests/src/Kernel/Plugin/migrate/source/d7/EntityTranslationSettingsTest.php b/web/core/modules/content_translation/tests/src/Kernel/Plugin/migrate/source/d7/EntityTranslationSettingsTest.php
new file mode 100644 (file)
index 0000000..db0d332
--- /dev/null
@@ -0,0 +1,254 @@
+<?php
+
+namespace Drupal\Tests\content_translation\Kernel\Plugin\migrate\source\d7;
+
+use Drupal\Tests\migrate\Kernel\MigrateSqlSourceTestBase;
+
+/**
+ * Tests entity translation settings source plugin.
+ *
+ * @covers \Drupal\content_translation\Plugin\migrate\source\d7\EntityTranslationSettings
+ *
+ * @group content_translation
+ */
+class EntityTranslationSettingsTest extends MigrateSqlSourceTestBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public static $modules = [
+    'content_translation',
+    'language',
+    'migrate_drupal',
+  ];
+
+  /**
+   * {@inheritdoc}
+   */
+  public function providerSource() {
+    $tests = [];
+
+    // Source data when there's no entity type that uses entity translation.
+    $tests[0]['source_data']['variable'] = [
+      [
+        'name' => 'entity_translation_entity_types',
+        'value' => 'a:4:{s:7:"comment";i:0;s:4:"node";i:0;s:13:"taxonomy_term";i:0;s:4:"user";i:0;}',
+      ],
+    ];
+
+    // Source data when there's no bundle settings variables.
+    $tests[1]['source_data']['variable'] = [
+      [
+        'name' => 'entity_translation_entity_types',
+        '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";}',
+      ],
+      [
+        'name' => 'entity_translation_taxonomy',
+        'value' => 'a:3:{s:6:"forums";b:1;s:4:"tags";b:1;s:4:"test";b:0;}',
+      ],
+      [
+        'name' => 'language_content_type_article',
+        'value' => 's:1:"2";',
+      ],
+      [
+        'name' => 'language_content_type_forum',
+        'value' => 's:1:"4";',
+      ],
+      [
+        'name' => 'language_content_type_page',
+        'value' => 's:1:"4";',
+      ],
+    ];
+
+    // Source data when there's bundle settings variables.
+    $tests[2]['source_data']['variable'] = [
+      [
+        'name' => 'entity_translation_entity_types',
+        '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";}',
+      ],
+      [
+        'name' => 'entity_translation_settings_comment__comment_node_forum',
+        '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;}',
+      ],
+      [
+        'name' => 'entity_translation_settings_comment__comment_node_page',
+        '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;}',
+      ],
+      [
+        'name' => 'entity_translation_settings_node__forum',
+        '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;}',
+      ],
+      [
+        'name' => 'entity_translation_settings_node__page',
+        '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;}',
+      ],
+      [
+        'name' => 'entity_translation_settings_taxonomy_term__forums',
+        '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;}',
+      ],
+      [
+        'name' => 'entity_translation_settings_taxonomy_term__tags',
+        '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;}',
+      ],
+      [
+        'name' => 'entity_translation_settings_user__user',
+        '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;}',
+      ],
+      [
+        'name' => 'entity_translation_taxonomy',
+        'value' => 'a:3:{s:6:"forums";b:1;s:4:"tags";b:1;s:4:"test";b:0;}',
+      ],
+      [
+        'name' => 'language_content_type_article',
+        'value' => 's:1:"2";',
+      ],
+      [
+        'name' => 'language_content_type_forum',
+        'value' => 's:1:"4";',
+      ],
+      [
+        'name' => 'language_content_type_page',
+        'value' => 's:1:"4";',
+      ],
+    ];
+
+    // Source data when taxonomy terms are translatable but the
+    // 'entity_translation_taxonomy' variable is not set.
+    $tests[3]['source_data']['variable'] = [
+      [
+        'name' => 'entity_translation_entity_types',
+        'value' => 'a:4:{s:7:"comment";i:0;s:4:"node";i:0;s:13:"taxonomy_term";i:1;s:4:"user";i:0;}',
+      ],
+    ];
+
+    // Expected data when there's no entity type that uses entity translation.
+    $tests[0]['expected_data'] = [];
+
+    // Expected data when there's no bundle settings variables.
+    $tests[1]['expected_data'] = [
+      [
+        'id' => 'node.forum',
+        'target_entity_type_id' => 'node',
+        'target_bundle' => 'forum',
+        'default_langcode' => 'und',
+        'language_alterable' => TRUE,
+        'untranslatable_fields_hide' => FALSE,
+      ],
+      [
+        'id' => 'node.page',
+        'target_entity_type_id' => 'node',
+        'target_bundle' => 'page',
+        'default_langcode' => 'und',
+        'language_alterable' => TRUE,
+        'untranslatable_fields_hide' => FALSE,
+      ],
+      [
+        'id' => 'comment.comment_forum',
+        'target_entity_type_id' => 'comment',
+        'target_bundle' => 'comment_forum',
+        'default_langcode' => 'xx-et-current',
+        'language_alterable' => FALSE,
+        'untranslatable_fields_hide' => FALSE,
+      ],
+      [
+        'id' => 'comment.comment_node_page',
+        'target_entity_type_id' => 'comment',
+        'target_bundle' => 'comment_node_page',
+        'default_langcode' => 'xx-et-current',
+        'language_alterable' => FALSE,
+        'untranslatable_fields_hide' => FALSE,
+      ],
+      [
+        'id' => 'taxonomy_term.forums',
+        'target_entity_type_id' => 'taxonomy_term',
+        'target_bundle' => 'forums',
+        'default_langcode' => 'xx-et-default',
+        'language_alterable' => FALSE,
+        'untranslatable_fields_hide' => FALSE,
+      ],
+      [
+        'id' => 'taxonomy_term.tags',
+        'target_entity_type_id' => 'taxonomy_term',
+        'target_bundle' => 'tags',
+        'default_langcode' => 'xx-et-default',
+        'language_alterable' => FALSE,
+        'untranslatable_fields_hide' => FALSE,
+      ],
+      [
+        'id' => 'user.user',
+        'target_entity_type_id' => 'user',
+        'target_bundle' => 'user',
+        'default_langcode' => 'xx-et-default',
+        'language_alterable' => FALSE,
+        'untranslatable_fields_hide' => FALSE,
+      ],
+    ];
+
+    // Expected data when there's bundle settings variables.
+    $tests[2]['expected_data'] = [
+      [
+        'id' => 'node.forum',
+        'target_entity_type_id' => 'node',
+        'target_bundle' => 'forum',
+        'default_langcode' => 'xx-et-author',
+        'language_alterable' => TRUE,
+        'untranslatable_fields_hide' => FALSE,
+      ],
+      [
+        'id' => 'node.page',
+        'target_entity_type_id' => 'node',
+        'target_bundle' => 'page',
+        'default_langcode' => 'xx-et-default',
+        'language_alterable' => FALSE,
+        'untranslatable_fields_hide' => TRUE,
+      ],
+      [
+        'id' => 'comment.comment_forum',
+        'target_entity_type_id' => 'comment',
+        'target_bundle' => 'comment_forum',
+        'default_langcode' => 'xx-et-author',
+        'language_alterable' => FALSE,
+        'untranslatable_fields_hide' => FALSE,
+      ],
+      [
+        'id' => 'comment.comment_node_page',
+        'target_entity_type_id' => 'comment',
+        'target_bundle' => 'comment_node_page',
+        'default_langcode' => 'xx-et-author',
+        'language_alterable' => TRUE,
+        'untranslatable_fields_hide' => TRUE,
+      ],
+      [
+        'id' => 'taxonomy_term.forums',
+        'target_entity_type_id' => 'taxonomy_term',
+        'target_bundle' => 'forums',
+        'default_langcode' => 'xx-et-current',
+        'language_alterable' => TRUE,
+        'untranslatable_fields_hide' => TRUE,
+      ],
+      [
+        'id' => 'taxonomy_term.tags',
+        'target_entity_type_id' => 'taxonomy_term',
+        'target_bundle' => 'tags',
+        'default_langcode' => 'xx-et-current',
+        'language_alterable' => FALSE,
+        'untranslatable_fields_hide' => FALSE,
+      ],
+      [
+        'id' => 'user.user',
+        'target_entity_type_id' => 'user',
+        'target_bundle' => 'user',
+        'default_langcode' => 'xx-et-author',
+        'language_alterable' => FALSE,
+        'untranslatable_fields_hide' => TRUE,
+      ],
+    ];
+
+    // Expected data when taxonomy terms are translatable but the
+    // 'entity_translation_taxonomy' variable is not set.
+    $tests[3]['expected_data'] = [];
+
+    return $tests;
+  }
+
+}