public function ContextualLinksTest::testContextualLinksClick in Drupal 9
Same name and namespace in other branches
- 8 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 69
Class
- ContextualLinksTest
- Tests the UI for correct contextual links.
Namespace
Drupal\Tests\contextual\FunctionalJavascriptCode
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!');
}