Commit Graph

539 Commits

Author SHA1 Message Date
Amaia Anabitarte 248d4ff200 MDL-70732 behat: Adding second parameter to ExpectationException() 2021-02-05 11:01:22 +01:00
Andrew Nicols bead2a1d96 MDL-66979 behat: Add a step to set a timeout factor for a test 2021-01-29 14:15:24 +08:00
Eloy Lafuente (stronk7) adc8204a83 MDL-66979 behat: Goutte driver doesn't implement setTimeouts()
Also, change:

get_real_timeout(30000)

to:

get_real_timeout(30) * 1000

because the original functions are defined to use seconds, and
having the 1000 around will help us detecting cases in the case
of a hypothetical review of uses.
2021-01-29 14:15:20 +08:00
Andrew Nicols 5d8e4e9fd4 MDL-66979 behat: Set script timeout with timeout factor 2021-01-28 15:27:50 +08:00
Andrew Nicols 991c8a9e78 MDL-66979 behat: Handle driver stop failure properly
An case was found where the webdriver stop() call could fail in an
AfterScenario hook, leading to a complete rerun if no other errors were
experienced.
2021-01-28 15:07:52 +08:00
Andrew Nicols 0121d366bf MDL-66979 behat: Scroll nodes into view before hover
The W3C Specification does not require that a NodeElement be in the
current viewport before triggering a mouseOver. As a result the
mouseOver will generate an Exception because the element is not in the
viewport, and the X/Y co-ordinates are invalid.

To handle this the node is scrolled into view.
2021-01-22 14:52:10 +08:00
Andrew Nicols 6a2a2e957b MDL-66979 behat: Fix window switching
Normalise switching of window contexts by setting the main window name
to a null.

Where the window has no name (null/empty), then the root context is
selected.
2021-01-22 14:52:10 +08:00
Andrew Nicols 2a969d891a MDL-66979 behat: iFrames must have a name for switchTo
The W3C WebDriver protocol supports switching of contexts using a named
context, and not the class asscoiated with that context.
2021-01-22 14:52:10 +08:00
Andrew Nicols 50b9866e54 MDL-66979 behat: Core updates for W3C WebDriver
This commit updates core Behat features to make use of the
php-webdriver/webdriver library instead of the legacy Instaclick
library.

Most of these changes relate to use of features of WebDriver which we
are required to use directly rather than through the Mink Driver.
2021-01-22 14:52:09 +08:00
Sara Arjona 8099deda48 Merge branch 'MDL-69107-master-2' of git://github.com/andrewnicols/moodle 2020-12-18 15:22:09 +01:00
Andrew Nicols 31402aa406 MDL-69107 user: Fix autocomplete usages 2020-12-16 07:50:56 +08:00
Andrew Nicols f07d3b71d2 MDL-69107 form_autocomplete: Rewrite item selection
The form_autocomplete is essentially a custom element. Unfortunately the
`setValue()` function in Mink has undesired actions so it is necessary
to write our own handling for it.

The standard Mink `setValue()` function focuses the element, sets a
value, and then blurs the element. In the case of the autocomplete this
can cause the autocomplete suggestions list to be closed in some
situations. Instead of using the setValue we click, and type the value,
but do not immediately blur.
2020-12-15 09:08:05 +08:00
Sara Arjona a7d39bc3bd Merge branch 'MDL-70397-master' of git://github.com/andrewnicols/moodle 2020-12-14 17:11:46 +01:00
Andrew Nicols aba763fdc0 MDL-70397 behat: Prevent browser restarting after initial start 2020-12-04 12:05:39 +08:00
Adrian Greeve ef4a0fc128 Merge branch 'MDL-70167-master' of git://github.com/andrewnicols/moodle 2020-12-03 10:09:47 +08:00
Peter Dias 3f934e4abd MDL-65215 core: Deprecate i_dock_block 2020-11-24 10:02:00 +08:00
Andrew Nicols 9d6413d16d MDL-70167 behat: Rewrite attribute check steps
This commit updates the following steps to use the
`the_attribute_of_should_be_set` step under the hood:
- the [element] [type] should be disabled
- the [element] [type] should be enabled
- the [element] [type] should be readonly
- the [element] [type] should not be readonly

This reduces unnecssary code duplication.
2020-11-23 11:02:36 +08:00
Andrew Nicols 7d70165c25 MDL-70167 behat: Boolean attributes should either exist or not 2020-11-23 11:02:36 +08:00
Andrew Nicols ba34d6e225 MDL-70148 behat: Update steps for keyboard 2020-11-17 15:14:43 +08:00
Andrew Nicols 9c35ea1040 MDL-70148 behat: Add steps to send keys without an element 2020-11-17 15:14:43 +08:00
Eloy Lafuente (stronk7) 74ee34fd87 MDL-69521 core: Move all comments in code from 4.1 to 3.11 2020-09-08 18:59:30 +02:00
Andrew Nicols 1736d2e66f Merge branch 'MDL-69421-master' of git://github.com/noeldemartin/moodle 2020-08-13 09:35:37 +08:00
Noel De Martin b421039a5c MDL-69421 behat: Revert app behat navigation to call session visit 2020-08-06 12:08:43 +02:00
Andrew Nicols 41eaa09bbe MDL-67687 behat: Make axe tests optional 2020-08-04 18:56:57 +08:00
Andrew Nicols 9d47a69094 MDL-67687 behat: Add axe web accessibility tool integration 2020-08-04 18:56:06 +08:00
Andrew Nicols b284293402 MDL-69138 behat: Update session->visit() to use visit step 2020-07-22 16:43:08 +08:00
Andrew Nicols d61fa24239 MDL-69138 behat: Add "I visit :localurl" step 2020-07-22 16:43:08 +08:00
Eloy Lafuente (stronk7) 8e44da5653 Merge branch 'MDL-69160-master' of git://github.com/andrewnicols/moodle 2020-07-21 23:29:29 +02:00
Adrian Greeve 17e99314a2 Merge branch 'MDL-67657-master' of git://github.com/andrewnicols/moodle 2020-07-21 14:47:14 +08:00
Eloy Lafuente (stronk7) a16ab5697d Merge branch 'MDL-69278-master' of git://github.com/andrewnicols/moodle 2020-07-18 11:55:48 +02:00
Andrew Nicols 083604ea09 MDL-67657 behat: Open course with editing using URL
This is a huge performance improvement for behat.

The current set of steps loads the page
It then looks for the Classic/Clean version of the settings menu
If it fails to find it looks for the Boost Cog
Then it clicks the "Turn editing on" button

This can take a substantial period.

We do not actually need to run these steps as we are able to jump
straight to the URL. We already have access to the sesskey value
required to do this.

There is not loss in testing functionality because the actual testing of
the Turn editing functionality is tested in other places sufficiently.
2020-07-16 11:06:43 +08:00
Andrew Nicols cd6eadd407 MDL-67657 behat: Convert existing uses of executeScript 2020-07-16 11:06:31 +08:00
Andrew Nicols 05f23d5a2b MDL-69278 behat: Correct variable name 2020-07-16 08:29:22 +08:00
Andrew Nicols 0d751c196b MDL-69278 behat: Mark tests as failed when unable to start Session 2020-07-16 08:29:22 +08:00
Andrew Nicols b49cb92e82 MDL-69068 behat: New step to support singular generators 2020-07-15 15:27:31 +08:00
Andrew Nicols 2c37677635 MDL-69160 behat: Add form field setter step 2020-07-13 14:22:31 +08:00
Jake Dallimore 0ad85f4148 Merge branch 'MDL-69232-master' of git://github.com/andrewnicols/moodle 2020-07-10 15:12:44 +08:00
Andrew Nicols 4df5ee039a MDL-69232 behat: Simplify hooks
The behat hooks were needlessly complicated which made them much harder
to read, and understand, leading to bugs during development.

These have been significantly simplified to favour clarity over
overloading.
2020-07-10 08:40:30 +08:00
Andrew Nicols 5306f2f2b9 MDL-69232 behat: Make selenium start more fault tolerant
The session was previously only started once, but has now been moved to
restart between each test. Because of this the `$session->start()` is
now called more frequently which exposes a pre-existing issue whereby
Selenium will periodically fail to start.

When the session was only started at the beginning of the test, and at
occasional other times, it made sense to always stop the test runner
because it signified an issue with obtaining the session at all.

Since the session is restarted more frequently, and now between every
test, it no longer makes sense to do this. The test should only be
_stopped_ if the first attempt to obtain the Session fails. Once a
Session has been retrieved at least once it no longer makes sense to
assume that the failure was a configuration failure, but a connection
failure. Therefore subsequent tests should be attempted.
2020-07-10 08:40:30 +08:00
Andrew Nicols 5e99058860 MDL-69232 behat: Add debugging information to Selenium fails 2020-07-09 09:30:15 +08:00
Andrew Nicols 41426e0aa4 MDL-69232 behat: Move suite tests to BeforeSuite hook 2020-07-09 09:27:11 +08:00
Jake Dallimore 68e240284c Merge branch 'MDL-63004' of https://github.com/Chocolate-lightning/moodle 2020-07-06 11:55:12 +08:00
Mathew May f87f23777f MDL-63004 behat: Final removal of i_navigate_to_node_in 2020-07-06 11:39:13 +08:00
Jake Dallimore 6ceba9e0e8 Merge branch 'MDL-69136-master' of git://github.com/andrewnicols/moodle 2020-07-06 10:44:10 +08:00
Andrew Nicols d128bf726e MDL-69136 behat: Improve reliability of navigation steps 2020-06-29 11:36:36 +08:00
Andrew Nicols aacfff0bc8 MDL-69072 behat: Remove restart_browser_after feature
This is no longer required as the Mink session is restarted after every
test regardless.
2020-06-29 11:05:53 +08:00
Andrew Nicols 675e981004 MDL-69072 behat: Relaunch browser session between scenarios 2020-06-26 21:17:22 +08:00
Andrew Nicols c7fb9fe55a MDL-66568 behat: Reset theme CSS between scenarios 2020-06-17 07:46:23 +08:00
Shamim Rezaie 292a67aede MDL-68991 core: Prevent popup blockers blocking feedback window
Some browsers like Firefox are very inflexible with window.open()
and block it if it is not instantly invoked after the user click.

Also according to https://stackoverflow.com/a/6807615 it is best
practice to replace self:: with static::
2020-06-10 16:10:53 +10:00
Shamim Rezaie 4cdcd23fb2 MDL-68931 core: No feedback link on footer if the feature is disabled 2020-06-10 16:10:53 +10:00