MDL-49412 Behat: Add a 'I follow "x" in the user menu step'

Part of MDL-45774.
This commit is contained in:
Damyon Wiese 2015-04-02 15:38:28 +08:00 committed by Adrian Greeve
parent 25c634df29
commit 7b05a0feb6

View File

@ -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.
@ -135,6 +137,33 @@ class behat_navigation extends behat_base {
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$/