function TreeOutputTest::testMenuTreeData

Validate the generation of a proper menu tree output.

File

drupal/core/modules/system/lib/Drupal/system/Tests/Menu/TreeOutputTest.php, line 53
Definition of Drupal\system\Tests\Menu\TreeOutputTest.

Class

TreeOutputTest
Menu tree output related tests.

Namespace

Drupal\system\Tests\Menu

Code

function testMenuTreeData() {
  $output = menu_tree_output($this->tree_data);

  // Validate that the - in main-menu is changed into an underscore
  $this
    ->assertEqual($output['1']['#theme'], 'menu_link__main_menu', 'Hyphen is changed to a dash on menu_link');
  $this
    ->assertEqual($output['#theme_wrappers'][0], 'menu_tree__main_menu', 'Hyphen is changed to a dash on menu_tree wrapper');

  // Looking for child items in the data
  $this
    ->assertEqual($output['1']['#below']['2']['#href'], 'a/b', 'Checking the href on a child item');
  $this
    ->assertTrue(in_array('active-trail', $output['1']['#below']['2']['#attributes']['class']), 'Checking the active trail class');

  // Validate that the hidden and no access items are missing
  $this
    ->assertFalse(isset($output['5']), 'Hidden item should be missing');
  $this
    ->assertFalse(isset($output['6']), 'False access should be missing');

  // Item 7 is after a couple hidden items. Just to make sure that 5 and 6 are skipped and 7 still included
  $this
    ->assertTrue(isset($output['7']), 'Item after hidden items is present');
}