MDL-54656 behat: Skip test if db family is not mysql or postgres
authorRajesh Taneja <rajesh@moodle.com>
Thu, 4 Aug 2016 00:21:28 +0000 (08:21 +0800)
committerRajesh Taneja <rajesh@moodle.com>
Thu, 4 Aug 2016 00:46:04 +0000 (08:46 +0800)
lib/tests/behat/behat_general.php
mod/forum/tests/behat/advanced_search.feature

index f8c6cb6..1455857 100644 (file)
@@ -1559,4 +1559,27 @@ class behat_general extends behat_base {
         $node = $this->get_selected_node($selectortype, $element);
         $this->getSession()->getDriver()->post_key("\xEE\x80\x84", $node->getXpath());
     }
+
+    /**
+     * Checks if database family used is using one of the specified, else skip. (mysql, postgres, mssql, oracle, etc.)
+     *
+     * @Given /^database family used is one of the following:$/
+     * @param TableNode $databasefamilies list of database.
+     * @return void.
+     * @throws \Moodle\BehatExtension\Exception\SkippedException
+     */
+    public function database_family_used_is_one_of_the_following(TableNode $databasefamilies) {
+        global $DB;
+
+        $dbfamily = $DB->get_dbfamily();
+
+        // Check if used db family is one of the specified ones. If yes then return.
+        foreach ($databasefamilies->getRows() as $dbfamilytocheck) {
+            if ($dbfamilytocheck[0] == $dbfamily) {
+                return;
+            }
+        }
+
+        throw new \Moodle\BehatExtension\Exception\SkippedException();
+    }
 }
index 5946e7f..e38968e 100644 (file)
@@ -56,7 +56,10 @@ Feature: The forum search allows users to perform advanced searches for forum po
     And I should not see "My subjective"
 
   Scenario: Perform an advanced search using whole words
-    Given I log in as "student1"
+    Given database family used is one of the following:
+      | mysql |
+      | postgres |
+    And I log in as "student1"
     And I follow "Course 1"
     And I follow "Announcements"
     And I press "Search forums"