Skip to content

Commit

Permalink
MDL-49412 Behat: Add a 'I follow "x" in the user menu step'
Browse files Browse the repository at this point in the history
Part of MDL-45774.
  • Loading branch information
Damyon Wiese authored and abgreeve committed Apr 10, 2015
1 parent 25c634d commit 7b05a0f
Showing 1 changed file with 31 additions and 2 deletions.
33 changes: 31 additions & 2 deletions lib/tests/behat/behat_navigation.php
Expand Up @@ -27,8 +27,10 @@

require_once(__DIR__ . '/../../behat/behat_base.php');

use Behat\Behat\Context\Step\Given as Given,
Behat\Mink\Exception\ExpectationException as ExpectationException;
use Behat\Behat\Context\Step\Given as Given;
use Behat\Mink\Exception\ExpectationException as ExpectationException;
use Behat\Mink\Exception\DriverException as DriverException;
use Behat\Behat\Context\Step\When as When;

/**
* Steps definitions to navigate through the navigation tree nodes.
Expand Down Expand Up @@ -135,6 +137,33 @@ public function navigation_node_should_not_be_expandable($nodetext) {
return true;
}

/**
* Click on an entry in the user menu.
* @Given /^I follow "(?P<nodetext_string>(?:[^"]|\\")*)" in the user menu$/
*
* @throws ExpectationException
* @param string $nodetext
* @return bool|void
*/
public function i_follow_in_the_user_menu($nodetext) {

// The user menu is broken without javascript.
if (!$this->running_javascript()) {
throw new DriverException('I follow in the user menu step is not available with Javascript disabled');
}

$steps = array();

$xpath = "//div[@class='usermenu']//a[contains(concat(' ', @class, ' '), ' toggle-display ')]";
$csspath = ".usermenu [data-rel='menu-content']";

$steps[] = new When('I click on "'.$xpath.'" "xpath_element"');
$steps[] = new When('I click on "'.$nodetext.'" "link" in the "'.$csspath.'" "css_element"');

return $steps;

}

/**
* Expands the selected node of the navigation tree that matches the text.
* @Given /^I expand "(?P<nodetext_string>(?:[^"]|\\")*)" node$/
Expand Down

0 comments on commit 7b05a0f

Please sign in to comment.