nextcloud/tests/acceptance
Daniel Calviño Sánchez 9313c9797f Add automatic handling of common command failures of Mink elements
Commands executed on Mink elements may fail for several reasons.
ElementWrapper is introduced to automatically handle some of those
situations, like StaleElementReference exceptions and ElementNotVisible
exceptions.

StaleElementReference exceptions are thrown when the command is executed
on an element that is no longer attached to the DOM. When that happens
the ElementWrapper finds again the element and executes the command
again on the new element.

ElementNotVisible exceptions are thrown when the command requires the
element to be visible but the element is not. When that happens the
ElementWrapper waits for the element to be visible before executing the
command again.

These changes are totally compatible with the current acceptance tests.
They just make the tests more robust, but they do not change their
behaviour. In fact, this should minimize some of the sporadic failures
in the acceptance tests caused by their concurrent nature with respect
to the web browser executing the commands.

However, the ElementWrapper is not a silver bullet; it handles the most
common situations, but it does not handle every possible scenario. For
example, the acceptance tests would still fail sporadically if an
element can become staled several times in a row (uncommon) or if it
does not become visible before the timeout expires (which could still
happen in a loaded system even if the components under test work right,
but obviously it is not possible to wait indefinitely for them).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2017-05-06 12:37:55 +02:00
..
config Add acceptance tests for sharing password protected links 2017-04-24 11:33:07 +02:00
features Add automatic handling of common command failures of Mink elements 2017-05-06 12:37:55 +02:00
composer.json Move acceptance tests from build/acceptance to tests/acceptance 2017-04-21 14:44:29 +02:00
installAndConfigureServer.sh Make test passwords valid for the password_policy app 2017-04-21 14:47:44 +02:00
run-local.sh Add option to acceptance test runners to set a custom timeout multiplier 2017-05-03 23:18:40 +02:00
run.sh Add option to acceptance test runners to set a custom timeout multiplier 2017-05-03 23:18:40 +02:00