MDL-67813 core_filepicker: Handle ElementNotFoundException in behat step
authorMihail Geshoski <mihail@moodle.com>
Tue, 19 May 2020 06:24:55 +0000 (14:24 +0800)
committerMihail Geshoski <mihail@moodle.com>
Thu, 28 May 2020 04:06:31 +0000 (12:06 +0800)
Catches and handles ElementNotFoundException if thrown in the
i_should_see_elements_in_filepicker_repository() behat step in order to
enable the assertion that no elements exist in the repository content
area

repository/tests/behat/behat_filepicker.php

index 8ec12d5..2a56474 100644 (file)
@@ -28,6 +28,7 @@
 require_once(__DIR__ . '/../../../lib/behat/core_behat_file_helper.php');
 
 use Behat\Mink\Exception\ExpectationException as ExpectationException,
+    Behat\Mink\Exception\ElementNotFoundException as ElementNotFoundException,
     Behat\Gherkin\Node\TableNode as TableNode;
 
 /**
@@ -342,7 +343,12 @@ class behat_filepicker extends behat_base {
             "//div[contains(concat(' ', normalize-space(@class), ' '), ' fp-content ')]" .
             "//a[contains(concat(' ', normalize-space(@class), ' '), ' fp-file ')]";
 
-        $elements = $this->find_all('xpath', $xpath);
+        try {
+            $elements = $this->find_all('xpath', $xpath);
+        } catch (ElementNotFoundException $e) {
+            $elements = [];
+        }
+
         // Make sure the expected number is equal to the actual number of .fp-file elements.
         if (count($elements) != $expectedcount) {
             throw new ExpectationException("Found " . count($elements) .