function ContextualLinksTest::testContextualLinksClick

Same name and namespace in other branches
  1. 8.9.x core/modules/contextual/tests/src/FunctionalJavascript/ContextualLinksTest.php \Drupal\Tests\contextual\FunctionalJavascript\ContextualLinksTest::testContextualLinksClick()
  2. 10 core/modules/contextual/tests/src/FunctionalJavascript/ContextualLinksTest.php \Drupal\Tests\contextual\FunctionalJavascript\ContextualLinksTest::testContextualLinksClick()
  3. 11.x core/modules/contextual/tests/src/FunctionalJavascript/ContextualLinksTest.php \Drupal\Tests\contextual\FunctionalJavascript\ContextualLinksTest::testContextualLinksClick()

Tests clicking contextual links.

File

core/modules/contextual/tests/src/FunctionalJavascript/ContextualLinksTest.php, line 72

Class

ContextualLinksTest
Tests the UI for correct contextual links.

Namespace

Drupal\Tests\contextual\FunctionalJavascript

Code

public function testContextualLinksClick() {
    $this->container
        ->get('module_installer')
        ->install([
        'contextual_test',
    ]);
    // Test clicking contextual link without toolbar.
    $this->drupalGet('user');
    $this->assertSession()
        ->assertWaitOnAjaxRequest();
    $this->clickContextualLink('#block-branding', 'Test Link');
    $this->assertSession()
        ->pageTextContains('Everything is contextual!');
    // Test click a contextual link that uses ajax.
    $this->drupalGet('user');
    $this->assertSession()
        ->assertWaitOnAjaxRequest();
    $current_page_string = 'NOT_RELOADED_IF_ON_PAGE';
    $this->getSession()
        ->executeScript('document.body.appendChild(document.createTextNode("' . $current_page_string . '"));');
    $this->clickContextualLink('#block-branding', 'Test Link with Ajax');
    $this->assertNotEmpty($this->assertSession()
        ->waitForElementVisible('css', '#drupal-modal'));
    $this->assertSession()
        ->elementContains('css', '#drupal-modal', 'Everything is contextual!');
    // Check to make sure that page was not reloaded.
    $this->assertSession()
        ->pageTextContains($current_page_string);
    // Test clicking contextual link with toolbar.
    $this->container
        ->get('module_installer')
        ->install([
        'toolbar',
    ]);
    $this->grantPermissions(Role::load(Role::AUTHENTICATED_ID), [
        'access toolbar',
    ]);
    $this->drupalGet('user');
    $this->assertSession()
        ->assertWaitOnAjaxRequest();
    // Click "Edit" in toolbar to show contextual links.
    $this->getSession()
        ->getPage()
        ->find('css', '.contextual-toolbar-tab button')
        ->press();
    $this->clickContextualLink('#block-branding', 'Test Link', FALSE);
    $this->assertSession()
        ->pageTextContains('Everything is contextual!');
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.