Reviewed: https://reviews.mahara.org/8116 Committed: https://git.mahara.org/mahara/mahara/commit/a25f4f11d35bf17d54acfb8010cd29e432fc86ea Submitter: Robert Lyon ([email protected]) Branch: 17.10_STABLE
commit a25f4f11d35bf17d54acfb8010cd29e432fc86ea Author: Cecilia Vela Gurovic <[email protected]> Date: Thu Oct 5 17:06:05 2017 +1300 Bug 1720269: old_raw patches for bugs: (General) Bug 1720264 Bug 1720235 Bug 1719736 Bug 1718821 Bug 1705126 Bug 1694908 Bug 1690687 Bug 1690232 Bug 1686843 Bug 1685041 Bug 1683561 Bug 1681987 Bug 1681934 Bug 1675223 Bug 1636064 Bug 1575512 Bug 1369569 Bug 692769 Also fixing up un-closed html tags in Bug 1701437 for raw and old raw behatnotneeded Change-Id: I8ac930ceebf78b4edad97289994318e7689a1e94 (cherry picked from commit 70ac7cec17e778da31d928ea37a7e2c7de13459f) -- You received this bug notification because you are a member of Mahara Contributors, which is subscribed to Mahara. Matching subscriptions: Subscription for all Mahara Contributors -- please ask on #mahara-dev or mahara.org forum before editing or unsubscribing it! https://bugs.launchpad.net/bugs/1575512 Title: Behat tests are failing due to not waiting for Javascript to finish Status in Mahara: Fix Committed Status in Mahara 17.10 series: Fix Committed Bug description: We're seeing an annoying number of Behat tests that are failing due to a race condition between Behat and the Javascript in the browser. Here's an example: http://test.mahara.org/job/mahara- gerrit/5558/console In that case, the test is failing in this part: 1. I press "Create folder" 2. And I follow "Folder1" The failure happens because Behat can't find a link named "Follow1" when it tries to carry out that step. The way it *should* work, is basically like this: 1. Behat step: I press "Create folder" 2. Behat web driver locates and presses the "Create folder" button. 3. The button press triggers a Pieform javascript method, which fires off an Ajax request to submit the form for creating a new folder. 4. The Ajax request is handled by a PHP script, which creates the artefact and sends back a success response, including updated HTML for what the file area should look like now. 5. Pieform Javascript receives the response from the Ajax script, and swaps the new HTML in place of the old HTML. The new HTML contains the link to the new folder. 6. Behat step: I follow "Folder1" 7. Behat web driver locates and clicks the link with text "Folder1". The race condition seems to happen because when you do the "I press" step (defined in \Behat\MinkExtension\Context\MinkContext) waits for the conclusion of any HTTP requests caused by the button press, but it doesn't wait for the Pieform callback to finish. The quick workaround for these is to add a "And I wait "1" seconds" step on affected tests. But it would be better to get a systemic fix to it. I think maybe the best thing to do, would be to change all the underlying "find" methods into spin functions, which, if they don't find the element, will wait up to 5 seconds to find it. Behat's inheritance structure for steps may make that tricky to do, though. To manage notifications about this bug go to: https://bugs.launchpad.net/mahara/+bug/1575512/+subscriptions _______________________________________________ Mailing list: https://launchpad.net/~mahara-contributors Post to : [email protected] Unsubscribe : https://launchpad.net/~mahara-contributors More help : https://help.launchpad.net/ListHelp

