MDL-65831 behat: New steps to switch offline mode for moodle app behats
authorAmaia Anabitarte <amaia@moodle.com>
Fri, 31 May 2019 11:51:17 +0000 (13:51 +0200)
committerAmaia Anabitarte <amaia@moodle.com>
Mon, 29 Jul 2019 01:50:41 +0000 (09:50 +0800)
lib/tests/behat/app_behat_runtime.js
lib/tests/behat/behat_app.php

index 08ccc8c..3c9f3a4 100644 (file)
         var exactLabelMatches = [];
         var anyLabelMatches = [];
         findPossibleMatches('//*[@aria-label and contains(@aria-label, "' + escapedText + '")]' +
+                '| //a[@title and contains(@title, "' + escapedText + '")]' +
                 '| //img[@alt and contains(@alt, "' + escapedText + '")]', function(match) {
                     // Add to array depending on if it's an exact or partial match.
-                    var attributeData = match.getAttribute('aria-label') || match.getAttribute('alt');
+                    var attributeData = match.getAttribute('aria-label') ||
+                        match.getAttribute('title') ||
+                        match.getAttribute('alt');
                     if (attributeData.trim() === text) {
                         exactLabelMatches.push(match);
                     } else {
index fee3f56..aebbed1 100644 (file)
@@ -524,4 +524,15 @@ class behat_app extends behat_base {
         $this->getSession()->getDriver()->executeScript('window.close()');
         $this->getSession()->switchToWindow($names[0]);
     }
+
+    /**
+     * Switch navigator online mode.
+     *
+     * @Given /^I switch offline mode to "(?P<offline_string>(?:[^"]|\\")*)"$/
+     * @param string $offline New value for navigator online mode
+     * @throws DriverException If the navigator.online mode is not available
+     */
+    public function i_switch_offline_mode(string $offline) {
+        $this->getSession()->evaluateScript('appProvider.setForceOffline(' . $offline . ');');
+    }
 }