1 admin_bar.test AdminBarCustomizedTestCase::testCustomDisabled()

Test disabled custom links.

File

core/modules/admin_bar/tests/admin_bar.test, line 420
Tests for the Administration bar module.

Class

AdminBarCustomizedTestCase
Tests customized menu links.

Code

function testCustomDisabled() {
  $type = $this->backdropCreateContentType();
  $node = $this->backdropCreateNode(array('type' => $type->type));
  $text = $this->randomName();
  $xpath = $this->buildXPathQuery('//div[@id=:id]//a[contains(text(), :text)]', array(
    ':id' => 'admin-bar',
    ':text' => $text,
  ));

  // Verify that the link does not appear in the menu.
  $this->backdropGet('admin/config/administration/admin_bar');
  $elements = $this->xpath($xpath);
  $this->assertFalse($elements, 'Custom link not found.');

  // Add a custom link to the node to the menu.
  $edit = array(
    'link_path' => 'node/' . $node->nid,
    'link_title' => $text,
    'parent' => 'management:' . $this->queryMlidByPath('admin'),
  );
  $this->backdropPost('admin/structure/menu/manage/management/add', $edit, t('Save'));

  // Verify that the link appears in the menu.
  $cid = 'admin_bar:' . $this->admin_user->uid . ':' . session_id() . ':en';
  $hash = admin_bar_cache_get($cid);
  $this->backdropGet('js/admin_bar/cache/' . $hash);
  $elements = $this->xpath($xpath);
  $this->assertTrue($elements, 'Custom link found.');

  // Disable the link.
  $edit = array(
    'enabled' => FALSE,
  );
  $this->backdropPost('admin/structure/menu/item/' . $this->queryMlidByPath('node/' . $node->nid) . '/edit', $edit, t('Save'));

  // Verify that the disabled link does not appear in the menu.
  $this->backdropGet('admin/config/administration/admin_bar');
  $elements = $this->xpath($xpath);
  $this->assertFalse($elements, 'Disabled custom link not found.');
}