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.
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.
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.
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
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.
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.
* 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
In general aiming for compatibility with multiple browsers,
firefox, chrome and phantomjs to be more specific.
* Removing hardcoded waits
* Adding @_alert, @_switch_window and @_switch_frame tags,
to label actions that different drivers have problems with.
* Adding missing @_files_upload and @_only_local tags to features that
uploads files.
* Fixing a few wait for page ready what specified miliseconds.
* New methods to ensure elements (usual selectors), sections and editors
are ready to interact with
* Changing the select an option implementation to deal with the different
drivers implementations when listening to JS events.
* Avoid waiting until Show more... links appears if we
already waited.
* Use collapse/expand button rather than clicking on
each of the form's fieldsets.
- Escaping steps arguments redirected to other steps
- Adding normalized-space() in all contains() assertions
- General xpaths review
- Convering provided xpath text strings to xpath literals
to avoid problems with arguments containing both single
quotes and double quotes