From 679dff2abf81cdb88cc0ce096271cedca64cbe71 Mon Sep 17 00:00:00 2001
From: quietone <quietone@2572884.no-reply.drupal.org>
Date: Wed, 1 Feb 2023 11:33:29 +1300
Subject: [PATCH] Issue #3152943 by bbombachini, rocketeerbkw, huzooka,
 chandrashekhar_srijan, ayushmishra206, nikitagupta, abhisekmazumdar, Wim
 Leers, mikelutz, larowlan: Remove migration of shortcuts from menu_link
 migration

---
 .../src/Plugin/migrate/source/MenuLink.php    |  6 +++-
 .../Kernel/Migrate/d7/MigrateMenuLinkTest.php |  5 +++
 .../Plugin/migrate/source/MenuLinkTest.php    | 31 +++++++++++++++++++
 3 files changed, 41 insertions(+), 1 deletion(-)

diff --git a/core/modules/menu_link_content/src/Plugin/migrate/source/MenuLink.php b/core/modules/menu_link_content/src/Plugin/migrate/source/MenuLink.php
index b998b6eb1e87..0f4676b62bcf 100644
--- a/core/modules/menu_link_content/src/Plugin/migrate/source/MenuLink.php
+++ b/core/modules/menu_link_content/src/Plugin/migrate/source/MenuLink.php
@@ -50,7 +50,11 @@ class MenuLink extends DrupalSqlBase {
    */
   public function query() {
     $query = $this->select('menu_links', 'ml')
-      ->fields('ml');
+      ->fields('ml')
+      // Shortcut set links are migrated by the d7_shortcut migration.
+      // Shortcuts are not used in Drupal 6.
+      // @see Drupal\shortcut\Plugin\migrate\source\d7\Shortcut::query()
+      ->condition('ml.menu_name', 'shortcut-set-%', 'NOT LIKE');
     $and = $query->andConditionGroup()
       ->condition('ml.module', 'menu')
       ->condition('ml.router_path', ['admin/build/menu-customize/%', 'admin/structure/menu/manage/%'], 'NOT IN');
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 cd271f89d516..dbe7d0f1374a 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
@@ -112,6 +112,11 @@ public function testMenuLinks() {
     $this->assertEntity(485, 'en', 'is - The thing about Deep Space 9', 'tools', NULL, TRUE, FALSE, ['attributes' => ['title' => '']], 'entity:node/2', 10);
     $this->assertEntity(486, 'und', 'is - The thing about Firefly', 'tools', NULL, TRUE, FALSE, ['attributes' => ['title' => '']], 'entity:node/4', 11);
     $this->assertEntity(487, 'en', 'en - The thing about Firefly', 'tools', NULL, TRUE, FALSE, ['attributes' => ['title' => '']], 'entity:node/4', 12);
+
+    // Test there have been no attempts to stub a shortcut in a MigrationLookup
+    // process.
+    $messages = $this->getMigration('d7_menu')->getIdMap()->getMessages()->fetchAll();
+    $this->assertCount(0, $messages);
   }
 
 }
diff --git a/core/modules/menu_link_content/tests/src/Kernel/Plugin/migrate/source/MenuLinkTest.php b/core/modules/menu_link_content/tests/src/Kernel/Plugin/migrate/source/MenuLinkTest.php
index b8d80c153180..2f6d19a3e1ba 100644
--- a/core/modules/menu_link_content/tests/src/Kernel/Plugin/migrate/source/MenuLinkTest.php
+++ b/core/modules/menu_link_content/tests/src/Kernel/Plugin/migrate/source/MenuLinkTest.php
@@ -241,6 +241,37 @@ public function providerSource() {
         'i18n_tsid' => '1',
         'skip_translation' => FALSE,
       ],
+      [
+        // D7 shortcut set link.
+        'menu_name' => 'shortcut-set-1',
+        'mlid' => 301,
+        'plid' => 0,
+        'link_path' => 'node/add',
+        'router_path' => 'node/add',
+        'link_title' => 'Add Content',
+        'options' => [],
+        'module' => 'menu',
+        'hidden' => 0,
+        'external' => 0,
+        'has_children' => 0,
+        'expanded' => 0,
+        'weight' => 0,
+        'depth' => 1,
+        'customized' => 0,
+        'p1' => '301',
+        'p2' => '0',
+        'p3' => '0',
+        'p4' => '0',
+        'p5' => '0',
+        'p6' => '0',
+        'p7' => '0',
+        'p8' => '0',
+        'p9' => '0',
+        'updated' => '0',
+        'language' => 'und',
+        'i18n_tsid' => '0',
+        'skip_translation' => TRUE,
+      ],
     ];
 
     // Add long link title attributes to source data.
-- 
GitLab