MDL-49154 behat: step to type with focus on a given element
authorTim Hunt <T.J.Hunt@open.ac.uk>
Tue, 10 Feb 2015 14:10:20 +0000 (14:10 +0000)
committerTim Hunt <T.J.Hunt@open.ac.uk>
Thu, 12 Feb 2015 20:14:50 +0000 (20:14 +0000)
lib/tests/behat/behat_general.php

index d8d5264..e56b1c2 100644 (file)
@@ -382,6 +382,23 @@ class behat_general extends behat_base {
         $node->click();
     }
 
         $node->click();
     }
 
+    /**
+     * Simulate pressing a sequence of keys.
+     * @When /^I type "(?P<keys>(?:[^"]|\\")*)" into the "(?P<element_string>(?:[^"]|\\")*)" "(?P<selector_string>[^"]*)"$/
+     * @param string $keys the keys to press.
+     * @param string $element Element we look for
+     * @param string $selectortype The type of what we look for
+     */
+    public function i_type_into_the($keys, $element, $selectortype) {
+        $node = $this->get_selected_node($selectortype, $element);
+        $this->ensure_node_is_visible($node);
+        foreach (str_split($keys) as $key) {
+            $node->keyDown($key);
+            $node->keyPress($key);
+            $node->keyUp($key);
+        }
+    }
+
     /**
      * Drags and drops the specified element to the specified container. This step does not work in all the browsers, consider it experimental.
      *
     /**
      * Drags and drops the specified element to the specified container. This step does not work in all the browsers, consider it experimental.
      *