From 9273076d01e7c65c8e7ee8337cc904e09a226dd3 Mon Sep 17 00:00:00 2001
From: Alex Pott <alex.a.pott@googlemail.com>
Date: Fri, 10 Aug 2018 22:29:14 +0100
Subject: [PATCH] Issue #2991710 by jcnventura, maxocub, heddn, quietone,
 phenaproxima, effulgentsia: Migrate system broken if content_translation
 enabled

---
 .../migrations/d6_entity_reference_translation.yml |  3 +++
 .../migrations/d7_entity_reference_translation.yml |  3 +++
 .../src/Kernel/Plugin/MigrationPluginListTest.php  | 14 ++++++++++++++
 3 files changed, 20 insertions(+)

diff --git a/core/modules/content_translation/migrations/d6_entity_reference_translation.yml b/core/modules/content_translation/migrations/d6_entity_reference_translation.yml
index 74a586b82349..87150ec3957b 100644
--- a/core/modules/content_translation/migrations/d6_entity_reference_translation.yml
+++ b/core/modules/content_translation/migrations/d6_entity_reference_translation.yml
@@ -5,6 +5,9 @@ migration_tags:
   - Multilingual
   - Follow-up migration
 deriver: Drupal\migrate_drupal\Plugin\migrate\EntityReferenceTranslationDeriver
+provider:
+  - content_translation
+  - migrate_drupal
 # Supported target types for entity reference translation migrations. The array
 # keys are the supported target types and the values are arrays of migrations
 # to lookup for the translated entity IDs.
diff --git a/core/modules/content_translation/migrations/d7_entity_reference_translation.yml b/core/modules/content_translation/migrations/d7_entity_reference_translation.yml
index af5bef9490ff..2e8d548f0a08 100644
--- a/core/modules/content_translation/migrations/d7_entity_reference_translation.yml
+++ b/core/modules/content_translation/migrations/d7_entity_reference_translation.yml
@@ -5,6 +5,9 @@ migration_tags:
   - Multilingual
   - Follow-up migration
 deriver: Drupal\migrate_drupal\Plugin\migrate\EntityReferenceTranslationDeriver
+provider:
+  - content_translation
+  - migrate_drupal
 # Supported target types for entity reference translation migrations. The array
 # keys are the supported target types and the values are arrays of migrations
 # to lookup for the translated entity IDs.
diff --git a/core/modules/migrate/tests/src/Kernel/Plugin/MigrationPluginListTest.php b/core/modules/migrate/tests/src/Kernel/Plugin/MigrationPluginListTest.php
index 3a3487f69ace..7bfba70f27a1 100644
--- a/core/modules/migrate/tests/src/Kernel/Plugin/MigrationPluginListTest.php
+++ b/core/modules/migrate/tests/src/Kernel/Plugin/MigrationPluginListTest.php
@@ -3,6 +3,7 @@
 namespace Drupal\Tests\migrate\Kernel\Plugin;
 
 use Drupal\Core\Database\Database;
+use Drupal\field\Tests\EntityReference\EntityReferenceTestTrait;
 use Drupal\KernelTests\KernelTestBase;
 use Drupal\migrate\Exception\RequirementsException;
 use Drupal\migrate\Plugin\migrate\source\SqlBase;
@@ -16,6 +17,8 @@
  */
 class MigrationPluginListTest extends KernelTestBase {
 
+  use EntityReferenceTestTrait;
+
   /**
    * {@inheritdoc}
    */
@@ -30,6 +33,7 @@ class MigrationPluginListTest extends KernelTestBase {
     'book',
     'comment',
     'contact',
+    'content_translation',
     'dblog',
     'field',
     'file',
@@ -60,6 +64,11 @@ class MigrationPluginListTest extends KernelTestBase {
    * @covers ::getDefinitions
    */
   public function testGetDefinitions() {
+    // Create an entity reference field to make sure that migrations derived by
+    // EntityReferenceTranslationDeriver do not get discovered without
+    // migrate_drupal enabled.
+    $this->createEntityReferenceField('user', 'user', 'field_entity_reference', 'Entity Reference', 'node');
+
     // Make sure retrieving all the core migration plugins does not throw any
     // errors.
     $migration_plugins = $this->container->get('plugin.manager.migration')->getDefinitions();
@@ -132,6 +141,11 @@ public function testGetDefinitions() {
     $migration_plugins = $this->container->get('plugin.manager.migration')->getDefinitions();
     // All the plugins provided by core depend on migrate_drupal.
     $this->assertNotEmpty($migration_plugins);
+
+    // Test that migrations derived by EntityReferenceTranslationDeriver are
+    // discovered now that migrate_drupal is enabled.
+    $this->assertArrayHasKey('d6_entity_reference_translation:user__user', $migration_plugins);
+    $this->assertArrayHasKey('d7_entity_reference_translation:user__user', $migration_plugins);
   }
 
 }
-- 
GitLab