Commit Graph

22 Commits

Author SHA1 Message Date
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
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
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 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
Rajesh Taneja 955118d831 MDL-43835 behat: Fixed matches for select form field 2014-06-25 12:54:52 +08:00
David Monllao 8aff0eec9d MDL-43738 behat: Refactoring the field type guesser
The previous behaviour delegates the responsability
of overwriting the 3 public methods to the child
classes, now the field type or moodleform field is
guessed earlier in the execution flow.

Other changes introduced here:
- Fix wrong moodleform detection when there is a form
  in the page but the field we are dealing with is
  not inside it.
- Updating the last week feature files to these new
  step definitions.
- Some coding style changes.
2014-02-27 18:43:20 +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 405cdd0441 MDL-43951 behat: Fixing random failure
NodeElement->hasAttribute() (JS enabled) queries selenium
about whether it has any attribute or not, if due to an
AJAX request the field node changed selenium can not access
that node and throws an exception.
2014-02-03 13:59:12 +08:00
David Monllao afe9f42adb MDL-43173 behat: Thowing an exception if the JS is not ready 2014-01-03 11:27:54 +08:00
David Monllao fff500c727 MDL-42625 behat: Wrapping select an option extra actions in a try & catch
To select an option is specially painful, every browser
behaves differently and phantomjs just joined the party
throwing "Element does not exist in cache" random
exceptions that we need to catch.
2013-12-12 12:16:45 +01:00
David Monllao d1e55a47be MDL-42625 behat: Step definitions + related changes in features
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.
2013-12-06 13:10:24 +08:00
David Monllao 3897608152 MDL-39635 behat: XPath cleanups
- 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
2013-07-19 10:02:36 +02:00
David Monllao 1fb9715721 MDL-39051 behat: Fixing extra interactions
When the elements to interact with are not
available anymore.
2013-05-09 17:21:19 +08:00
David Monllao 28abad1ab2 MDL-39348 behat: Compatibility with Safari and IE
Also changing from SeleniumDriver checking
to GoutteDriver as is less probably to change
goutte than to change selenium.
2013-05-03 10:43:06 +08:00
David Monllao 23ebc481e7 MDL-37657 behat: Adding definitions related with forms 2013-01-29 15:31:26 +08:00