You are here

public function MenuLinkCloneTest::testMenuLinkClone in Menu Link Clone 8.2

Same name and namespace in other branches
  1. 8.3 tests/src/Functional/MenuLinkCloneTest.php \Drupal\Tests\menu_link_clone\Functional\MenuLinkCloneTest::testMenuLinkClone()

Test menu link clone.

File

tests/src/Functional/MenuLinkCloneTest.php, line 57

Class

MenuLinkCloneTest
Create a menu and test a link clone.

Namespace

Drupal\Tests\menu_link_clone\Functional

Code

public function testMenuLinkClone() {
  $entityTypeManager = $this->container
    ->get('entity_type.manager');
  $menus = $entityTypeManager
    ->getStorage('menu')
    ->loadByProperties([
    'id' => 'account',
  ]);
  $menu = reset($menus);

  // Custom menu link.
  $menu_link = MenuLinkContent::create([
    'title' => 'Test',
    'link' => [
      'uri' => 'internal:/',
    ],
    'menu_name' => 'account',
    'expanded' => TRUE,
    'weight' => 0,
  ]);
  $menu_link
    ->save();
  $edit = [
    'label' => 'Test menu cloned',
    'id' => 'test_menu_cloned',
    'clone_links' => TRUE,
  ];
  $this
    ->drupalPostForm('entity_clone/menu/' . $menu
    ->id(), $edit, t('Clone'));
  $menus = $entityTypeManager
    ->getStorage('menu')
    ->loadByProperties([
    'id' => $edit['id'],
  ]);
  $menu = reset($menus);
  $this
    ->assertNotEmpty($menu, 'Test menu cloned found in database.');
  $menuLink = $entityTypeManager
    ->getStorage('menu_link_content')
    ->loadByProperties([
    'menu_name' => $edit['id'],
  ]);
  $menuLink = reset($menuLink);
  $this
    ->assertNotEmpty($menuLink, "Menu link found in database for Test menu cloned");
}