Commit Graph

74 Commits

Author SHA1 Message Date
Paul Holden 58d9babe56 MDL-79629 javascript: native promises enhancing autocomplete module.
Preserve existing `enhance` method return of jQuery style promises to
allow calling code to continue relying on that (e.g. when calling old
style `.done` and `.fail`).

Co-authored-by: Andrew Nicols <andrew@nicols.co.uk>
2023-11-08 20:05:35 +00:00
Andrew Nicols c7b1cf2651 MDL-78251 tiny: Reduce use of UI for setting test expectations 2023-08-21 20:23:19 +08:00
sam marshall b639c1455a MDL-77092 Behat: Expand all fieldsets fails with single fieldset
The Behat step to expand all fieldsets did not work if the page
contains only one fieldset.
2023-01-31 13:56:04 +00:00
Marina Glancy 8d86f30351 MDL-76490 behat: correct step for opening autocomplete in container. 2022-12-05 14:01:55 +00:00
Mihail Geshoski 460744a6a6 MDL-75153 form: Behat support for group structures in select menu field
Adds behat support for group structures in the select menu field. When
looking for a particular option you can further specify the group under
which this option should be located by using the '>' delimiter
(e.g. "Group name > Option name"). In addition to that, this commit
intorduces new step definition which can be used to check whether the
select menu field contains a particular option.
2022-09-20 00:17:55 +08:00
sam marshall 49b4ff0f3e MDL-75608 Behat: Expand all fieldsets step fails with single fieldset 2022-08-30 11:16:55 +01:00
Marina Glancy 3dde885ec7 MDL-74502 behat: when setting a field value it may not be visible
for example in case of editor field, the textarea element is hidden by wysiwyg widget but we still need to be able to set it
2022-07-01 10:30:02 +02:00
Bas Brands 2faf5e8e48 MDL-72737 theme_boost: update for section header styles 2022-03-01 12:01:59 +01:00
Eric Merrill 59704c659c MDL-52724 editor_atto: Scrub atto html for invalid ol, ul, and li tags
Try to correct broken ul/ol/li tags, as they have an outsized impact
on course layout. Uses basic regex and loops to track open and closed
tags.

Also adds a deep clean option to the HTML cleaner, that runs less
frequent, more intensive cleanings. This is because normally _cleanHTML
gets called after each keystroke, which could cause problems with
large content on weak systems.

Behat changes are a fix for setting multiline strings in Atto, and
creating a multiline match step.
2021-04-08 15:20:24 -04: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 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 2c37677635 MDL-69160 behat: Add form field setter step 2020-07-13 14:22:31 +08:00
Tim Hunt 920a3500dc MDL-66835 behat: steps for setting/checking fields in containers 2019-10-09 13:26:05 +01:00
Huong Nguyen 0fc30827dc MDL-64032 enrol_manual: Make consistent the UI for setting enrolment
Add end date/duration for the UI for setting enrolment should be consistent
2019-07-23 14:21:43 +07:00
Tim Hunt d1ac356a8b MDL-60418 Behat: Fix broken docs links in Behat code. 2019-04-25 21:32:48 +01:00
sam marshall 05a5d547b3 MDL-64979 Behat: Add option to increase timeouts 2019-03-19 17:17:55 +00:00
Tim Hunt 1872cfcd2f MDL-61928 formslib: shortforms should work with non-editable forms 2018-04-10 17:39:49 +01:00
Andrew Nicols de316e8e3b MDL-60469 behat: Replace I press with I click on 2017-10-19 10:37:59 +08:00
Damyon Wiese d29be32000 MDL-59801 users: Behat fixes
Firstly - the list of roles to filter needs to be a combination of the assignable roles and the existing roles in the course.
Secondly - the auto-complete behat step needs to search for entire strings, not substrings.
2017-08-31 12:32:03 +08:00
Dan Poltawski 2ce7fad864 MDL-59548 behat: fix trailing whitespace 2017-07-17 11:30:28 +01: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 7cde2bb313 MDL-58948 behat: Chrome driver has unique xpaths
Chrome driver has unique xpaths for clicking on all the
show more links.  So clicking on the first xpath X times
does not work.
2017-06-28 12:50:44 -07:00
Rajesh Taneja acdda4f5f7 MDL-58056 behat: Ensure form element exists
Before getting form field, ensure node is
visible. Else it may fail to get form
field
2017-02-23 14:44:44 +08:00
Rajesh Taneja e259795c4f MDL-55329 behat: PyStrings should end with : (colon) 2016-08-09 14:22:21 +08:00
Rajesh Taneja ddf36bf5aa MDL-55258 behat: Set focus on button before clicking it
Set the focus on button to ensure it is in
viewport before clicking on it.
2016-07-19 09:23:44 +08:00
Rajesh Taneja 1ef6a5e30a MDL-53956 behat: Avoid before and after step and switch
After pressing the button, if system is slow then
after step and before step might fail as the window
is closed by then. Execute steps one after other
2016-05-18 10:41:01 +08:00
John Okely 01e8bfd745 MDL-45064 lti: LTI types in activity chooser 2016-04-13 08:30:04 +08:00
Rajesh Taneja eb9ca848fa MDL-53381 behat: Replaced chained steps with api.
Behat 3.x doesn't support chained steps and hence
this is first step to get rid of chained steps in core.
2016-04-06 11:32:49 +08:00
Rajesh Taneja 42ad096fdb MDL-46891 Behat: Added support for behat 3 2016-03-11 10:51:15 +08:00
rajesh Taneja 267033a979 MDL-50940 behat: Added support for field matching with xpath 2015-09-24 13:00:15 +08:00
Andrew Hancox d9fddb0bc6 MDL-50940 behat: Added ability to check field value by xpath 2015-09-23 12:45:00 +08:00
Eloy Lafuente (stronk7) 8a6900ff56 MDL-50919 tags: minor fixes and version bump
This fixes:
- An incorrect exception message.
- tablelib weird behavior creating up to
  pagesize empty rows.

Also forces a version bump so new webservices will become installed.
2015-09-02 13:25:44 +02:00
Marina Glancy 0cf7252406 MDL-50919 behat: Step for keypress event in behat 2015-09-02 14:15:09 +08:00
Rajesh Taneja bc7a59536b MDL-50481 behat: SingleSelect can be urlselect and should support id/name 2015-07-01 10:52:21 +08:00
Rajesh Taneja bf4c3ee0ff MDL-50481 behat: Press go button for given single select in non-js
For non-js mode, ensure we press the go button
for the specified single select, as there can be
multiple single selects on the page with go button
2015-06-19 12:00:11 +08:00
Andrew Nicols 2b964e1d24 MDL-50055 tests: Add new step to deal with Single Selects 2015-05-05 10:23:17 +08:00
John Okely 9776f3dcdb MDL-5583 behat: Add multiline version of 'And I set the field to' 2015-03-06 09:55:49 +08:00
Tim Hunt f0edd9d8f6 MDL-49205 behat: fix I set the field with xpath fail message. 2015-02-13 16:15:49 +00:00
Rajesh Taneja 20153f6308 MDL-48926 behat: No expand form required in non-js mode 2015-01-28 10:58:01 +10:30
Rajesh Taneja 6c396b6bb4 MDL-43835 behat: Added new step to set field with xpath defined 2014-06-25 12:54:52 +08:00
David Monllao af4830a257 MDL-44619 behat: Converting MDLQA-8
In a standard forum, students can start discussions
add replies and attach files to their posts.
2014-04-09 19:34:11 +07:00
Damyon Wiese 9f07f05a48 MDL-43883 Behat: Make Atto the default text editor and adjust behat to use it. 2014-03-26 10:01:49 +08:00
David Monllao decf1e14c8 MDL-43738 behat: More info about how to get/set fields 2014-02-27 18:22:06 +08:00
David Monllao a525414125 MDL-43738 behat: Updating steps definitions and deprecating methods 2014-02-27 18:22:05 +08:00
David Monllao c3f1e9532d MDL-43738 behat: Normalization and major refactoring of getters and setters
Every single step that sets or gets a value from a field
has been updated to follow the same behaviour both when
using it through a single step or through generic steps
like "I fill the moodle form with:", to resume all the
changes:
- Created a behat_form_group to re-guess the field type
  and act appropriately setting and getting it's value
- Normalize all getters and setters to use behat_form_field
  children
- Complete behat_form_checkbox to trigger the appropiate JS
  event needed to perform some JS scripts that are listening
- Refactor MDL-43713 multi-select changes and remove
  the two new steps introduced there as that behaviour can
  be managed from the generic getter
- Added a new step definition to check a capability permission
  as we changed the way radio buttons gets it's value
2014-02-27 18:22:03 +08:00
Eloy Lafuente (stronk7) 5f66d46e22 MDL-43713 behat: improve multi-select support
This patch implements:

1) Normalization of options. Before the patch options
in a select were being returned as "op1 op2 op3" by selenium
and "op1 op2 op3" by goutte. With the patch, those lists
are always returned like "op1, op2, op3". If real commas are
needed when handling multiple selects they should
be escaped with backslash in feature files.

2) Support for selecting multiple options. Before the patch
only one option was selected and a new selection was cleaning the
previous one. With the patch it's possible to pass "op1, op2" in
these steps:
  - I fill the moodle form with (table)
  - I select "OPTION_STRING" from "SELECT_STRING"

3) Ability to match multiple options in this steps. Before the
patch matching of multiple was really random, now every every
passed option ("opt1, opt2") is individually verified. It applies
to these 2 steps:
  - the "ELEMENT" select box should contain "OPTIONS"
  - the "ELEMENT" select box should not contain "OPTIONS"

4) Two new steps able to verify if a form have some options selected or no:
  - the "ELEMENT" select box should contain "OPTIONS" selected
  - the "ELEMENT" select box should contain "OPTIONS" not selected

5) Change get_value from xpath search to Mink's getValue() that is immediate
(does not need form submission) and works for all browsers but Safari, that
fails because of the extra ->click() issued.

Note all the changes 1-4 only affect to multi-select fields. Single
selects should continue working 100% the same.

The change 5) causes Safari to fail. The problem has been traced down to
the extra ->click() present there. Anyway there are not test cases
requiring that "immediate" evaluation right now. Only the special feature
file attached verifies it.
2014-02-27 18:21:43 +08:00
David Monllao 74c78e7483 MDL-43837 behat: Adding reduced timeouts
There are steps where we want to check that
"something" does not appear in the page
or does not exist. We still have to spin
but we don't need to spin for 6 seconds.
2014-02-24 09:43:24 +08:00
David Monllao fb99ef1ded MDL-42625 behat: Fixing failures
* Expanding fieldsets before setting the course format
* Ensure editors are loaded moved to expand_all_fieldsets
* Return true rather than false when JS is disabled and
  non-allowed steps should continue without throwing an
  exception.
* Submit create user form after editing it
2013-12-12 13:41:07 +08:00