You are here

function MenuRouterTestCase::testMenuLinkMaintain in Drupal 7

Tests for menu_link_maintain().

File

modules/simpletest/tests/menu.test, line 323
Provides SimpleTests for menu.inc.

Class

MenuRouterTestCase

Code

function testMenuLinkMaintain() {
  $admin_user = $this
    ->drupalCreateUser(array(
    'administer site configuration',
  ));
  $this
    ->drupalLogin($admin_user);

  // Create three menu items.
  menu_link_maintain('menu_test', 'insert', 'menu_test_maintain/1', 'Menu link #1');
  menu_link_maintain('menu_test', 'insert', 'menu_test_maintain/1', 'Menu link #1-1');
  menu_link_maintain('menu_test', 'insert', 'menu_test_maintain/2', 'Menu link #2');

  // Move second link to the main-menu, to test caching later on.
  db_update('menu_links')
    ->fields(array(
    'menu_name' => 'main-menu',
  ))
    ->condition('link_title', 'Menu link #1-1')
    ->condition('customized', 0)
    ->condition('module', 'menu_test')
    ->execute();
  menu_cache_clear('main-menu');

  // Load front page.
  $this
    ->drupalGet('node');
  $this
    ->assertLink(t('Menu link #1'), 0, 'Found menu link #1');
  $this
    ->assertLink(t('Menu link #1-1'), 0, 'Found menu link #1-1');
  $this
    ->assertLink(t('Menu link #2'), 0, 'Found menu link #2');

  // Rename all links for the given path.
  menu_link_maintain('menu_test', 'update', 'menu_test_maintain/1', 'Menu link updated');

  // Load a different page to be sure that we have up to date information.
  $this
    ->drupalGet('menu_test_maintain/1');
  $this
    ->assertLink(t('Menu link updated'), 0, 'Found updated menu link');
  $this
    ->assertNoLink(t('Menu link #1'), 0, 'Not found menu link #1');
  $this
    ->assertNoLink(t('Menu link #1'), 0, 'Not found menu link #1-1');
  $this
    ->assertLink(t('Menu link #2'), 0, 'Found menu link #2');

  // Delete all links for the given path.
  menu_link_maintain('menu_test', 'delete', 'menu_test_maintain/1', '');

  // Load a different page to be sure that we have up to date information.
  $this
    ->drupalGet('menu_test_maintain/2');
  $this
    ->assertNoLink(t('Menu link updated'), 0, 'Not found deleted menu link');
  $this
    ->assertNoLink(t('Menu link #1'), 0, 'Not found menu link #1');
  $this
    ->assertNoLink(t('Menu link #1'), 0, 'Not found menu link #1-1');
  $this
    ->assertLink(t('Menu link #2'), 0, 'Found menu link #2');
}