87 Commits

Author SHA1 Message Date
Mihail Geshoski
3ac452047f MDL-47410 behat: Support selection from the datetime selector element
Adds behat support for selecting date and time from a datetime selector
element. The passed values should represent a textual date and time
description wrapped in '##' (e.g. '##first day of January 2020 08:00##',
'##1 Jan 2020 10:30##'). Also, the value 'disabled' is valid and can be
used to disable the datetime selector element.
2021-02-11 12:04:46 +08:00
Mihail Geshoski
b7bef8f297 MDL-47410 behat: Support date selection from the date selector element
Adds behat support for selecting a date from the date selector element.
The passed values should represent a textual date description wrapped
in '##' (e.g. '##first day of January 2020##', '##1 Jan 2020##'). Also,
the value 'disabled' is valid and can be used to disable the date
selector element.
2021-02-11 11:58:44 +08:00
Mihail Geshoski
dbb58833ba MDL-47410 behat: Move logic from guess_type() to a separate method
Moves the logic from guess_type() to a separate protected method
get_field_instance_for_element(). This would be quite useful for
form field classes as they can now use this method when there is
a need to determine the type of a given node element.
2021-02-11 11:40:30 +08:00
Andrew Nicols
c876d6298e MDL-66979 behat: availability field extends textarea
The availability behat field extends the textarea type, and therefore
needs to include this type.
2021-01-22 14:52:11 +08:00
Andrew Nicols
7d777911af MDL-66979 behat: Remove unused var 2021-01-22 14:52:11 +08:00
Andrew Nicols
d5f211d00f MDL-66979 behat: Whitespace fix 2021-01-22 14:52:11 +08:00
Andrew Nicols
afecc583aa MDL-66979 behat: Remove manually triggered events
Behat should not trigger Synthetic browser events. It is incorrect to do
so as the UI should be used to trigger events correctly.

The W3C WebDriver specification explicitly states when and where these
events will be triggered from (the browser) and therefore there is no
ambiguity and no need to synthetically trigger them from Behat.
2021-01-22 14:52:10 +08:00
Andrew Nicols
fd5621554a MDL-66979 behat: Update passwordunmask form field control
Update the passwordunmask form field type for behat to interact with the
form element as a human would rather than via synthetic event triggers.
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
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
Andrew Nicols
fd71823ec7 MDL-67668 behat: Add inplace editable field type
This commit promotes the Inplace Editable field to a first-class form
element by introducing a new partial selector for inplace editable
fields, and teaching the field manager how to recognise these, then
introducing a new field type which can handle setting values for this
field.
2020-11-23 09:01:19 +08:00
Andrew Nicols
ba34d6e225 MDL-70148 behat: Update steps for keyboard 2020-11-17 15:14:43 +08:00
Andrew Nicols
cd6eadd407 MDL-67657 behat: Convert existing uses of executeScript 2020-07-16 11:06:31 +08:00
Shamim Rezaie
58994fe8bb MDL-68353 test: Update filemanager/filepicker xpath selector 2020-05-29 14:50:35 +10:00
Shamim Rezaie
9b6efe3aea MDL-68353 test: get_field_locator to support custom field labels 2020-05-29 14:50:35 +10:00
Andrew Nicols
9b3343adc2 MDL-63996 behat: Fix multi-tag autocomplete usage 2019-12-16 13:57:00 +08:00
Shamim Rezaie
1d26a183bb MDL-66054 behat: typo fix 2019-07-02 04:04:28 +10:00
sam marshall
05a5d547b3 MDL-64979 Behat: Add option to increase timeouts 2019-03-19 17:17:55 +00:00
David Monllaó
7677a86cc0 Merge branch 'MDL-64570-master' of git://github.com/damyon/moodle 2019-02-19 06:45:21 +01:00
Damyon Wiese
2159983aff MDL-64570 accessibility: autocomplete user profile fields
Only if editing your own user details and not logged in as someone else.
2019-02-19 09:44:15 +08:00
Andrew Nicols
e994dea0b3 MDL-62514 behat: Rewrite handling of autocomplete
This includes a minor restructure of the autocomplete JS to make use of
promises and improve tracking of pending JS.

In particular it improves the way in which throttled text input is
handled to ensure that the behat does not continue until:
- typing is fully complete; and
- all possible ajax requests have been sent; and
- all possible ajax requests complete; and
- the suggestions are updated.

A number of conditions existed where behat would move on to the next
step too early in a race condition effect between Behat and Autocomplete.
2019-01-30 08:24:32 +08:00
Andrew Nicols
7bfb575f63 MDL-62514 behat: Add a wait_for_pending_js to form field 2019-01-30 08:24:32 +08:00
Marina Glancy
2abb1e888c MDL-60281 behat: remove unnecessary pre-check
These variables are strings, calling count() on string causes warning in PHP7.2
2017-10-16 09:37:19 +08:00
Dan Poltawski
c899bfb088 Merge branch 'MDL-59548-master' of git://github.com/damyon/moodle 2017-07-17 11:21:56 +01:00
Damyon Wiese
dda64b6f45 MDL-59548 behat: Helpers for autocomplete
Improve the helpers for autocomplete so that:
a) the set field for an auto complete will automatically close the suggestions list.
b) add a new helper to open the suggestions list
c) move the helper for clicking on an element in the suggestions list from tool_lp to core.
2017-07-17 11:10:15 +08:00
Mark Nielsen
b5be387556 MDL-58948 behat: conditionally execute MoodleSelenium2Driver
There is some specific code being executed that only exists
in the MoodleSelenium2Driver.  Conditionally execute this
code to make it compatible with other Mink drivers.
2017-06-28 12:50:44 -07:00
Mark Nielsen
f5459099ae MDL-58948 behat: catch ElementNotFoundException
Another valid exception that can be thrown from a Mink driver
is the ElementNotFoundException when an element has gone missing.
2017-06-28 12:50:11 -07:00
Rajesh Taneja
bd755b5317
MDL-57314 behat: Press enter after setting password unmask 2016-12-08 09:18:39 +08:00
Rajesh Taneja
45e862c4bd
MDL-56898 behat: Wait for pending JS after setting password 2016-11-22 11:20:30 +08:00
Andrew Nicols
ca25005c69 MDL-53048 form: Rewrite passwordunmask
This version:
* should work with the Behat Goutte driver
* should not suffer from password autofill anxiety
* should allow unmasking (and masking) of a password
* should allow editing of passwords in either masked, or unmasked form

AMOS BEGIN
 MOV [revealpassword,core_form],[passwordunmaskrevealhint,core_form]
AMOS END
2016-10-24 09:24:39 +08: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
9b9afffe5b
MDL-55288 forms: Set data attribute to form fields 2016-09-05 14:10:24 +08:00
Rajesh Taneja
fba0ac63b8 MDL-54589 behat: Added hack for some OS/browsers 2016-06-20 16:03:36 +08:00
Rajesh Taneja
3aaf98f62c MDL-54589 behat: Trigger change event after selecting option
After selecting option, some browsers need
explicit change event
2016-06-20 09:43:08 +08:00
Rajesh Taneja
921faad9ad MDL-53571 behat: Use Escaper for escaping
xpathLiteral has been depreacted, use Escaper instead
2016-04-06 15:38:31 +08:00
Rajesh Taneja
225265b03d MDL-53623 behat: catch expection if failed to trigger event
Inline editing element might hide before
event is triggred, so don't trigger exception
if exception happens
2016-03-29 09:52:37 +08:00
Rajesh Taneja
42ad096fdb MDL-46891 Behat: Added support for behat 3 2016-03-11 10:51:15 +08:00
Rajesh Taneja
d2ee22e744 MDL-27628 behat: Added delay to ensure the value is set.
After user type there is a 400ms delay, then search
Adding 2 sec delay to ensure search is finished before
click event is triggred
2016-03-10 13:17:11 +01:00
Rajesh Taneja
f7a73e196e MDL-52970 behat: For single select only click event is enough 2016-02-19 15:21:52 +08:00
Rajesh Taneja
e8ef0e4f63 MDL-52970 behat: don't set select value if already set
In FF 44.0, it fails to click on submit button if
select value is set to the original value
2016-02-19 15:21:51 +08:00
Marina Glancy
cdc5f9785b MDL-51802 core: new template for quick editing a title
convert editing tag name to use new template
2016-02-13 11:07:42 +08:00
rajesh Taneja
0db240c1dd MDL-51918 behat: Key press should be down-press-up
As we simulate real user key press event, the
event should down followed by press and then up key
2015-11-05 09:15:41 +08:00
Damyon Wiese
60a1ea56d9 MDL-51247 forms: All new aria-pimped autocomplete mform element.
Supports static list of options - or options fetched via ajax.
Has options for single,multi and tags support.
2015-10-14 16:22:44 +01:00
Marina Glancy
0cf7252406 MDL-50919 behat: Step for keypress event in behat 2015-09-02 14:15:09 +08:00
sam marshall
002ccdcf49 MDL-44725 Add Behat support for setting grouping condition (14)
Makes it possible to add a grouping condition when creating an
activity, using the Behat field type API. You can set the field
using a syntax 'Grouping: NAME' (at present, only groupings are
supported, obviously we could potentially extend this to add
support for other conditions if needed).

Tested in Firefox and Chrome in JS mode, and in non-JS mode.
2014-09-02 13:03:35 +01:00
Rajesh Taneja
955118d831 MDL-43835 behat: Fixed matches for select form field 2014-06-25 12:54:52 +08:00
Damyon Wiese
e3adee555b MDL-44871 Atto: Move custom select text step to atto specific step definition. 2014-06-11 15:29:20 +08:00
Damyon Wiese
7d8f825bbf MDL-44871 Atto behat tests: Modified the tests to work around focus bugs with workspaces
The main changes here are that the "select the text in" step was modified to select only the
first text node in the editor field, and to focus on it's parent instead of the entire editable div.

Some tests had to be modified to match the new behaviour, and another "real" bug was found in the table plugin.
2014-06-11 14:34:48 +08:00
Damyon Wiese
457a9fa6c5 MDL-44871 Behat: Add tests for Atto functionalities (some of them) 2014-06-10 14:42:00 +08:00