You are here

public function WysiwygSubContext::iClickTheElementInTheWysiwygEditor in Panopoly 7

Same name and namespace in other branches
  1. 8.2 modules/panopoly/panopoly_test/behat/steps/panopoly_test_wysiwyg.behat.inc \WysiwygSubContext::iClickTheElementInTheWysiwygEditor()

@When I click the :cssSelector element in the :instanceId WYSIWYG editor

File

modules/panopoly/panopoly_test/behat/steps/panopoly_test_wysiwyg.behat.inc, line 129
Provide Behat step-definitions for WYSIWYG editor.

Class

WysiwygSubContext

Code

public function iClickTheElementInTheWysiwygEditor($cssSelector, $instanceId) {
  $instance = $this
    ->getWysiwygInstance($instanceId);
  $editorType = $this
    ->getSession()
    ->evaluateScript("return {$instance}.editor");

  // TODO: This is tinyMCE specific. We should probably do a switch statement
  // based on $editorType.
  $editor_iframe_id = $instanceId . '_ifr';

  // This Javascript only works on Chrome - not Firefox.
  $javascript = "jQuery('#{$editor_iframe_id}').each(function() {";
  $javascript .= "  jQuery('{$cssSelector}', this.contentWindow.document || this.contentDocument).click();";
  $javascript .= "});";
  $this
    ->getSession()
    ->executeScript($javascript);
}