Security update for Core, with self-updated composer
[yaffs-website] / web / core / modules / menu_link_content / tests / src / Functional / LinksTest.php
index 5a7121af79a0bf20f4c905aec176ab1c41fc58f3..298af6fae3ecd6f5d78fea887e25126c4af2b091 100644 (file)
@@ -3,9 +3,11 @@
 namespace Drupal\Tests\menu_link_content\Functional;
 
 use Drupal\Component\Utility\SafeMarkup;
+use Drupal\Core\Menu\MenuTreeParameters;
 use Drupal\menu_link_content\Entity\MenuLinkContent;
-use Drupal\Tests\BrowserTestBase;
 use Drupal\system\Entity\Menu;
+use Drupal\Tests\BrowserTestBase;
+use Drupal\user\Entity\User;
 
 /**
  * Tests handling of menu links hierarchies.
@@ -24,7 +26,7 @@ class LinksTest extends BrowserTestBase {
   /**
    * The menu link plugin manager.
    *
-   * @var \Drupal\Core\Menu\MenuLinkManagerInterface $menuLinkManager
+   * @var \Drupal\Core\Menu\MenuLinkManagerInterface
    */
   protected $menuLinkManager;
 
@@ -125,6 +127,7 @@ class LinksTest extends BrowserTestBase {
       'menu_name' => 'menu_test',
       'bundle' => 'menu_link_content',
       'link' => [['uri' => 'internal:/']],
+      'title' => 'Link test',
     ];
     $link = MenuLinkContent::create($options);
     $link->save();
@@ -140,6 +143,26 @@ class LinksTest extends BrowserTestBase {
     $this->assertEqual($link->getChangedTime(), REQUEST_TIME, 'Changing a menu link sets "changed" timestamp.');
   }
 
+  /**
+   * Tests that menu link pointing to entities get removed on entity remove.
+   */
+  public function testMenuLinkOnEntityDelete() {
+    $user = User::create(['name' => 'username']);
+    $user->save();
+    $menu_link_content = MenuLinkContent::create([
+      'title' => 'username profile',
+      'menu_name' => 'menu_test',
+      'link' => [['uri' => 'entity:user/' . $user->id()]],
+      'bundle' => 'menu_test',
+    ]);
+    $menu_link_content->save();
+    $menu_tree_condition = (new MenuTreeParameters())->addCondition('route_name', 'entity.user.canonical');
+    $this->assertCount(1, \Drupal::menuTree()->load('menu_test', $menu_tree_condition));
+
+    $user->delete();
+    $this->assertCount(0, \Drupal::menuTree()->load('menu_test', $menu_tree_condition));
+  }
+
   /**
    * Test automatic reparenting of menu links.
    */