From 20f44c056c72664ff157ecda138f03e8cc8cadec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=CC=81bor=20Hojtsy?= Date: Thu, 26 Jul 2018 18:49:16 +0200 Subject: [PATCH] =?UTF-8?q?Issue=20#2953360=20by=20quietone,=20heddn,=20yo?= =?UTF-8?q?geshmpawar,=20phenaproxima,=20G=C3=A1bor=20Hojtsy,=20maxocub,?= =?UTF-8?q?=20catch,=20alexpott,=20masipila:=20Experimental=20migrate=5Fdr?= =?UTF-8?q?upal=5Fmultilingual=20module?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/composer.json | 1 + .../d6/MigrateBlockContentTranslationTest.php | 2 + ...grateCustomBlockContentTranslationTest.php | 2 + .../d6_system_maintenance_translation.yml | 1 + .../migrations/d6_system_site_translation.yml | 1 + .../d6_taxonomy_vocabulary_translation.yml | 2 + .../migrations/d6_user_mail_translation.yml | 1 + ...ser_profile_field_instance_translation.yml | 1 + .../d6_user_settings_translation.yml | 1 + ...igrateSystemMaintenanceTranslationTest.php | 7 +- .../d6/MigrateSystemSiteTranslationTest.php | 7 +- .../d6/MigrateUserConfigsTranslationTest.php | 8 +- ...serProfileFieldInstanceTranslationTest.php | 9 +- .../migrations/d6_block_translation.yml | 1 + .../d6_custom_block_translation.yml | 1 + .../d6_entity_reference_translation.yml | 1 + .../migrations/d6_menu_links_translation.yml | 1 + .../migrations/d6_node_translation.yml | 1 + .../d6_taxonomy_term_translation.yml | 2 + .../d7_entity_reference_translation.yml | 1 + .../d7_entity_translation_settings.yml | 1 + .../migrations/d7_node_translation.yml | 1 + .../node_translation_menu_links.yml | 1 + .../statistics_node_translation_counter.yml | 1 + .../d6/MigrateTaxonomyTermTranslationTest.php | 2 + .../MigrateEntityTranslationSettingsTest.php | 2 + .../Kernel/Migrate/d6/MigrateMenuLinkTest.php | 2 + .../d6/MigrateMenuLinkTranslationTest.php | 2 + .../Kernel/Migrate/d7/MigrateMenuLinkTest.php | 2 + .../migrate_drupal/migrate_drupal.install | 7 + .../src/MigrationConfigurationTrait.php | 6 + .../src/Kernel/d6/FollowUpMigrationsTest.php | 2 + .../src/Kernel/d7/FollowUpMigrationsTest.php | 2 + .../migrate_drupal_multilingual.info.yml | 7 + .../migrate_drupal_multilingual.module | 21 ++ .../d6/MigrateUpgrade6I18nReviewPageTest.php | 2 +- .../d6/MigrateUpgrade6NoMultilingualTest.php | 211 +++++++++++++++++ .../d6/MigrateUpgrade6ReviewPageTest.php | 11 +- .../src/Functional/d6/MigrateUpgrade6Test.php | 14 +- .../d7/MigrateUpgrade7NoMultilingualTest.php | 213 ++++++++++++++++++ .../d7/MigrateUpgrade7ReviewPageTest.php | 4 +- .../src/Functional/d7/MigrateUpgrade7Test.php | 3 +- .../src/Kernel/Migrate/d6/MigrateNodeTest.php | 8 +- .../d6/NodeTranslationRedirectTest.php | 2 + .../src/Kernel/Migrate/d7/MigrateNodeTest.php | 2 + .../d7/NodeTranslationRedirectTest.php | 2 + .../Kernel/Migrate/d6/MigrateUrlAliasTest.php | 9 +- .../Kernel/Migrate/d7/MigrateUrlAliasTest.php | 2 + .../Migrate/d6/MigrateNodeCounterTest.php | 2 + .../Migrate/d7/MigrateNodeCounterTest.php | 2 + ...grateTaxonomyVocabularyTranslationTest.php | 8 +- 51 files changed, 584 insertions(+), 21 deletions(-) rename core/modules/{taxonomy => config_translation}/migrations/d6_taxonomy_vocabulary_translation.yml (90%) rename core/modules/{migrate_drupal => content_translation}/migrations/d6_entity_reference_translation.yml (97%) rename core/modules/{node => content_translation}/migrations/d6_node_translation.yml (98%) rename core/modules/{migrate_drupal => content_translation}/migrations/d7_entity_reference_translation.yml (97%) rename core/modules/{node => content_translation}/migrations/d7_node_translation.yml (98%) rename core/modules/{menu_link_content => content_translation}/migrations/node_translation_menu_links.yml (99%) rename core/modules/{statistics => content_translation}/migrations/statistics_node_translation_counter.yml (97%) create mode 100644 core/modules/migrate_drupal_multilingual/migrate_drupal_multilingual.info.yml create mode 100644 core/modules/migrate_drupal_multilingual/migrate_drupal_multilingual.module create mode 100644 core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6NoMultilingualTest.php create mode 100644 core/modules/migrate_drupal_ui/tests/src/Functional/d7/MigrateUpgrade7NoMultilingualTest.php diff --git a/core/composer.json b/core/composer.json index 60cc53c2df1c..b88441f684b8 100644 --- a/core/composer.json +++ b/core/composer.json @@ -138,6 +138,7 @@ "drupal/menu_ui": "self.version", "drupal/migrate": "self.version", "drupal/migrate_drupal": "self.version", + "drupal/migrate_drupal_multilingual": "self.version", "drupal/migrate_drupal_ui": "self.version", "drupal/node": "self.version", "drupal/options": "self.version", diff --git a/core/modules/block/tests/src/Kernel/Migrate/d6/MigrateBlockContentTranslationTest.php b/core/modules/block/tests/src/Kernel/Migrate/d6/MigrateBlockContentTranslationTest.php index e9f1e87ef497..4078782143ba 100644 --- a/core/modules/block/tests/src/Kernel/Migrate/d6/MigrateBlockContentTranslationTest.php +++ b/core/modules/block/tests/src/Kernel/Migrate/d6/MigrateBlockContentTranslationTest.php @@ -26,6 +26,8 @@ class MigrateBlockContentTranslationTest extends MigrateDrupal6TestBase { 'language', 'statistics', 'taxonomy', + // Required for translation migrations. + 'migrate_drupal_multilingual', ]; /** diff --git a/core/modules/block_content/tests/src/Kernel/Migrate/d6/MigrateCustomBlockContentTranslationTest.php b/core/modules/block_content/tests/src/Kernel/Migrate/d6/MigrateCustomBlockContentTranslationTest.php index 5ff40526a618..2847e35d5e17 100644 --- a/core/modules/block_content/tests/src/Kernel/Migrate/d6/MigrateCustomBlockContentTranslationTest.php +++ b/core/modules/block_content/tests/src/Kernel/Migrate/d6/MigrateCustomBlockContentTranslationTest.php @@ -19,6 +19,8 @@ class MigrateCustomBlockContentTranslationTest extends MigrateDrupal6TestBase { 'block_content', 'content_translation', 'language', + // Required for translation migrations. + 'migrate_drupal_multilingual', ]; /** diff --git a/core/modules/config_translation/migrations/d6_system_maintenance_translation.yml b/core/modules/config_translation/migrations/d6_system_maintenance_translation.yml index b370914f796d..5a3593c27e8d 100644 --- a/core/modules/config_translation/migrations/d6_system_maintenance_translation.yml +++ b/core/modules/config_translation/migrations/d6_system_maintenance_translation.yml @@ -3,6 +3,7 @@ label: Maintenance page configuration migration_tags: - Drupal 6 - Configuration + - Multilingual source: plugin: variable_translation variables: diff --git a/core/modules/config_translation/migrations/d6_system_site_translation.yml b/core/modules/config_translation/migrations/d6_system_site_translation.yml index 066038338aba..a246aa97d3bd 100644 --- a/core/modules/config_translation/migrations/d6_system_site_translation.yml +++ b/core/modules/config_translation/migrations/d6_system_site_translation.yml @@ -3,6 +3,7 @@ label: Site configuration migration_tags: - Drupal 6 - Configuration + - Multilingual source: plugin: variable_translation constants: diff --git a/core/modules/taxonomy/migrations/d6_taxonomy_vocabulary_translation.yml b/core/modules/config_translation/migrations/d6_taxonomy_vocabulary_translation.yml similarity index 90% rename from core/modules/taxonomy/migrations/d6_taxonomy_vocabulary_translation.yml rename to core/modules/config_translation/migrations/d6_taxonomy_vocabulary_translation.yml index 2ac7760ebaae..1fcba3e34d11 100644 --- a/core/modules/taxonomy/migrations/d6_taxonomy_vocabulary_translation.yml +++ b/core/modules/config_translation/migrations/d6_taxonomy_vocabulary_translation.yml @@ -3,6 +3,7 @@ label: Taxonomy vocabularies migration_tags: - Drupal 6 - Configuration + - Multilingual source: plugin: d6_taxonomy_vocabulary_translation process: @@ -23,6 +24,7 @@ process: translation: translation destination: plugin: entity:taxonomy_vocabulary + destination_module: config_translation migration_dependencies: required: - d6_taxonomy_vocabulary diff --git a/core/modules/config_translation/migrations/d6_user_mail_translation.yml b/core/modules/config_translation/migrations/d6_user_mail_translation.yml index 801f5678d1a2..2fb3429e6f63 100644 --- a/core/modules/config_translation/migrations/d6_user_mail_translation.yml +++ b/core/modules/config_translation/migrations/d6_user_mail_translation.yml @@ -3,6 +3,7 @@ label: User mail configuration migration_tags: - Drupal 6 - Configuration + - Multilingual source: plugin: variable_translation variables: diff --git a/core/modules/config_translation/migrations/d6_user_profile_field_instance_translation.yml b/core/modules/config_translation/migrations/d6_user_profile_field_instance_translation.yml index 0f728f665829..b8a88f43f6da 100644 --- a/core/modules/config_translation/migrations/d6_user_profile_field_instance_translation.yml +++ b/core/modules/config_translation/migrations/d6_user_profile_field_instance_translation.yml @@ -3,6 +3,7 @@ label: User profile field instance configuration migration_tags: - Drupal 6 - Configuration + - Multilingual source: plugin: d6_profile_field_translation constants: diff --git a/core/modules/config_translation/migrations/d6_user_settings_translation.yml b/core/modules/config_translation/migrations/d6_user_settings_translation.yml index 05ecb15939d5..f947ff92766a 100644 --- a/core/modules/config_translation/migrations/d6_user_settings_translation.yml +++ b/core/modules/config_translation/migrations/d6_user_settings_translation.yml @@ -3,6 +3,7 @@ label: User configuration migration_tags: - Drupal 6 - Configuration + - Multilingual source: plugin: variable_translation variables: diff --git a/core/modules/config_translation/tests/src/Kernel/Migrate/d6/MigrateSystemMaintenanceTranslationTest.php b/core/modules/config_translation/tests/src/Kernel/Migrate/d6/MigrateSystemMaintenanceTranslationTest.php index 37cd4a9ec284..26d68eed99f5 100644 --- a/core/modules/config_translation/tests/src/Kernel/Migrate/d6/MigrateSystemMaintenanceTranslationTest.php +++ b/core/modules/config_translation/tests/src/Kernel/Migrate/d6/MigrateSystemMaintenanceTranslationTest.php @@ -12,7 +12,12 @@ use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase; */ class MigrateSystemMaintenanceTranslationTest extends MigrateDrupal6TestBase { - public static $modules = ['language', 'config_translation']; + public static $modules = [ + 'language', + 'config_translation', + // Required for translation migrations. + 'migrate_drupal_multilingual', + ]; /** * {@inheritdoc} diff --git a/core/modules/config_translation/tests/src/Kernel/Migrate/d6/MigrateSystemSiteTranslationTest.php b/core/modules/config_translation/tests/src/Kernel/Migrate/d6/MigrateSystemSiteTranslationTest.php index 326e1bb7e479..e42094326452 100644 --- a/core/modules/config_translation/tests/src/Kernel/Migrate/d6/MigrateSystemSiteTranslationTest.php +++ b/core/modules/config_translation/tests/src/Kernel/Migrate/d6/MigrateSystemSiteTranslationTest.php @@ -12,7 +12,12 @@ use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase; */ class MigrateSystemSiteTranslationTest extends MigrateDrupal6TestBase { - public static $modules = ['language', 'config_translation']; + public static $modules = [ + 'language', + 'config_translation', + // Required for translation migrations. + 'migrate_drupal_multilingual', + ]; /** * {@inheritdoc} diff --git a/core/modules/config_translation/tests/src/Kernel/Migrate/d6/MigrateUserConfigsTranslationTest.php b/core/modules/config_translation/tests/src/Kernel/Migrate/d6/MigrateUserConfigsTranslationTest.php index bc622e1b6a7d..5ff8402deb51 100644 --- a/core/modules/config_translation/tests/src/Kernel/Migrate/d6/MigrateUserConfigsTranslationTest.php +++ b/core/modules/config_translation/tests/src/Kernel/Migrate/d6/MigrateUserConfigsTranslationTest.php @@ -15,7 +15,13 @@ class MigrateUserConfigsTranslationTest extends MigrateDrupal6TestBase { use SchemaCheckTestTrait; - public static $modules = ['language', 'locale', 'config_translation']; + public static $modules = [ + 'language', + 'locale', + 'config_translation', + // Required for translation migrations. + 'migrate_drupal_multilingual', + ]; /** * {@inheritdoc} diff --git a/core/modules/config_translation/tests/src/Kernel/Migrate/d6/MigrateUserProfileFieldInstanceTranslationTest.php b/core/modules/config_translation/tests/src/Kernel/Migrate/d6/MigrateUserProfileFieldInstanceTranslationTest.php index c941e41282a6..033f22b9e8e4 100644 --- a/core/modules/config_translation/tests/src/Kernel/Migrate/d6/MigrateUserProfileFieldInstanceTranslationTest.php +++ b/core/modules/config_translation/tests/src/Kernel/Migrate/d6/MigrateUserProfileFieldInstanceTranslationTest.php @@ -15,7 +15,14 @@ class MigrateUserProfileFieldInstanceTranslationTest extends MigrateDrupal6TestB /** * {@inheritdoc} */ - public static $modules = ['config_translation', 'locale', 'language', 'field']; + public static $modules = [ + 'config_translation', + 'locale', + 'language', + 'field', + // Required for translation migrations. + 'migrate_drupal_multilingual', + ]; /** * Tests migration of translated user profile fields. diff --git a/core/modules/content_translation/migrations/d6_block_translation.yml b/core/modules/content_translation/migrations/d6_block_translation.yml index 3f8810cbfa18..a27fcfd9e515 100644 --- a/core/modules/content_translation/migrations/d6_block_translation.yml +++ b/core/modules/content_translation/migrations/d6_block_translation.yml @@ -3,6 +3,7 @@ label: Block translations migration_tags: - Drupal 6 - Configuration + - Multilingual source: plugin: d6_block_translation constants: diff --git a/core/modules/content_translation/migrations/d6_custom_block_translation.yml b/core/modules/content_translation/migrations/d6_custom_block_translation.yml index 7a6d3685b834..a240667b9435 100644 --- a/core/modules/content_translation/migrations/d6_custom_block_translation.yml +++ b/core/modules/content_translation/migrations/d6_custom_block_translation.yml @@ -3,6 +3,7 @@ label: Custom block translations migration_tags: - Drupal 6 - Content + - Multilingual source: plugin: d6_box_translation process: diff --git a/core/modules/migrate_drupal/migrations/d6_entity_reference_translation.yml b/core/modules/content_translation/migrations/d6_entity_reference_translation.yml similarity index 97% rename from core/modules/migrate_drupal/migrations/d6_entity_reference_translation.yml rename to core/modules/content_translation/migrations/d6_entity_reference_translation.yml index 31888207392f..74a586b82349 100644 --- a/core/modules/migrate_drupal/migrations/d6_entity_reference_translation.yml +++ b/core/modules/content_translation/migrations/d6_entity_reference_translation.yml @@ -2,6 +2,7 @@ id: d6_entity_reference_translation label: Entity reference translations migration_tags: - Drupal 6 + - Multilingual - Follow-up migration deriver: Drupal\migrate_drupal\Plugin\migrate\EntityReferenceTranslationDeriver # Supported target types for entity reference translation migrations. The array diff --git a/core/modules/content_translation/migrations/d6_menu_links_translation.yml b/core/modules/content_translation/migrations/d6_menu_links_translation.yml index 71e55992e8af..34e4290235e7 100644 --- a/core/modules/content_translation/migrations/d6_menu_links_translation.yml +++ b/core/modules/content_translation/migrations/d6_menu_links_translation.yml @@ -3,6 +3,7 @@ label: Menu links migration_tags: - Drupal 6 - Content + - Multilingual source: plugin: d6_menu_link_translation process: diff --git a/core/modules/node/migrations/d6_node_translation.yml b/core/modules/content_translation/migrations/d6_node_translation.yml similarity index 98% rename from core/modules/node/migrations/d6_node_translation.yml rename to core/modules/content_translation/migrations/d6_node_translation.yml index b1345ed065f0..38e6870162e4 100644 --- a/core/modules/node/migrations/d6_node_translation.yml +++ b/core/modules/content_translation/migrations/d6_node_translation.yml @@ -4,6 +4,7 @@ migration_tags: - Drupal 6 - translation - Content + - Multilingual class: Drupal\node\Plugin\migrate\D6NodeTranslation deriver: Drupal\node\Plugin\migrate\D6NodeDeriver source: diff --git a/core/modules/content_translation/migrations/d6_taxonomy_term_translation.yml b/core/modules/content_translation/migrations/d6_taxonomy_term_translation.yml index 0b42dcfdb988..96ccd8d569d9 100644 --- a/core/modules/content_translation/migrations/d6_taxonomy_term_translation.yml +++ b/core/modules/content_translation/migrations/d6_taxonomy_term_translation.yml @@ -3,6 +3,7 @@ label: Taxonomy terms migration_tags: - Drupal 6 - Content + - Multilingual source: plugin: d6_taxonomy_term translations: true @@ -34,6 +35,7 @@ process: changed: timestamp destination: plugin: entity:taxonomy_term + destination_module: content_translation migration_dependencies: required: - d6_taxonomy_vocabulary diff --git a/core/modules/migrate_drupal/migrations/d7_entity_reference_translation.yml b/core/modules/content_translation/migrations/d7_entity_reference_translation.yml similarity index 97% rename from core/modules/migrate_drupal/migrations/d7_entity_reference_translation.yml rename to core/modules/content_translation/migrations/d7_entity_reference_translation.yml index 7e59a9a0c75b..af5bef9490ff 100644 --- a/core/modules/migrate_drupal/migrations/d7_entity_reference_translation.yml +++ b/core/modules/content_translation/migrations/d7_entity_reference_translation.yml @@ -2,6 +2,7 @@ id: d7_entity_reference_translation label: Entity reference translations migration_tags: - Drupal 7 + - Multilingual - Follow-up migration deriver: Drupal\migrate_drupal\Plugin\migrate\EntityReferenceTranslationDeriver # Supported target types for entity reference translation migrations. The array diff --git a/core/modules/content_translation/migrations/d7_entity_translation_settings.yml b/core/modules/content_translation/migrations/d7_entity_translation_settings.yml index 1a8e526c3ca3..bd82446339d2 100644 --- a/core/modules/content_translation/migrations/d7_entity_translation_settings.yml +++ b/core/modules/content_translation/migrations/d7_entity_translation_settings.yml @@ -3,6 +3,7 @@ label: Drupal 7 Entity Translation settings migration_tags: - Drupal 7 - Configuration + - Multilingual source: plugin: d7_entity_translation_settings process: diff --git a/core/modules/node/migrations/d7_node_translation.yml b/core/modules/content_translation/migrations/d7_node_translation.yml similarity index 98% rename from core/modules/node/migrations/d7_node_translation.yml rename to core/modules/content_translation/migrations/d7_node_translation.yml index b5d488e26872..90a101fec13d 100644 --- a/core/modules/node/migrations/d7_node_translation.yml +++ b/core/modules/content_translation/migrations/d7_node_translation.yml @@ -4,6 +4,7 @@ migration_tags: - Drupal 7 - translation - Content + - Multilingual class: Drupal\node\Plugin\migrate\D7NodeTranslation deriver: Drupal\node\Plugin\migrate\D7NodeDeriver source: diff --git a/core/modules/menu_link_content/migrations/node_translation_menu_links.yml b/core/modules/content_translation/migrations/node_translation_menu_links.yml similarity index 99% rename from core/modules/menu_link_content/migrations/node_translation_menu_links.yml rename to core/modules/content_translation/migrations/node_translation_menu_links.yml index 4028c7a3f62e..837a99b47a8a 100644 --- a/core/modules/menu_link_content/migrations/node_translation_menu_links.yml +++ b/core/modules/content_translation/migrations/node_translation_menu_links.yml @@ -5,6 +5,7 @@ migration_tags: - Drupal 6 - Drupal 7 - Content + - Multilingual source: plugin: menu_link constants: diff --git a/core/modules/statistics/migrations/statistics_node_translation_counter.yml b/core/modules/content_translation/migrations/statistics_node_translation_counter.yml similarity index 97% rename from core/modules/statistics/migrations/statistics_node_translation_counter.yml rename to core/modules/content_translation/migrations/statistics_node_translation_counter.yml index bf8cde409201..0c11cd211445 100644 --- a/core/modules/statistics/migrations/statistics_node_translation_counter.yml +++ b/core/modules/content_translation/migrations/statistics_node_translation_counter.yml @@ -4,6 +4,7 @@ migration_tags: - Drupal 6 - Drupal 7 - Content + - Multilingual source: plugin: node_counter process: diff --git a/core/modules/content_translation/tests/src/Kernel/Migrate/d6/MigrateTaxonomyTermTranslationTest.php b/core/modules/content_translation/tests/src/Kernel/Migrate/d6/MigrateTaxonomyTermTranslationTest.php index 1674cfa5b70b..3e32406d28db 100644 --- a/core/modules/content_translation/tests/src/Kernel/Migrate/d6/MigrateTaxonomyTermTranslationTest.php +++ b/core/modules/content_translation/tests/src/Kernel/Migrate/d6/MigrateTaxonomyTermTranslationTest.php @@ -20,6 +20,8 @@ class MigrateTaxonomyTermTranslationTest extends MigrateDrupal6TestBase { 'content_translation', 'language', 'menu_ui', + // Required for translation migrations. + 'migrate_drupal_multilingual', 'node', 'taxonomy', ]; diff --git a/core/modules/content_translation/tests/src/Kernel/Migrate/d7/MigrateEntityTranslationSettingsTest.php b/core/modules/content_translation/tests/src/Kernel/Migrate/d7/MigrateEntityTranslationSettingsTest.php index 5fb6ddde60ad..136e5331ecac 100644 --- a/core/modules/content_translation/tests/src/Kernel/Migrate/d7/MigrateEntityTranslationSettingsTest.php +++ b/core/modules/content_translation/tests/src/Kernel/Migrate/d7/MigrateEntityTranslationSettingsTest.php @@ -20,6 +20,8 @@ class MigrateEntityTranslationSettingsTest extends MigrateDrupal7TestBase { 'content_translation', 'language', 'menu_ui', + // Required for translation migrations. + 'migrate_drupal_multilingual', 'node', 'taxonomy', 'text', diff --git a/core/modules/menu_link_content/tests/src/Kernel/Migrate/d6/MigrateMenuLinkTest.php b/core/modules/menu_link_content/tests/src/Kernel/Migrate/d6/MigrateMenuLinkTest.php index 36e4f30dc0ae..8fab083230ea 100644 --- a/core/modules/menu_link_content/tests/src/Kernel/Migrate/d6/MigrateMenuLinkTest.php +++ b/core/modules/menu_link_content/tests/src/Kernel/Migrate/d6/MigrateMenuLinkTest.php @@ -20,6 +20,8 @@ class MigrateMenuLinkTest extends MigrateNodeTestBase { 'content_translation', 'language', 'menu_link_content', + // Required for translation migrations. + 'migrate_drupal_multilingual', 'menu_ui', ]; diff --git a/core/modules/menu_link_content/tests/src/Kernel/Migrate/d6/MigrateMenuLinkTranslationTest.php b/core/modules/menu_link_content/tests/src/Kernel/Migrate/d6/MigrateMenuLinkTranslationTest.php index 4863dde76fd8..d9b47b0592e3 100644 --- a/core/modules/menu_link_content/tests/src/Kernel/Migrate/d6/MigrateMenuLinkTranslationTest.php +++ b/core/modules/menu_link_content/tests/src/Kernel/Migrate/d6/MigrateMenuLinkTranslationTest.php @@ -20,6 +20,8 @@ class MigrateMenuLinkTranslationTest extends MigrateDrupal6TestBase { 'menu_link_content', 'language', 'content_translation', + // Required for translation migrations. + 'migrate_drupal_multilingual', ]; /** diff --git a/core/modules/menu_link_content/tests/src/Kernel/Migrate/d7/MigrateMenuLinkTest.php b/core/modules/menu_link_content/tests/src/Kernel/Migrate/d7/MigrateMenuLinkTest.php index ab21f2c611a9..e9913f6fa65d 100644 --- a/core/modules/menu_link_content/tests/src/Kernel/Migrate/d7/MigrateMenuLinkTest.php +++ b/core/modules/menu_link_content/tests/src/Kernel/Migrate/d7/MigrateMenuLinkTest.php @@ -24,6 +24,8 @@ class MigrateMenuLinkTest extends MigrateDrupal7TestBase { 'link', 'menu_ui', 'menu_link_content', + // Required for translation migrations. + 'migrate_drupal_multilingual', 'node', 'text', ]; diff --git a/core/modules/migrate_drupal/migrate_drupal.install b/core/modules/migrate_drupal/migrate_drupal.install index ed60201f7e80..820bcdc87062 100644 --- a/core/modules/migrate_drupal/migrate_drupal.install +++ b/core/modules/migrate_drupal/migrate_drupal.install @@ -24,3 +24,10 @@ function migrate_drupal_update_8502() { ->set('follow_up_migration_tags', ['Follow-up migration']) ->save(); } + +/** + * Install migrate_drupal_multilingual since migrate_drupal is installed. + */ +function migrate_drupal_update_8601() { + \Drupal::service('module_installer')->install(['migrate_drupal_multilingual']); +} diff --git a/core/modules/migrate_drupal/src/MigrationConfigurationTrait.php b/core/modules/migrate_drupal/src/MigrationConfigurationTrait.php index 0aca5be2448c..0349d87a7731 100644 --- a/core/modules/migrate_drupal/src/MigrationConfigurationTrait.php +++ b/core/modules/migrate_drupal/src/MigrationConfigurationTrait.php @@ -110,6 +110,12 @@ trait MigrationConfigurationTrait { if (!empty(array_intersect($migration->getMigrationTags(), $this->getFollowUpMigrationTags()))) { continue; } + // Multilingual migrations require migrate_drupal_multilingual. + $tags = $migration->getMigrationTags() ?: []; + if (in_array('Multilingual', $tags, TRUE) && (!\Drupal::service('module_handler')->moduleExists('migrate_drupal_multilingual'))) { + throw new RequirementsException(sprintf("Install migrate_drupal_multilingual to run migration '%s'.", $migration->getPluginId())); + } + try { // @todo https://drupal.org/node/2681867 We should be able to validate // the entire migration at this point. diff --git a/core/modules/migrate_drupal/tests/src/Kernel/d6/FollowUpMigrationsTest.php b/core/modules/migrate_drupal/tests/src/Kernel/d6/FollowUpMigrationsTest.php index e02254a5e50d..5225ce5d8314 100644 --- a/core/modules/migrate_drupal/tests/src/Kernel/d6/FollowUpMigrationsTest.php +++ b/core/modules/migrate_drupal/tests/src/Kernel/d6/FollowUpMigrationsTest.php @@ -19,6 +19,8 @@ class FollowUpMigrationsTest extends MigrateNodeTestBase { 'content_translation', 'language', 'menu_ui', + // A requirement for d6_node_translation. + 'migrate_drupal_multilingual', ]; /** diff --git a/core/modules/migrate_drupal/tests/src/Kernel/d7/FollowUpMigrationsTest.php b/core/modules/migrate_drupal/tests/src/Kernel/d7/FollowUpMigrationsTest.php index b9b38c2f734c..5417df477279 100644 --- a/core/modules/migrate_drupal/tests/src/Kernel/d7/FollowUpMigrationsTest.php +++ b/core/modules/migrate_drupal/tests/src/Kernel/d7/FollowUpMigrationsTest.php @@ -26,6 +26,8 @@ class FollowUpMigrationsTest extends MigrateDrupal7TestBase { 'language', 'link', 'menu_ui', + // A requirement for translation migrations. + 'migrate_drupal_multilingual', 'node', 'taxonomy', 'telephone', diff --git a/core/modules/migrate_drupal_multilingual/migrate_drupal_multilingual.info.yml b/core/modules/migrate_drupal_multilingual/migrate_drupal_multilingual.info.yml new file mode 100644 index 000000000000..75a79dc285b9 --- /dev/null +++ b/core/modules/migrate_drupal_multilingual/migrate_drupal_multilingual.info.yml @@ -0,0 +1,7 @@ +name: 'Migrate Drupal Multilingual' +type: module +description: 'Provides a requirement for multilingual migrations.' +package: 'Core (Experimental)' +core: 8.x +dependencies: + - migrate_drupal diff --git a/core/modules/migrate_drupal_multilingual/migrate_drupal_multilingual.module b/core/modules/migrate_drupal_multilingual/migrate_drupal_multilingual.module new file mode 100644 index 000000000000..82ff699f84a5 --- /dev/null +++ b/core/modules/migrate_drupal_multilingual/migrate_drupal_multilingual.module @@ -0,0 +1,21 @@ +' . t('About') . ''; + $output .= '

' . t('The Migrate Drupal Multilingual module is a requirement for migrating translations. It does not provide a user interface. For more information, see the online documentation for the Migrate Drupal Multilingual module.', [':migrate_drupal_multilingual' => 'https://www.drupal.org/node/2959712']) . '

'; + return $output; + } +} diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6I18nReviewPageTest.php b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6I18nReviewPageTest.php index b70fe436aae6..adc3071e9e0f 100644 --- a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6I18nReviewPageTest.php +++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6I18nReviewPageTest.php @@ -59,7 +59,6 @@ class MigrateUpgrade6I18nReviewPageTest extends MigrateUpgradeI18nReviewPageTest 'filefield', 'filter', 'forum', - 'i18ntaxonomy', 'imagecache', 'imagefield', 'language', @@ -142,6 +141,7 @@ class MigrateUpgrade6I18nReviewPageTest extends MigrateUpgradeI18nReviewPageTest 'i18npoll', 'i18nprofile', 'i18nsync', + 'i18ntaxonomy', 'i18nviews', 'phone', 'views', diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6NoMultilingualTest.php b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6NoMultilingualTest.php new file mode 100644 index 000000000000..e07e8bf211f7 --- /dev/null +++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6NoMultilingualTest.php @@ -0,0 +1,211 @@ +loadFixture(drupal_get_path('module', 'migrate_drupal') . '/tests/fixtures/drupal6.php'); + } + + /** + * {@inheritdoc} + */ + protected function getSourceBasePath() { + return __DIR__ . '/files'; + } + + /** + * {@inheritdoc} + */ + protected function getEntityCounts() { + return [ + 'aggregator_item' => 1, + 'aggregator_feed' => 2, + 'block' => 35, + 'block_content' => 2, + 'block_content_type' => 1, + 'comment' => 6, + // The 'standard' profile provides the 'comment' comment type, and the + // migration creates 12 comment types, one per node type. + 'comment_type' => 13, + 'contact_form' => 5, + 'configurable_language' => 5, + 'editor' => 2, + 'field_config' => 89, + 'field_storage_config' => 63, + 'file' => 8, + 'filter_format' => 7, + 'image_style' => 5, + 'language_content_settings' => 3, + 'migration' => 105, + 'node' => 17, + // The 'book' module provides the 'book' node type, and the migration + // creates 12 node types. + 'node_type' => 13, + 'rdf_mapping' => 7, + 'search_page' => 2, + 'shortcut' => 2, + 'shortcut_set' => 1, + 'action' => 23, + 'menu' => 8, + 'taxonomy_term' => 8, + 'taxonomy_vocabulary' => 7, + 'tour' => 4, + 'user' => 7, + 'user_role' => 6, + 'menu_link_content' => 8, + 'view' => 16, + 'date_format' => 11, + 'entity_form_display' => 29, + 'entity_form_mode' => 1, + 'entity_view_display' => 55, + 'entity_view_mode' => 14, + 'base_field_override' => 38, + ]; + } + + /** + * {@inheritdoc} + */ + protected function getEntityCountsIncremental() { + $counts = $this->getEntityCounts(); + $counts['block_content'] = 3; + $counts['comment'] = 7; + $counts['file'] = 9; + $counts['menu_link_content'] = 9; + $counts['node'] = 18; + $counts['taxonomy_term'] = 9; + $counts['user'] = 8; + $counts['view'] = 16; + return $counts; + } + + /** + * {@inheritdoc} + */ + protected function getAvailablePaths() { + return [ + 'aggregator', + 'block', + 'book', + 'comment', + 'contact', + 'content', + 'date', + 'dblog', + 'email', + 'filefield', + 'filter', + 'forum', + 'imagecache', + 'imagefield', + 'language', + 'link', + 'locale', + 'menu', + 'node', + 'nodereference', + 'optionwidgets', + 'path', + 'profile', + 'search', + 'statistics', + 'system', + 'taxonomy', + 'text', + 'upload', + 'user', + 'userreference', + // Include modules that do not have an upgrade path and are enabled in the + // source database, defined in the $noUpgradePath property + // in MigrateUpgradeForm. + 'date_api', + 'date_timezone', + 'event', + 'i18n', + 'i18nstrings', + 'imageapi', + 'number', + 'php', + 'profile', + 'variable_admin', + ]; + } + + /** + * {@inheritdoc} + */ + protected function getMissingPaths() { + return [ + 'i18nblocks', + 'i18ncck', + 'i18ncontent', + 'i18nmenu', + 'i18nprofile', + ]; + } + + /** + * {@inheritdoc} + */ + public function testMigrateUpgradeExecute() { + $connection_options = $this->sourceDatabase->getConnectionOptions(); + $this->drupalGet('/upgrade'); + $session = $this->assertSession(); + $session->responseContains('Upgrade a site by importing its files and the data from its database into a clean and empty new install of Drupal 8.'); + + $button = $session->buttonExists('Continue'); + $button->click(); + $session->pageTextContains('Provide credentials for the database of the Drupal site you want to upgrade.'); + + $driver = $connection_options['driver']; + $connection_options['prefix'] = $connection_options['prefix']['default']; + + // Use the driver connection form to get the correct options out of the + // database settings. This supports all of the databases we test against. + $drivers = drupal_get_database_types(); + $form = $drivers[$driver]->getFormOptions($connection_options); + $connection_options = array_intersect_key($connection_options, $form + $form['advanced_options']); + $version = $this->getLegacyDrupalVersion($this->sourceDatabase); + $edit = [ + $driver => $connection_options, + 'version' => $version, + ]; + if (count($drivers) !== 1) { + $edit['driver'] = $driver; + } + $edits = $this->translatePostValues($edit); + $this->drupalPostForm(NULL, $edits, t('Review upgrade')); + $session->pageTextContains("Install migrate_drupal_multilingual to run migration 'd6_system_maintenance_translation'."); + } + +} diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6ReviewPageTest.php b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6ReviewPageTest.php index c62df12df4a6..d2fe095b5044 100644 --- a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6ReviewPageTest.php +++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6ReviewPageTest.php @@ -18,6 +18,7 @@ class MigrateUpgrade6ReviewPageTest extends MigrateUpgradeReviewPageTestBase { public static $modules = [ 'language', 'content_translation', + 'config_translation', 'telephone', 'aggregator', 'book', @@ -26,6 +27,8 @@ class MigrateUpgrade6ReviewPageTest extends MigrateUpgradeReviewPageTestBase { 'syslog', 'tracker', 'update', + // Required for translation migrations. + 'migrate_drupal_multilingual', ]; /** @@ -60,7 +63,11 @@ class MigrateUpgrade6ReviewPageTest extends MigrateUpgradeReviewPageTestBase { 'filefield', 'filter', 'forum', + 'i18n', 'i18nblocks', + 'i18nmenu', + 'i18nprofile', + 'i18nstrings', 'i18ntaxonomy', 'imagecache', 'imagefield', @@ -105,9 +112,6 @@ class MigrateUpgrade6ReviewPageTest extends MigrateUpgradeReviewPageTestBase { 'fieldgroup', 'filefield_meta', 'help', - 'i18n', - 'i18nmenu', - 'i18nstrings', 'imageapi', 'imageapi_gd', 'imageapi_imagemagick', @@ -141,7 +145,6 @@ class MigrateUpgrade6ReviewPageTest extends MigrateUpgradeReviewPageTestBase { 'i18ncck', 'i18ncontent', 'i18npoll', - 'i18nprofile', 'i18nsync', 'i18nviews', 'phone', diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6Test.php b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6Test.php index 80bc22126fb2..96aa55791775 100644 --- a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6Test.php +++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6Test.php @@ -23,6 +23,7 @@ class MigrateUpgrade6Test extends MigrateUpgradeExecuteTestBase { public static $modules = [ 'language', 'content_translation', + 'config_translation', 'migrate_drupal_ui', 'telephone', 'aggregator', @@ -30,6 +31,8 @@ class MigrateUpgrade6Test extends MigrateUpgradeExecuteTestBase { 'forum', 'statistics', 'migration_provider_test', + // Required for translation migrations. + 'migrate_drupal_multilingual', ]; /** @@ -83,7 +86,7 @@ class MigrateUpgrade6Test extends MigrateUpgradeExecuteTestBase { 'menu' => 8, 'taxonomy_term' => 8, 'taxonomy_vocabulary' => 7, - 'tour' => 4, + 'tour' => 5, 'user' => 7, 'user_role' => 6, 'menu_link_content' => 10, @@ -132,9 +135,11 @@ class MigrateUpgrade6Test extends MigrateUpgradeExecuteTestBase { 'filefield', 'filter', 'forum', + 'i18n', 'i18nblocks', 'i18nmenu', - 'i18nblocks', + 'i18nprofile', + 'i18nstrings', 'i18ntaxonomy', 'imagecache', 'imagefield', @@ -161,8 +166,6 @@ class MigrateUpgrade6Test extends MigrateUpgradeExecuteTestBase { 'date_api', 'date_timezone', 'event', - 'i18n', - 'i18nstrings', 'imageapi', 'number', 'php', @@ -178,9 +181,6 @@ class MigrateUpgrade6Test extends MigrateUpgradeExecuteTestBase { return [ 'i18ncck', 'i18ncontent', - // This module is in the missing path list because it is installed on the - // source site but it is not installed on the destination site. - 'i18nprofile', ]; } diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MigrateUpgrade7NoMultilingualTest.php b/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MigrateUpgrade7NoMultilingualTest.php new file mode 100644 index 000000000000..c383cd74de66 --- /dev/null +++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MigrateUpgrade7NoMultilingualTest.php @@ -0,0 +1,213 @@ +loadFixture(drupal_get_path('module', 'migrate_drupal') . '/tests/fixtures/drupal7.php'); + } + + /** + * {@inheritdoc} + */ + protected function getSourceBasePath() { + return __DIR__ . '/files'; + } + + /** + * {@inheritdoc} + */ + protected function getEntityCounts() { + return [ + 'aggregator_item' => 11, + 'aggregator_feed' => 1, + 'block' => 25, + 'block_content' => 1, + 'block_content_type' => 1, + 'comment' => 1, + // The 'standard' profile provides the 'comment' comment type, and the + // migration creates 6 comment types, one per node type. + 'comment_type' => 7, + // Module 'language' comes with 'en', 'und', 'zxx'. Migration adds 'is'. + 'configurable_language' => 4, + 'contact_form' => 3, + 'editor' => 2, + 'field_config' => 67, + 'field_storage_config' => 50, + 'file' => 3, + 'filter_format' => 7, + 'image_style' => 6, + 'language_content_settings' => 2, + 'migration' => 73, + 'node' => 5, + 'node_type' => 6, + 'rdf_mapping' => 7, + 'search_page' => 2, + 'shortcut' => 6, + 'shortcut_set' => 2, + 'action' => 17, + 'menu' => 6, + 'taxonomy_term' => 18, + 'taxonomy_vocabulary' => 4, + 'tour' => 4, + 'user' => 4, + 'user_role' => 3, + 'menu_link_content' => 10, + 'view' => 16, + 'date_format' => 11, + 'entity_form_display' => 17, + 'entity_form_mode' => 1, + 'entity_view_display' => 28, + 'entity_view_mode' => 14, + 'base_field_override' => 9, + ]; + } + + /** + * {@inheritdoc} + */ + protected function getEntityCountsIncremental() { + $counts = $this->getEntityCounts(); + $counts['block_content'] = 2; + $counts['comment'] = 2; + $counts['file'] = 4; + $counts['menu_link_content'] = 11; + $counts['node'] = 6; + $counts['taxonomy_term'] = 19; + $counts['user'] = 5; + return $counts; + } + + /** + * {@inheritdoc} + */ + protected function getAvailablePaths() { + return [ + 'aggregator', + 'block', + 'book', + 'color', + 'comment', + 'contact', + 'date', + 'dblog', + 'email', + 'entityreference', + 'field', + 'field_sql_storage', + 'file', + 'filter', + 'forum', + 'image', + 'language', + 'link', + 'list', + 'locale', + 'menu', + 'node', + 'number', + 'options', + 'path', + 'phone', + 'search', + 'shortcut', + 'statistics', + 'system', + 'taxonomy', + 'text', + 'user', + // Include modules that do not have an upgrade path and are enabled in the + // source database, defined in the $noUpgradePath property + // in MigrateUpgradeForm. + 'blog', + 'contextual', + 'date_api', + 'entity', + 'field_ui', + 'help', + 'php', + 'simpletest', + 'toolbar', + 'translation', + 'trigger', + ]; + } + + /** + * {@inheritdoc} + */ + protected function getMissingPaths() { + return [ + 'rdf', + // These modules are in the missing path list because they are installed + // on the source site but they are not installed on the destination site. + 'syslog', + 'tracker', + 'update', + ]; + } + + /** + * {@inheritdoc} + */ + public function testMigrateUpgradeExecute() { + $connection_options = $this->sourceDatabase->getConnectionOptions(); + $this->drupalGet('/upgrade'); + $session = $this->assertSession(); + $session->responseContains('Upgrade a site by importing its files and the data from its database into a clean and empty new install of Drupal 8.'); + + $button = $session->buttonExists('Continue'); + $button->click(); + $session->pageTextContains('Provide credentials for the database of the Drupal site you want to upgrade.'); + + $driver = $connection_options['driver']; + $connection_options['prefix'] = $connection_options['prefix']['default']; + + // Use the driver connection form to get the correct options out of the + // database settings. This supports all of the databases we test against. + $drivers = drupal_get_database_types(); + $form = $drivers[$driver]->getFormOptions($connection_options); + $connection_options = array_intersect_key($connection_options, $form + $form['advanced_options']); + $version = $this->getLegacyDrupalVersion($this->sourceDatabase); + $edit = [ + $driver => $connection_options, + 'version' => $version, + ]; + if (count($drivers) !== 1) { + $edit['driver'] = $driver; + } + $edits = $this->translatePostValues($edit); + $this->drupalPostForm(NULL, $edits, t('Review upgrade')); + $session->pageTextContains("Install migrate_drupal_multilingual to run migration 'd7_node_translation:article'."); + } + +} diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MigrateUpgrade7ReviewPageTest.php b/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MigrateUpgrade7ReviewPageTest.php index 28ceaf0987d8..b7dba648ebda 100644 --- a/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MigrateUpgrade7ReviewPageTest.php +++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MigrateUpgrade7ReviewPageTest.php @@ -26,6 +26,8 @@ class MigrateUpgrade7ReviewPageTest extends MigrateUpgradeReviewPageTestBase { 'syslog', 'tracker', 'update', + // Required for translation migrations. + 'migrate_drupal_multilingual', ]; /** @@ -57,7 +59,6 @@ class MigrateUpgrade7ReviewPageTest extends MigrateUpgradeReviewPageTestBase { 'date', 'dblog', 'email', - 'entity_translation', 'field', 'field_sql_storage', 'file', @@ -108,6 +109,7 @@ class MigrateUpgrade7ReviewPageTest extends MigrateUpgradeReviewPageTestBase { 'entity_feature', 'entity_token', 'entityreference', + 'entity_translation', 'field_ui', 'help', 'openid', diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MigrateUpgrade7Test.php b/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MigrateUpgrade7Test.php index e651af99af17..b36b6eb0cc35 100644 --- a/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MigrateUpgrade7Test.php +++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MigrateUpgrade7Test.php @@ -31,6 +31,8 @@ class MigrateUpgrade7Test extends MigrateUpgradeExecuteTestBase { 'forum', 'statistics', 'migration_provider_test', + // Required for translation migrations. + 'migrate_drupal_multilingual', ]; /** @@ -127,7 +129,6 @@ class MigrateUpgrade7Test extends MigrateUpgradeExecuteTestBase { 'dblog', 'email', 'entityreference', - 'entity_translation', 'field', 'field_sql_storage', 'file', diff --git a/core/modules/node/tests/src/Kernel/Migrate/d6/MigrateNodeTest.php b/core/modules/node/tests/src/Kernel/Migrate/d6/MigrateNodeTest.php index 693ed36ff022..700311c87116 100644 --- a/core/modules/node/tests/src/Kernel/Migrate/d6/MigrateNodeTest.php +++ b/core/modules/node/tests/src/Kernel/Migrate/d6/MigrateNodeTest.php @@ -19,7 +19,13 @@ class MigrateNodeTest extends MigrateNodeTestBase { /** * {@inheritdoc} */ - public static $modules = ['language', 'content_translation', 'menu_ui']; + public static $modules = [ + 'language', + 'content_translation', + 'menu_ui', + // Required for translation migrations. + 'migrate_drupal_multilingual', + ]; /** * {@inheritdoc} diff --git a/core/modules/node/tests/src/Kernel/Migrate/d6/NodeTranslationRedirectTest.php b/core/modules/node/tests/src/Kernel/Migrate/d6/NodeTranslationRedirectTest.php index 7daac88309ba..f3d03166cf48 100644 --- a/core/modules/node/tests/src/Kernel/Migrate/d6/NodeTranslationRedirectTest.php +++ b/core/modules/node/tests/src/Kernel/Migrate/d6/NodeTranslationRedirectTest.php @@ -20,6 +20,8 @@ class NodeTranslationRedirectTest extends MigrateDrupal6TestBase { 'content_translation', 'language', 'menu_ui', + // Required for translation migrations. + 'migrate_drupal_multilingual', ]; /** diff --git a/core/modules/node/tests/src/Kernel/Migrate/d7/MigrateNodeTest.php b/core/modules/node/tests/src/Kernel/Migrate/d7/MigrateNodeTest.php index 5b8a9ec97c91..61a19bbf6d11 100644 --- a/core/modules/node/tests/src/Kernel/Migrate/d7/MigrateNodeTest.php +++ b/core/modules/node/tests/src/Kernel/Migrate/d7/MigrateNodeTest.php @@ -31,6 +31,8 @@ class MigrateNodeTest extends MigrateDrupal7TestBase { 'language', 'link', 'menu_ui', + // Required for translation migrations. + 'migrate_drupal_multilingual', 'node', 'taxonomy', 'telephone', diff --git a/core/modules/node/tests/src/Kernel/Migrate/d7/NodeTranslationRedirectTest.php b/core/modules/node/tests/src/Kernel/Migrate/d7/NodeTranslationRedirectTest.php index 88cc2ade7bd0..3e148aaf488c 100644 --- a/core/modules/node/tests/src/Kernel/Migrate/d7/NodeTranslationRedirectTest.php +++ b/core/modules/node/tests/src/Kernel/Migrate/d7/NodeTranslationRedirectTest.php @@ -20,6 +20,8 @@ class NodeTranslationRedirectTest extends MigrateDrupal7TestBase { 'content_translation', 'language', 'menu_ui', + // Required for translation migrations. + 'migrate_drupal_multilingual', 'node', 'text', ]; diff --git a/core/modules/path/tests/src/Kernel/Migrate/d6/MigrateUrlAliasTest.php b/core/modules/path/tests/src/Kernel/Migrate/d6/MigrateUrlAliasTest.php index 59cf3cb1fb0d..28f22ecc959d 100644 --- a/core/modules/path/tests/src/Kernel/Migrate/d6/MigrateUrlAliasTest.php +++ b/core/modules/path/tests/src/Kernel/Migrate/d6/MigrateUrlAliasTest.php @@ -16,7 +16,14 @@ class MigrateUrlAliasTest extends MigrateDrupal6TestBase { /** * {@inheritdoc} */ - public static $modules = ['language', 'content_translation', 'path', 'menu_ui']; + public static $modules = [ + 'language', + 'content_translation', + 'path', + 'menu_ui', + // Required for translation migrations. + 'migrate_drupal_multilingual', + ]; /** * {@inheritdoc} diff --git a/core/modules/path/tests/src/Kernel/Migrate/d7/MigrateUrlAliasTest.php b/core/modules/path/tests/src/Kernel/Migrate/d7/MigrateUrlAliasTest.php index dae024950010..b8d92e0c49a0 100644 --- a/core/modules/path/tests/src/Kernel/Migrate/d7/MigrateUrlAliasTest.php +++ b/core/modules/path/tests/src/Kernel/Migrate/d7/MigrateUrlAliasTest.php @@ -18,6 +18,8 @@ class MigrateUrlAliasTest extends MigrateDrupal7TestBase { 'content_translation', 'language', 'menu_ui', + // Required for translation migrations. + 'migrate_drupal_multilingual', 'node', 'path', 'text', diff --git a/core/modules/statistics/tests/src/Kernel/Migrate/d6/MigrateNodeCounterTest.php b/core/modules/statistics/tests/src/Kernel/Migrate/d6/MigrateNodeCounterTest.php index ea917f51a426..29a35fb33904 100644 --- a/core/modules/statistics/tests/src/Kernel/Migrate/d6/MigrateNodeCounterTest.php +++ b/core/modules/statistics/tests/src/Kernel/Migrate/d6/MigrateNodeCounterTest.php @@ -18,6 +18,8 @@ class MigrateNodeCounterTest extends MigrateDrupal6TestBase { 'content_translation', 'language', 'menu_ui', + // Required for translation migrations. + 'migrate_drupal_multilingual', 'node', 'statistics', 'text', diff --git a/core/modules/statistics/tests/src/Kernel/Migrate/d7/MigrateNodeCounterTest.php b/core/modules/statistics/tests/src/Kernel/Migrate/d7/MigrateNodeCounterTest.php index 9a7317fada64..1401e60fd492 100644 --- a/core/modules/statistics/tests/src/Kernel/Migrate/d7/MigrateNodeCounterTest.php +++ b/core/modules/statistics/tests/src/Kernel/Migrate/d7/MigrateNodeCounterTest.php @@ -18,6 +18,8 @@ class MigrateNodeCounterTest extends MigrateDrupal7TestBase { 'content_translation', 'language', 'menu_ui', + // Required for translation migrations. + 'migrate_drupal_multilingual', 'node', 'statistics', 'text', diff --git a/core/modules/taxonomy/tests/src/Kernel/Migrate/d6/MigrateTaxonomyVocabularyTranslationTest.php b/core/modules/taxonomy/tests/src/Kernel/Migrate/d6/MigrateTaxonomyVocabularyTranslationTest.php index 3993abb98fbe..9d7176c49758 100644 --- a/core/modules/taxonomy/tests/src/Kernel/Migrate/d6/MigrateTaxonomyVocabularyTranslationTest.php +++ b/core/modules/taxonomy/tests/src/Kernel/Migrate/d6/MigrateTaxonomyVocabularyTranslationTest.php @@ -14,7 +14,13 @@ class MigrateTaxonomyVocabularyTranslationTest extends MigrateDrupal6TestBase { /** * {@inheritdoc} */ - public static $modules = ['language', 'taxonomy']; + public static $modules = [ + 'config_translation', + 'language', + 'taxonomy', + // Required for translation migrations. + 'migrate_drupal_multilingual', + ]; /** * {@inheritdoc}