You are here

public function MenuLinksOriginTest::testMenuLinkContentReparenting in Menu Item Extras 8.2

Tests the MenuLinkContent::preDelete function.

File

tests/src/Kernel/MenuLinksOriginTest.php, line 284

Class

MenuLinksOriginTest
Tests handling of menu links hierarchies.

Namespace

Drupal\Tests\menu_item_extras\Kernel

Code

public function testMenuLinkContentReparenting() {

  // Add new menu items in a hierarchy.
  $parent = MenuLinkContent::create([
    'title' => $this
      ->randomMachineName(8),
    'link' => [
      [
        'uri' => 'internal:/',
      ],
    ],
    'menu_name' => 'main',
  ]);
  $parent
    ->save();
  $child1 = MenuLinkContent::create([
    'title' => $this
      ->randomMachineName(8),
    'link' => [
      [
        'uri' => 'internal:/',
      ],
    ],
    'menu_name' => 'main',
    'parent' => 'menu_link_content:' . $parent
      ->uuid(),
  ]);
  $child1
    ->save();
  $child2 = MenuLinkContent::create([
    'title' => $this
      ->randomMachineName(8),
    'link' => [
      [
        'uri' => 'internal:/',
      ],
    ],
    'menu_name' => 'main',
    'parent' => 'menu_link_content:' . $child1
      ->uuid(),
  ]);
  $child2
    ->save();

  // Delete the middle child.
  $child1
    ->delete();

  // Refresh $child2.
  $child2 = MenuLinkContent::load($child2
    ->id());

  // Test the reference in the child.
  $this
    ->assertSame('menu_link_content:' . $parent
    ->uuid(), $child2
    ->getParentId());
}