Commit Graph

140 Commits

Author SHA1 Message Date
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 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
Andrew Nicols aba763fdc0 MDL-70397 behat: Prevent browser restarting after initial start 2020-12-04 12:05:39 +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 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 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
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
Eloy Lafuente (stronk7) 98f56e6f4b MDL-67317 behat: Ensure that on every scenario we have a session.
Before Mink 1.8.0, any call to getSession() used to auto-start
the session if it was not avaliable there. That always has been
an unsupported detail.

With https://github.com/minkphp/Mink/pull/705 new sessions aren't
auto-created anymore.

And we were relying on that.

So this is, simply about to explicitly create the new session
in our before_scenario stuff, to guarantee that it's always there.
2020-04-16 20:28:49 +02:00
Eloy Lafuente (stronk7) a1a5f87093 Merge branch 'MDL-67727-master' of git://github.com/crazyserver/moodle 2020-02-20 16:12:23 +01:00
Andrew Nicols afe13dfe9c MDL-67965 behat: Get theme-specific context classes correctly 2020-02-14 10:15:49 +08:00
Pau Ferrer Ocaña d60b6af9b9 MDL-67727 behat: Reset ionic app properly 2020-01-17 15:30:23 +01:00
Andrew Nicols e99a3cca93 MDL-66559 behat: Register component selectors earlier 2019-10-14 14:24:05 +08:00
Andrew Nicols cd5382b298 MDL-66559 behat: Update running suite 2019-10-14 14:17:47 +08:00
Andrew Nicols 61832faefd MDL-66559 behat: Allow per-component selectors and replacements 2019-10-11 12:58:16 +08:00
Andrew Nicols 0b07ea423b MDL-66675 behat: Add option to pause on behat failures 2019-09-19 07:30:15 +08:00
Tim Hunt d1ac356a8b MDL-60418 Behat: Fix broken docs links in Behat code. 2019-04-25 21:32:48 +01:00
Eloy Lafuente (stronk7) cd8e0cf210 Merge branch 'MDL-64979-master' of https://github.com/sammarshallou/moodle 2019-03-19 22:01:27 +01:00
sam marshall 05a5d547b3 MDL-64979 Behat: Add option to increase timeouts 2019-03-19 17:17:55 +00:00
Andrew Nicols bee40dbf27 MDL-63524 behat: Do not skip tests on Step 0 error 2019-03-11 11:18:40 +08:00
sam marshall a3892e0ef5 MDL-63977 Behat: Move app startup to before-scenario hook 2019-02-11 16:20:43 +00:00
sam marshall 66901a6968 MDL-63977 Behat: Add generic way to get tag list 2019-02-11 16:20:42 +00:00
Rajesh Taneja ada21cb0c8 MDL-57669 behat: Exit with error code if step undefined 2017-01-17 10:30:45 +08:00
Dan Poltawski 66677b7102 Merge branch 'wip-mdl-56211' of https://github.com/rajeshtaneja/moodle 2017-01-09 09:58:57 +00:00
Rajesh Taneja 484503da62 MDL-56211 behat: Add suite name to faildump path
If suite is not default then add suite name
to end of faildump file name
2017-01-06 09:18:52 +08:00
Rajesh Taneja 3b7a351d69 MDL-57494 behat: Fixed tags and removed reset in after_scenario
1. Added missing switch_window tags
2. Fixed switch_frame tags to use switch_iframe
3. Removed reset from after_scenario.
2016-12-22 12:42:39 +08:00
Rajesh Taneja 8c35e49b37 MDL-56898 behat: No need to trigger error, as it sometimes hangs behat 2016-11-24 07:31:38 +08:00
Rajesh Taneja 26fef01b6b MDL-56898 behat: Go to a non html page to avoid any unwanted ajax calls
After scenario is finished, go to README.txt, so
there is no JS/AJAX calls pending and site is ready
for reset before next scenario
2016-11-21 14:16:49 +08:00
Rajesh Taneja 1bce723292 MDL-56898 behat: Try data reset if it fails because of pending process 2016-11-21 09:25:35 +08:00
Rajesh Taneja 4422ffc55e MDL-56006 behat: Get proper feature and context for default theme
No matter which theme is default theme, overridden
context and blacklisted features should be respected
2016-10-25 10:15:20 +08:00
acorbier 1b372a77a5 MDL-56369 behat: Updated comment for i_look_for_exceptions
After upgrade to Behat 3.x, i_look_for_exception is called from
Moodle\BehatExtension\EventDispatcher\Tester\ChainedStepTester
2016-10-14 13:22:04 +08:00
Rajesh Taneja 904306389f MDL-55713 behat: Include named and partial behat selector files 2016-10-06 07:55:51 +08:00
Eloy Lafuente (stronk7) bd1edc8314 MDL-55713 behat: fix mistakenly broken php 2016-10-05 01:21:32 +02:00
Andrew Nicols 520071f0bd MDL-55713 behat: Adjust how NamedPartials are loaded 2016-10-04 09:18:02 +08:00
Eloy Lafuente (stronk7) 1138bbc69e Merge branch 'wip-mdl-55879' of https://github.com/rajeshtaneja/moodle 2016-09-28 20:05:08 +02:00
Damyon Wiese e584e6ae46 MDL-55071 theme/output: PHPCS fixes for new theme branch
Part of MDL-55071
2016-09-23 10:57:36 +01:00
Damyon Wiese 63e4df60f6 MDL-55839 behat: Behat fixes for theme_noname
This is a squash of many small fixes.
The list of changes are:

Initial set of behat selectors overrides required for new theme.

set core behat selectors if not overridden by theme

Remove pause

Fix for checkboxes not saving properly

Custom override for click in the user menu

Fix for behat guessing the field type.

Behat fix for guessing the correct field type.

Fix for missing closeElementBefore mforms mess.

Fix for textareas not displaying their contents.

Fix availability form element

Fix action menu selectors for activities in a course page

Fix textareas not retaining their values

Fix selector for blocks

I had to change the single select template to use an input instead of a button because of a
behat bug we have not tracked down yet.

Fix for frozen attribute in form elements

Use input instead of button while behat is still broken

Fix for navigation selector override

Behat selector fixes and multi-select fixes for templated select

Fix for configure blocks selector + booleans for autocomplete

Fixes for course_summary behat tests

Allow optgroups in single_select

Behat fixes for block_navigation

Fixes for url form element and activity chooser selectors

blocks_social - fix specific selector for behat

Fix export_for_template for selectgroups element.

Dont set empty id on the form

Fix direct call to behat_navigation in backup context

Checkbox empty value fix

Fix for assign grading panel popouts

file picker overrides to find a file manager in the page

Fix chat tests to use element name

Make selectors in mod_data behat less specific

MDL-55839: recent activity behat test relies on time()

SQUASH Honour mform element "class" attribute on the container

SQUASH Fixes for behat in mod_forum

SQUASH search form template showing value as text next to the button

SQUASH undo double selectgroup fix

SQUASH - The slightly different structure to action menus breaks course drag and drop

SQUASH Wrap loading icon in a span so the selector still works.

SQUASH Fix fragile javascript in report_loglive

SQUASH Fix tabtree, and selectgroups for mod_feedback

Also - do-not enhance the action menu - we are dropping support for this.

SQUASH Fix filemanager selector and pix_icon template for mod_forum tests.

SQUASH Fixes to breadcrumb and add formid to single select (fixes mod_glossary tests)

SQUASH lesson behat fixes. 95% of lesson styles were rubbish so they were disgarded.

SQUASH Fix lti behat tests - they were cheating and using a context step from quiz

SQUASH Behat fixes for quiz with new theme

SQUASH behat fixes for mod_wiki

SQUASH Workshop behat fixes

SQUASH Frozen form elements cannot use a readonly form element because it screws with the form JS "disabledIf" stuff.

SQUASH Fixes for grades behat tests

SQUASH behat fixes for groups

SQUASH blacklist action menu tests

SQUASH Fix for tag form element missing "manage standard tags" link

SQUASH Incomplete fixes for course behat tests

SQUASH behat fixes for badges

SQUASH Tags fixes for behat

SQUASH filepicker fixes for behat

SQUASH Abort guessing field type when we hit 'html'

SQUASH Fix for admin/tool/behat tests

SQUASH fix for admin tool behat tests

SQUASH fix for availabilty conditions hiding "aria-hidden" elements

SQUASH give the blocks more room. We get behat files because nav tree nodes are not in view

SQUASH Blocks fixed

Fix behaviour of unchecked checkboxes

SQUASH Remove incorrect step in user test

SQUASH behat fixes for course tests

Part of MDL-55071
2016-09-23 10:55:16 +01:00
Rajesh Taneja b468dbf533 MDL-55879 behat: Only hook BeforeSuite once
Before suite check and initialise behat env,
this is valid for the whole run, so no need
to do the inilialsation again
2016-09-07 14:24:09 +08:00
Rajesh Taneja 31c8fd3e83 MDL-55766 behat: set core behat selectors if not overridden by theme 2016-08-31 07:23:13 +08:00
Rajesh Taneja 3037458049 MDL-55072 behat: Fixed behat_selectors to be removed from contexts 2016-08-24 13:24:34 +08:00
David Monllao 30daa61475 Merge branch 'wip-mdl-55072' of https://github.com/rajeshtaneja/moodle 2016-08-24 09:26:29 +08:00
Rajesh Taneja b4bc4286bb MDL-55072 behat: Allow behat_selectors to be overridden
if theme/tests/behat/behat_theme_{THEME_NAME}_behat_selectors.php
file exits, and has class with same file name then we will
call behat_theme_{THEME_NAME}_behat_selectors::register_moodle_selectors()
to register theme specific selectors. If they are different
then core then they will override
2016-08-24 09:13:13 +08:00