diff --git a/tests/acceptance/features/bootstrap/AppNavigationContext.php b/tests/acceptance/features/bootstrap/AppNavigationContext.php index df6ed22896..06a1c563b0 100644 --- a/tests/acceptance/features/bootstrap/AppNavigationContext.php +++ b/tests/acceptance/features/bootstrap/AppNavigationContext.php @@ -112,14 +112,24 @@ class AppNavigationContext implements Context, ActorAwareInterface { * @Then I see that the section :section is shown */ 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 */ 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"); + } } /** diff --git a/tests/acceptance/features/bootstrap/AppSettingsContext.php b/tests/acceptance/features/bootstrap/AppSettingsContext.php index d7ee4a2eb0..eda9fe200d 100644 --- a/tests/acceptance/features/bootstrap/AppSettingsContext.php +++ b/tests/acceptance/features/bootstrap/AppSettingsContext.php @@ -95,6 +95,11 @@ class AppSettingsContext implements Context, ActorAwareInterface { * @Then I see that the settings are opened */ 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"); + } } } diff --git a/tests/acceptance/features/bootstrap/AppsManagementContext.php b/tests/acceptance/features/bootstrap/AppsManagementContext.php index d86b972c85..b692e77ca6 100644 --- a/tests/acceptance/features/bootstrap/AppsManagementContext.php +++ b/tests/acceptance/features/bootstrap/AppsManagementContext.php @@ -164,7 +164,12 @@ class AppsManagementContext implements Context, ActorAwareInterface { * @Then /^I see that there some apps listed from the app store$/ */ 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"); + } } /** diff --git a/tests/acceptance/features/bootstrap/DialogContext.php b/tests/acceptance/features/bootstrap/DialogContext.php index f9d2d6244e..e2dccf7b11 100644 --- a/tests/acceptance/features/bootstrap/DialogContext.php +++ b/tests/acceptance/features/bootstrap/DialogContext.php @@ -54,13 +54,23 @@ class DialogContext implements Context, ActorAwareInterface { * @Then I see that the confirmation dialog is shown */ 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 */ 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"); + } } } diff --git a/tests/acceptance/features/bootstrap/UsersSettingsContext.php b/tests/acceptance/features/bootstrap/UsersSettingsContext.php index cc542bf2fc..6b0aa78779 100644 --- a/tests/acceptance/features/bootstrap/UsersSettingsContext.php +++ b/tests/acceptance/features/bootstrap/UsersSettingsContext.php @@ -267,14 +267,24 @@ class UsersSettingsContext implements Context, ActorAwareInterface { * @Then I see that the list of users contains the user :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 */ 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 */ public function iSeeThatTheCellForUserIsDoneLoading($cell, $user) { - WaitFor::elementToBeEventuallyShown($this->actor, self::classCellForUser($cell . ' icon-loading-small', $user)); - WaitFor::elementToBeEventuallyNotShown($this->actor, self::classCellForUser($cell . ' icon-loading-small', $user)); + // It could happen that the cell for the user was done loading and thus + // 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 */ 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"); + } } }