MDL-58428 theme: Shift templates ready for Bootstrapbase removal
[moodle.git] / theme / bootstrapbase / tests / behat / behat_theme_bootstrapbase_behat_action_menu.php
@@ -17,7 +17,7 @@
 /**
  * Steps definitions to open and close action menus (overrides).
  *
- * @package    core
+ * @package    theme_bootstrapbase
  * @category   test
  * @copyright  2016 Damyon Wiese
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
@@ -30,19 +30,24 @@ require_once(__DIR__ . '/../../../../lib/tests/behat/behat_action_menu.php');
 /**
  * Steps definitions to open and close action menus (overrides).
  *
- * @package    core
+ * @package    theme_bootstrapbase
  * @category   test
  * @copyright  2016 Damyon Wiese
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-class behat_theme_boost_behat_action_menu extends behat_action_menu {
+class behat_theme_bootstrapbase_behat_action_menu extends behat_action_menu {
 
     public function i_open_the_action_menu_in($element, $selectortype) {
+        if (!$this->running_javascript()) {
+            // Action menus automatically expand in a visible list of actions when Javascript is disabled.
+            return;
+        }
         // Gets the node based on the requested selector type and locator.
-        $node = $this->get_node_in_container("css_element", "[role=button][aria-haspopup=true]", $selectortype, $element);
+        $node = $this->get_node_in_container("css_element", "[role=menuitem][aria-haspopup=true]", $selectortype, $element);
 
         // Check if it is not already opened.
-        if ($node->getAttribute('aria-expanded') === 'true') {
+        $menunode = $this->find('css', '[aria-labelledby='.$node->getAttribute('id').']');
+        if ($menunode->getAttribute('aria-hidden') === 'false') {
             return;
         }
 
@@ -50,13 +55,15 @@ class behat_theme_boost_behat_action_menu extends behat_action_menu {
         $node->click();
     }
 
-    public function i_choose_in_the_open_action_menu($menuitemstring) {
+    public function i_choose_in_the_open_action_menu($linkstring) {
         if (!$this->running_javascript()) {
             throw new DriverException('Action menu steps are not available with Javascript disabled');
         }
         // Gets the node based on the requested selector type and locator.
-        $menuselector = ".moodle-actionmenu .dropdown.show .dropdown-menu";
-        $node = $this->get_node_in_container("link", $menuitemstring, "css_element", $menuselector);
+        $node = $this->get_node_in_container("link",
+                $linkstring,
+                "css_element",
+                ".moodle-actionmenu [role=menu][aria-hidden=false]");
         $this->ensure_node_is_visible($node);
         $node->click();
     }