You are here

function MenuTest::testMenus in Views (for Drupal 7) 8.3

Tests the menu functionality.

File

lib/Drupal/views/Tests/Wizard/MenuTest.php, line 26
Definition of Drupal\views\Tests\Wizard\MenuTest.

Class

MenuTest
Tests the ability of the views wizard to put views in a menu.

Namespace

Drupal\views\Tests\Wizard

Code

function testMenus() {

  // Create a view with a page display and a menu link in the Main Menu.
  $view = array();
  $view['human_name'] = $this
    ->randomName(16);
  $view['name'] = strtolower($this
    ->randomName(16));
  $view['description'] = $this
    ->randomName(16);
  $view['page[create]'] = 1;
  $view['page[title]'] = $this
    ->randomName(16);
  $view['page[path]'] = $this
    ->randomName(16);
  $view['page[link]'] = 1;
  $view['page[link_properties][menu_name]'] = 'main-menu';
  $view['page[link_properties][title]'] = $this
    ->randomName(16);
  $this
    ->drupalPost('admin/structure/views/add', $view, t('Save & exit'));
  $this
    ->assertResponse(200);

  // Make sure there is a link to the view from the front page (where we
  // expect the main menu to display).
  $this
    ->drupalGet('');
  $this
    ->assertResponse(200);
  $this
    ->assertLink($view['page[link_properties][title]']);
  $this
    ->assertLinkByHref(url($view['page[path]']));

  // Make sure the link is associated with the main menu.
  $links = menu_load_links('main-menu');
  $found = FALSE;
  foreach ($links as $link) {
    if ($link['link_path'] == $view['page[path]']) {
      $found = TRUE;
      break;
    }
  }
  $this
    ->assertTrue($found, t('Found a link to %path in the main menu', array(
    '%path' => $view['page[path]'],
  )));
}