DuplicateContextualLinksTest.php

Same filename and directory in other branches
  1. 9 core/modules/contextual/tests/src/FunctionalJavascript/DuplicateContextualLinksTest.php
  2. 8.9.x core/modules/contextual/tests/src/FunctionalJavascript/DuplicateContextualLinksTest.php
  3. 10 core/modules/contextual/tests/src/FunctionalJavascript/DuplicateContextualLinksTest.php

Namespace

Drupal\Tests\contextual\FunctionalJavascript

File

core/modules/contextual/tests/src/FunctionalJavascript/DuplicateContextualLinksTest.php

View source
<?php

declare (strict_types=1);
namespace Drupal\Tests\contextual\FunctionalJavascript;

use Drupal\FunctionalJavascriptTests\WebDriverTestBase;

/**
 * Tests the UI for correct contextual links.
 *
 * @group contextual
 */
class DuplicateContextualLinksTest extends WebDriverTestBase {
  
  /**
   * {@inheritdoc}
   */
  protected static $modules = [
    'block',
    'contextual',
    'node',
    'views',
    'views_ui',
    'contextual_test',
  ];
  
  /**
   * {@inheritdoc}
   */
  protected $defaultTheme = 'stark';
  
  /**
   * Tests the contextual links with same id.
   */
  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.");
    }
  }

}

Classes

Title Deprecated Summary
DuplicateContextualLinksTest Tests the UI for correct contextual links.

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