function DuplicateContextualLinksTest::testSameContextualLinks

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

Tests the contextual links with same id.

File

core/modules/contextual/tests/src/FunctionalJavascript/DuplicateContextualLinksTest.php, line 36

Class

DuplicateContextualLinksTest
Tests the UI for correct contextual links.

Namespace

Drupal\Tests\contextual\FunctionalJavascript

Code

public function testSameContextualLinks() : void {
  $this->drupalPlaceBlock('views_block:contextual_recent-block_1', [
    'id' => 'first',
  ]);
  $this->drupalPlaceBlock('views_block:contextual_recent-block_1', [
    'id' => 'second',
  ]);
  $this->drupalCreateContentType([
    'type' => 'page',
  ]);
  $this->drupalCreateNode();
  $this->drupalLogin($this->drupalCreateUser([
    'access content',
    'access contextual links',
    'administer nodes',
    'administer blocks',
    'administer views',
    'edit any page content',
  ]));
  // Ensure same contextual links work correct with fresh and cached page.
  foreach ([
    'fresh',
    'cached',
  ] as $state) {
    $this->drupalGet('user');
    $contextual_id = '[data-contextual-id^="node:node=1"]';
    $this->assertJsCondition("(typeof jQuery !== 'undefined' && jQuery('[data-contextual-id]:empty').length === 0)");
    $this->getSession()
      ->executeScript("jQuery('#block-first {$contextual_id} .trigger').trigger('click');");
    $contextual_links = $this->assertSession()
      ->waitForElementVisible('css', "#block-first {$contextual_id} .contextual-links");
    $this->assertTrue($contextual_links->isVisible(), "Contextual links are visible with {$state} page.");
  }
}

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