Mercurial > hg > isophonics-drupal-site
view core/modules/contextual/tests/src/FunctionalJavascript/ContextualLinkClickTrait.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children | c2387f117808 |
line wrap: on
line source
<?php namespace Drupal\Tests\contextual\FunctionalJavascript; /** * Functions for testing contextual links. */ trait ContextualLinkClickTrait { /** * Clicks a contextual link. * * @param string $selector * The selector for the element that contains the contextual link. * @param string $link_locator * The link id, title, or text. * @param bool $force_visible * If true then the button will be forced to visible so it can be clicked. */ protected function clickContextualLink($selector, $link_locator, $force_visible = TRUE) { if ($force_visible) { $this->toggleContextualTriggerVisibility($selector); } $element = $this->getSession()->getPage()->find('css', $selector); $element->find('css', '.contextual button')->press(); $element->findLink($link_locator)->click(); if ($force_visible) { $this->toggleContextualTriggerVisibility($selector); } } /** * Toggles the visibility of a contextual trigger. * * @param string $selector * The selector for the element that contains the contextual link. */ protected function toggleContextualTriggerVisibility($selector) { // Hovering over the element itself with should be enough, but does not // work. Manually remove the visually-hidden class. $this->getSession()->executeScript("jQuery('{$selector} .contextual .trigger').toggleClass('visually-hidden');"); } }