Verify WaitFor::element... results with an assertion
WaitFor::element... calls only perform the waiting and return whether the condition succeeded or not, but that result needs to be explicitly checked to prevent further steps from being executed if the wait failed. Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
This commit is contained in:
parent
8077dbf097
commit
dd1a554c79
|
@ -112,14 +112,24 @@ class AppNavigationContext implements Context, ActorAwareInterface {
|
||||||
* @Then I see that the section :section is shown
|
* @Then I see that the section :section is shown
|
||||||
*/
|
*/
|
||||||
public function iSeeThatTheSectionIsShown($section) {
|
public function iSeeThatTheSectionIsShown($section) {
|
||||||
WaitFor::elementToBeEventuallyShown($this->actor, self::appNavigationSectionItemFor($section));
|
if (!WaitFor::elementToBeEventuallyShown(
|
||||||
|
$this->actor,
|
||||||
|
self::appNavigationSectionItemFor($section),
|
||||||
|
$timeout = 10 * $this->actor->getFindTimeoutMultiplier())) {
|
||||||
|
PHPUnit_Framework_Assert::fail("The section $section in the app navigation is not shown yet after $timeout seconds");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Then I see that the section :section is not shown
|
* @Then I see that the section :section is not shown
|
||||||
*/
|
*/
|
||||||
public function iSeeThatTheSectionIsNotShown($section) {
|
public function iSeeThatTheSectionIsNotShown($section) {
|
||||||
WaitFor::elementToBeEventuallyNotShown($this->actor, self::appNavigationSectionItemFor($section));
|
if (!WaitFor::elementToBeEventuallyNotShown(
|
||||||
|
$this->actor,
|
||||||
|
self::appNavigationSectionItemFor($section),
|
||||||
|
$timeout = 10 * $this->actor->getFindTimeoutMultiplier())) {
|
||||||
|
PHPUnit_Framework_Assert::fail("The section $section in the app navigation is still shown after $timeout seconds");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -95,6 +95,11 @@ class AppSettingsContext implements Context, ActorAwareInterface {
|
||||||
* @Then I see that the settings are opened
|
* @Then I see that the settings are opened
|
||||||
*/
|
*/
|
||||||
public function iSeeThatTheSettingsAreOpened() {
|
public function iSeeThatTheSettingsAreOpened() {
|
||||||
WaitFor::elementToBeEventuallyShown($this->actor, self::appSettingsContent());
|
if (!WaitFor::elementToBeEventuallyShown(
|
||||||
|
$this->actor,
|
||||||
|
self::appSettingsContent(),
|
||||||
|
$timeout = 10 * $this->actor->getFindTimeoutMultiplier())) {
|
||||||
|
PHPUnit_Framework_Assert::fail("The app settings are not open yet after $timeout seconds");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -164,7 +164,12 @@ class AppsManagementContext implements Context, ActorAwareInterface {
|
||||||
* @Then /^I see that there some apps listed from the app store$/
|
* @Then /^I see that there some apps listed from the app store$/
|
||||||
*/
|
*/
|
||||||
public function iSeeThatThereSomeAppsListedFromTheAppStore() {
|
public function iSeeThatThereSomeAppsListedFromTheAppStore() {
|
||||||
WaitFor::elementToBeEventuallyShown($this->actor, self::appEntries(), 10);
|
if (!WaitFor::elementToBeEventuallyShown(
|
||||||
|
$this->actor,
|
||||||
|
self::appEntries(),
|
||||||
|
$timeout = 10 * $this->actor->getFindTimeoutMultiplier())) {
|
||||||
|
PHPUnit_Framework_Assert::fail("The apps from the app store were not shown yet after $timeout seconds");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -54,13 +54,23 @@ class DialogContext implements Context, ActorAwareInterface {
|
||||||
* @Then I see that the confirmation dialog is shown
|
* @Then I see that the confirmation dialog is shown
|
||||||
*/
|
*/
|
||||||
public function iSeeThatTheConfirmationDialogIsShown() {
|
public function iSeeThatTheConfirmationDialogIsShown() {
|
||||||
WaitFor::elementToBeEventuallyShown($this->actor, self::theDialog());
|
if (!WaitFor::elementToBeEventuallyShown(
|
||||||
|
$this->actor,
|
||||||
|
self::theDialog(),
|
||||||
|
$timeout = 10 * $this->actor->getFindTimeoutMultiplier())) {
|
||||||
|
PHPUnit_Framework_Assert::fail("The confirmation dialog was not shown yet after $timeout seconds");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Then I see that the confirmation dialog is not shown
|
* @Then I see that the confirmation dialog is not shown
|
||||||
*/
|
*/
|
||||||
public function iSeeThatTheConfirmationDialogIsNotShown() {
|
public function iSeeThatTheConfirmationDialogIsNotShown() {
|
||||||
WaitFor::elementToBeEventuallyNotShown($this->actor, self::theDialog());
|
if (!WaitFor::elementToBeEventuallyNotShown(
|
||||||
|
$this->actor,
|
||||||
|
self::theDialog(),
|
||||||
|
$timeout = 10 * $this->actor->getFindTimeoutMultiplier())) {
|
||||||
|
PHPUnit_Framework_Assert::fail("The confirmation dialog is still shown after $timeout seconds");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -267,14 +267,24 @@ class UsersSettingsContext implements Context, ActorAwareInterface {
|
||||||
* @Then I see that the list of users contains the user :user
|
* @Then I see that the list of users contains the user :user
|
||||||
*/
|
*/
|
||||||
public function iSeeThatTheListOfUsersContainsTheUser($user) {
|
public function iSeeThatTheListOfUsersContainsTheUser($user) {
|
||||||
WaitFor::elementToBeEventuallyShown($this->actor, self::rowForUser($user));
|
if (!WaitFor::elementToBeEventuallyShown(
|
||||||
|
$this->actor,
|
||||||
|
self::rowForUser($user),
|
||||||
|
$timeout = 10 * $this->actor->getFindTimeoutMultiplier())) {
|
||||||
|
PHPUnit_Framework_Assert::fail("The user $user in the list of users is not shown yet after $timeout seconds");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Then I see that the list of users does not contains the user :user
|
* @Then I see that the list of users does not contains the user :user
|
||||||
*/
|
*/
|
||||||
public function iSeeThatTheListOfUsersDoesNotContainsTheUser($user) {
|
public function iSeeThatTheListOfUsersDoesNotContainsTheUser($user) {
|
||||||
WaitFor::elementToBeEventuallyNotShown($this->actor, self::rowForUser($user));
|
if (!WaitFor::elementToBeEventuallyNotShown(
|
||||||
|
$this->actor,
|
||||||
|
self::rowForUser($user),
|
||||||
|
$timeout = 10 * $this->actor->getFindTimeoutMultiplier())) {
|
||||||
|
PHPUnit_Framework_Assert::fail("The user $user in the list of users is still shown after $timeout seconds");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -321,8 +331,26 @@ class UsersSettingsContext implements Context, ActorAwareInterface {
|
||||||
* @Then I see that the :cell cell for user :user is done loading
|
* @Then I see that the :cell cell for user :user is done loading
|
||||||
*/
|
*/
|
||||||
public function iSeeThatTheCellForUserIsDoneLoading($cell, $user) {
|
public function iSeeThatTheCellForUserIsDoneLoading($cell, $user) {
|
||||||
WaitFor::elementToBeEventuallyShown($this->actor, self::classCellForUser($cell . ' icon-loading-small', $user));
|
// It could happen that the cell for the user was done loading and thus
|
||||||
WaitFor::elementToBeEventuallyNotShown($this->actor, self::classCellForUser($cell . ' icon-loading-small', $user));
|
// the loading icon hidden again even before finding the loading icon
|
||||||
|
// started. Therefore, if the loading icon could not be found it is just
|
||||||
|
// assumed that it was already hidden again. Nevertheless, this check
|
||||||
|
// should be done anyway to ensure that the following scenario steps are
|
||||||
|
// not executed before the cell for the user was done loading.
|
||||||
|
try {
|
||||||
|
$this->actor->find(self::classCellForUser($cell . ' icon-loading-small', $user), 1);
|
||||||
|
} catch (NoSuchElementException $exception) {
|
||||||
|
echo "The loading icon for user $user was not found after " . (1 * $this->actor->getFindTimeoutMultiplier()) . " seconds, assumming that it was shown and hidden again before the check started and continuing";
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!WaitFor::elementToBeEventuallyNotShown(
|
||||||
|
$this->actor,
|
||||||
|
self::classCellForUser($cell . ' icon-loading-small', $user),
|
||||||
|
$timeout = 10 * $this->actor->getFindTimeoutMultiplier())) {
|
||||||
|
PHPUnit_Framework_Assert::fail("The loading icon for user $user is still shown after $timeout seconds");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -337,6 +365,11 @@ class UsersSettingsContext implements Context, ActorAwareInterface {
|
||||||
* @Then I see that the edit mode is on for user :user
|
* @Then I see that the edit mode is on for user :user
|
||||||
*/
|
*/
|
||||||
public function iSeeThatTheEditModeIsOn($user) {
|
public function iSeeThatTheEditModeIsOn($user) {
|
||||||
WaitFor::elementToBeEventuallyShown($this->actor, self::editModeOn($user));
|
if (!WaitFor::elementToBeEventuallyShown(
|
||||||
|
$this->actor,
|
||||||
|
self::editModeOn($user),
|
||||||
|
$timeout = 10 * $this->actor->getFindTimeoutMultiplier())) {
|
||||||
|
PHPUnit_Framework_Assert::fail("The edit mode for user $user in the list of users is not on yet after $timeout seconds");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue