From c6eb905222290c92c94215dca6e614ca580301f0 Mon Sep 17 00:00:00 2001 From: Dave Long Date: Thu, 11 Jan 2024 12:11:53 +0000 Subject: [PATCH] Issue #3371828 by quietone: NodeCompleteNodeTranslationLookup should return NULL for non translated lookups --- .../NodeCompleteNodeTranslationLookup.php | 4 +++ .../Kernel/Migrate/d6/MigrateUrlAliasTest.php | 26 ++++++++++++++++--- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/core/modules/migrate_drupal/src/Plugin/migrate/process/NodeCompleteNodeTranslationLookup.php b/core/modules/migrate_drupal/src/Plugin/migrate/process/NodeCompleteNodeTranslationLookup.php index 9722273af16..36b193eb28e 100644 --- a/core/modules/migrate_drupal/src/Plugin/migrate/process/NodeCompleteNodeTranslationLookup.php +++ b/core/modules/migrate_drupal/src/Plugin/migrate/process/NodeCompleteNodeTranslationLookup.php @@ -30,6 +30,10 @@ class NodeCompleteNodeTranslationLookup extends ProcessPluginBase { */ public function transform($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) { if (is_array($value) && count($value) === 3) { + // If the language is 'und' then the node was not translated. + if ($value[2] === 'und') { + return NULL; + } unset($value[1]); return array_values($value); } 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 d79eaf26c94..5515e9c9de0 100644 --- a/core/modules/path/tests/src/Kernel/Migrate/d6/MigrateUrlAliasTest.php +++ b/core/modules/path/tests/src/Kernel/Migrate/d6/MigrateUrlAliasTest.php @@ -43,9 +43,6 @@ class MigrateUrlAliasTest extends MigrateDrupal6TestBase { $this->executeMigrations([ 'language', 'd6_node_settings', - 'd6_node', - 'd6_node_translation', - 'd6_url_alias', ]); } @@ -72,6 +69,29 @@ class MigrateUrlAliasTest extends MigrateDrupal6TestBase { * Tests the URL alias migration. */ public function testUrlAlias() { + $this->executeMigrations([ + 'd6_node', + 'd6_node_translation', + 'd6_url_alias', + ]); + $this->checkUrlMigration(); + } + + /** + * Tests the URL alias migration using the node complete migration. + */ + public function testNodeCompleteUrlAlias() { + $this->executeMigrations([ + 'd6_node_complete', + 'd6_url_alias', + ]); + $this->checkUrlMigration(); + } + + /** + * Checks the migration results. + */ + protected function checkUrlMigration() { $id_map = $this->getMigration('d6_url_alias')->getIdMap(); // Test that the field exists. $conditions = [