From ad51ac6e9d8ad7ededb6c66839cab90a0ab16a67 Mon Sep 17 00:00:00 2001 From: Damian Jansen Date: Mon, 22 Sep 2014 16:04:18 +1000 Subject: [PATCH] Make the timeout period for webdriver waits configurable Use -Dwebdriver.wait to set the maximum condition waiting period. --- functional-test/pom.xml | 2 + .../java/org/zanata/page/AbstractPage.java | 44 +++++++------- .../main/java/org/zanata/page/BasePage.java | 10 ++-- .../main/java/org/zanata/page/CorePage.java | 8 +-- .../org/zanata/page/WebDriverFactory.java | 10 +++- .../org/zanata/page/account/RegisterPage.java | 2 +- .../page/administration/AddLanguagePage.java | 2 +- .../administration/EditHomeContentPage.java | 4 +- .../administration/ManageLanguagePage.java | 2 +- .../ManageLanguageTeamMemberPage.java | 10 ++-- .../page/administration/ManageSearchPage.java | 4 +- .../page/administration/ManageUserPage.java | 2 +- .../administration/TranslationMemoryPage.java | 4 +- .../page/dashboard/DashboardActivityTab.java | 2 +- .../page/dashboard/DashboardBasePage.java | 5 +- .../dashboardsettings/DashboardClientTab.java | 2 +- .../googleaccount/GooglePermissionsPage.java | 2 +- .../page/groups/CreateVersionGroupPage.java | 4 +- .../zanata/page/groups/VersionGroupPage.java | 8 +-- .../zanata/page/groups/VersionGroupsPage.java | 2 +- .../page/projects/ProjectAboutPage.java | 2 +- .../zanata/page/projects/ProjectBasePage.java | 20 +++---- .../page/projects/ProjectVersionsPage.java | 4 +- .../zanata/page/projects/ProjectsPage.java | 4 +- .../projectsettings/ProjectLanguagesTab.java | 4 +- .../ProjectPermissionsTab.java | 6 +- .../projectversion/CreateVersionPage.java | 6 +- .../page/projectversion/VersionBasePage.java | 16 +++--- .../projectversion/VersionDocumentsPage.java | 4 +- .../projectversion/VersionLanguagesPage.java | 4 +- .../versionsettings/VersionDocumentsTab.java | 10 ++-- .../versionsettings/VersionLanguagesTab.java | 6 +- .../org/zanata/page/webtrans/EditorPage.java | 30 +++++----- .../main/java/org/zanata/util/Constants.java | 2 +- .../java/org/zanata/util/WebElementUtil.java | 57 +++++++++++-------- .../org/zanata/workflow/LoginWorkFlow.java | 2 +- .../src/test/resources/setup.properties | 1 + 37 files changed, 163 insertions(+), 144 deletions(-) diff --git a/functional-test/pom.xml b/functional-test/pom.xml index 6f27f3745c..b96e87dbe4 100644 --- a/functional-test/pom.xml +++ b/functional-test/pom.xml @@ -54,6 +54,7 @@ :0 ${project.build.directory}/webdriver.log ${project.build.directory}/screenshots + 10 zanata.user.1: @@ -695,6 +696,7 @@ -Dwebdriver.display=display to run test browser in, for Xnest or otherwise. Default is :0. -Dwebdriver.chrome.bin=full path to chrome binary. -Dwebdriver.chrome.driver=full path to chromedriver binary. + -Dwebdriver.wait=global wait time in seconds for element searches. Default is 10. ========================================================== to ask cargo to start up then wait so that tests can be run manually: mvn clean package cargo:run -Dfunctional-test -Dmysql.port=13306 diff --git a/functional-test/src/main/java/org/zanata/page/AbstractPage.java b/functional-test/src/main/java/org/zanata/page/AbstractPage.java index ff5cfd9cd8..7c0a6ae768 100644 --- a/functional-test/src/main/java/org/zanata/page/AbstractPage.java +++ b/functional-test/src/main/java/org/zanata/page/AbstractPage.java @@ -35,7 +35,6 @@ import org.zanata.util.WebElementUtil; import com.google.common.base.Function; -import com.google.common.base.Joiner; import com.google.common.base.Predicate; /** @@ -45,13 +44,13 @@ @Slf4j public class AbstractPage { private final WebDriver driver; - private final FluentWait ajaxWaitForTenSec; + private final FluentWait ajaxWaitForSec; public AbstractPage(final WebDriver driver) { PageFactory.initElements(new AjaxElementLocatorFactory(driver, 10), this); this.driver = driver; - ajaxWaitForTenSec = WebElementUtil.waitForTenSeconds(driver); + ajaxWaitForSec = WebElementUtil.waitForAMoment(driver); waitForPageSilence(); } @@ -78,8 +77,8 @@ public String getUrl() { return driver.getCurrentUrl(); } - public FluentWait waitForTenSec() { - return ajaxWaitForTenSec; + public FluentWait waitForAMoment() { + return ajaxWaitForSec; } /** @@ -89,7 +88,7 @@ public FluentWait waitForTenSec() { */ public void waitForPage(List elementBys) { for (final By by : elementBys) { - waitForTenSec().until(new Function() { + waitForAMoment().until(new Function() { @Override public WebElement apply(WebDriver driver) { return getDriver().findElement(by); @@ -99,12 +98,13 @@ public WebElement apply(WebDriver driver) { } public Alert switchToAlert() { - return waitForTenSec().until(new Function() { + return waitForAMoment().until(new Function() { @Override public Alert apply(WebDriver driver) { try { return getDriver().switchTo().alert(); - } catch (NoAlertPresentException noAlertPresent) { + } + catch (NoAlertPresentException noAlertPresent) { return null; } } @@ -113,14 +113,14 @@ public Alert apply(WebDriver driver) { protected

P refreshPageUntil(P currentPage, Predicate predicate) { - waitForTenSec().until(predicate); + waitForAMoment().until(predicate); PageFactory.initElements(driver, currentPage); return currentPage; } protected

T refreshPageUntil(P currentPage, Function function) { - T done = waitForTenSec().until(function); + T done = waitForAMoment().until(function); PageFactory.initElements(driver, currentPage); return done; } @@ -136,7 +136,7 @@ protected

T refreshPageUntil(P currentPage, */ public void waitFor(final Callable callable, final Matcher matcher) { - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver input) { try { @@ -146,7 +146,8 @@ public boolean apply(WebDriver input) { new Description.NullDescription()); } return matcher.matches(result); - } catch (Exception e) { + } + catch (Exception e) { log.warn("exception", e); return false; } @@ -160,7 +161,7 @@ public boolean apply(WebDriver input) { */ public void waitForPageSilence() { // Wait for jQuery calls to be 0 - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver input) { int ajaxCalls; @@ -168,18 +169,23 @@ public boolean apply(WebDriver input) { try { jQueryCalls = Integer.parseInt( ((JavascriptExecutor) getDriver()) - .executeScript("return jQuery.active") - .toString()); - } catch (WebDriverException jCall) { + .executeScript("return jQuery.active") + .toString() + ); + } + catch (WebDriverException jCall) { jQueryCalls = 0; } try { ajaxCalls = Integer.parseInt( ((JavascriptExecutor) getDriver()) - .executeScript("return Ajax.activeRequestCount") - .toString()); - } catch (WebDriverException jCall) { + .executeScript( + "return Ajax.activeRequestCount") + .toString() + ); + } + catch (WebDriverException jCall) { ajaxCalls = 0; } return ajaxCalls + jQueryCalls == 0; diff --git a/functional-test/src/main/java/org/zanata/page/BasePage.java b/functional-test/src/main/java/org/zanata/page/BasePage.java index 625ce4bbb5..208b7f4dba 100644 --- a/functional-test/src/main/java/org/zanata/page/BasePage.java +++ b/functional-test/src/main/java/org/zanata/page/BasePage.java @@ -103,14 +103,14 @@ private void clickNavMenuItem(final WebElement menuItem) { getDriver().findElement(By.id("nav-main")) .findElement(By.tagName("a")).click(); } - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver input) { return menuItem.isDisplayed(); } }); // The notifications can sometimes get in the way - waitForTenSec().until(ExpectedConditions.elementToBeClickable(menuItem)); + waitForAMoment().until(ExpectedConditions.elementToBeClickable(menuItem)); menuItem.click(); } @@ -257,7 +257,7 @@ public ProjectsPage submitSearch() { public BasePage waitForSearchListContains(final String expected) { log.info("Wait for Project search list contains {}", expected); - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver input) { return getProjectSearchAutocompleteItems().contains(expected); @@ -275,7 +275,7 @@ public List getProjectSearchAutocompleteItems() { public ProjectVersionsPage clickSearchEntry(final String searchEntry) { log.info("Click Projects search result {}", searchEntry); WebElement searchItem = - waitForTenSec().until(new Function() { + waitForAMoment().until(new Function() { @Override public WebElement apply(WebDriver driver) { List items = @@ -296,7 +296,7 @@ public WebElement apply(WebDriver driver) { } public void clickWhenTabEnabled(final WebElement tab) { - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver input) { waitForPageSilence(); diff --git a/functional-test/src/main/java/org/zanata/page/CorePage.java b/functional-test/src/main/java/org/zanata/page/CorePage.java index 2c8512eeed..aae5f41b97 100644 --- a/functional-test/src/main/java/org/zanata/page/CorePage.java +++ b/functional-test/src/main/java/org/zanata/page/CorePage.java @@ -130,14 +130,14 @@ public String getNotificationMessage() { public boolean expectNotification(final String notification) { log.info("Wait for notification {}", notification); - return waitForTenSec().until(new Function() { + return waitForAMoment().until(new Function() { @Override public Boolean apply(WebDriver driver) { List messages = getDriver() .findElement(By.id("messages")) .findElements(By.tagName("li")); List notifications = new ArrayList(); - for( WebElement message : messages ) { + for (WebElement message : messages) { notifications.add(message.getText().trim()); } return notifications.contains(notification); @@ -157,7 +157,7 @@ public boolean apply(WebDriver input) { public List waitForErrors() { log.info("Query page errors list"); - waitForTenSec().until(new Function() { + waitForAMoment().until(new Function() { @Override public WebElement apply(WebDriver driver) { return getDriver().findElement( @@ -202,7 +202,7 @@ public void defocus() { public List waitForFieldErrors() { log.info("Query field errors"); - waitForTenSec().until(new Function() { + waitForAMoment().until(new Function() { @Override public WebElement apply(WebDriver driver) { return getDriver().findElement(By.className("message--danger")); diff --git a/functional-test/src/main/java/org/zanata/page/WebDriverFactory.java b/functional-test/src/main/java/org/zanata/page/WebDriverFactory.java index c6fd74ff13..c8c333f255 100644 --- a/functional-test/src/main/java/org/zanata/page/WebDriverFactory.java +++ b/functional-test/src/main/java/org/zanata/page/WebDriverFactory.java @@ -44,6 +44,7 @@ import static org.zanata.util.Constants.chrome; import static org.zanata.util.Constants.firefox; import static org.zanata.util.Constants.webDriverType; +import static org.zanata.util.Constants.webDriverWait; import static org.zanata.util.Constants.zanataInstance; @Slf4j @@ -53,6 +54,7 @@ public enum WebDriverFactory { private volatile WebDriver driver = createDriver(); private DriverService driverService; private TestEventForScreenshotListener eventListener; + private int webdriverWait; public WebDriver getDriver() { return driver; @@ -60,8 +62,9 @@ public WebDriver getDriver() { public WebDriver createDriver() { WebDriver driver = createPlainDriver(); + webdriverWait = Integer.parseInt(PropertiesHolder + .getProperty(webDriverWait.value())); driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS); - Runtime.getRuntime().addShutdownHook(new ShutdownHook()); return driver; } @@ -70,6 +73,10 @@ public String getHostUrl() { return PropertiesHolder.getProperty(zanataInstance.value()); } + public int getWebDriverWait() { + return webdriverWait; + } + public void updateListenerTestName(String testName) { if (eventListener == null && ScreenshotDirForTest.isScreenshotEnabled()) { eventListener = new TestEventForScreenshotListener(driver); @@ -78,7 +85,6 @@ public void updateListenerTestName(String testName) { eventListener.updateTestID(testName); } - private WebDriver enableScreenshots() { log.debug("Enabling screenshot module..."); return EventFiringWebDriver.class.cast(driver).register(eventListener); diff --git a/functional-test/src/main/java/org/zanata/page/account/RegisterPage.java b/functional-test/src/main/java/org/zanata/page/account/RegisterPage.java index e829820291..6d24f9efaf 100644 --- a/functional-test/src/main/java/org/zanata/page/account/RegisterPage.java +++ b/functional-test/src/main/java/org/zanata/page/account/RegisterPage.java @@ -140,7 +140,7 @@ public RegisterPage setFields(Map fields) { public List waitForErrors() { log.info("Query errors"); - waitForTenSec().until(new Function() { + waitForAMoment().until(new Function() { @Override public WebElement apply(WebDriver driver) { return getDriver().findElement( diff --git a/functional-test/src/main/java/org/zanata/page/administration/AddLanguagePage.java b/functional-test/src/main/java/org/zanata/page/administration/AddLanguagePage.java index 041a095f09..5856d054ef 100644 --- a/functional-test/src/main/java/org/zanata/page/administration/AddLanguagePage.java +++ b/functional-test/src/main/java/org/zanata/page/administration/AddLanguagePage.java @@ -81,7 +81,7 @@ public Map getLanguageDetails() { log.info("Query language details"); Map map = new HashMap(); // Wait for the fields to be populated - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver input) { List thisElement = getDriver() diff --git a/functional-test/src/main/java/org/zanata/page/administration/EditHomeContentPage.java b/functional-test/src/main/java/org/zanata/page/administration/EditHomeContentPage.java index 8d99acdfa9..12efe358fc 100644 --- a/functional-test/src/main/java/org/zanata/page/administration/EditHomeContentPage.java +++ b/functional-test/src/main/java/org/zanata/page/administration/EditHomeContentPage.java @@ -49,7 +49,7 @@ public EditHomeContentPage(final WebDriver driver) { public EditHomeContentPage enterText(String text) { log.info("Enter homepage code\n{}", text); // Switch to the CKEditor frame - getDriver().switchTo().frame(waitForTenSec().until(new Function() { + getDriver().switchTo().frame(waitForAMoment().until(new Function() { @Override public WebElement apply(WebDriver driver) { return getDriver().findElement( @@ -58,7 +58,7 @@ public WebElement apply(WebDriver driver) { } })); - WebElement textEdit = waitForTenSec().until(new Function() { + WebElement textEdit = waitForAMoment().until(new Function() { @Override public WebElement apply(WebDriver driver) { System.out.println(getDriver().findElements(By.tagName("body")).size()); diff --git a/functional-test/src/main/java/org/zanata/page/administration/ManageLanguagePage.java b/functional-test/src/main/java/org/zanata/page/administration/ManageLanguagePage.java index e1ce6c1cb4..df59f2ed15 100644 --- a/functional-test/src/main/java/org/zanata/page/administration/ManageLanguagePage.java +++ b/functional-test/src/main/java/org/zanata/page/administration/ManageLanguagePage.java @@ -73,7 +73,7 @@ public ManageLanguageTeamMemberPage manageTeamMembersFor( private TableRow findRowByLocale(final String localeId) { TableRow matchedRow = - waitForTenSec().until(new Function() { + waitForAMoment().until(new Function() { @Override public TableRow apply(WebDriver driver) { List tableRows = diff --git a/functional-test/src/main/java/org/zanata/page/administration/ManageLanguageTeamMemberPage.java b/functional-test/src/main/java/org/zanata/page/administration/ManageLanguageTeamMemberPage.java index 9ffdf73569..de39f0a829 100644 --- a/functional-test/src/main/java/org/zanata/page/administration/ManageLanguageTeamMemberPage.java +++ b/functional-test/src/main/java/org/zanata/page/administration/ManageLanguageTeamMemberPage.java @@ -58,7 +58,7 @@ public ManageLanguageTeamMemberPage joinLanguageTeam() { // Waiting 10 seconds for an element to be present on the page, checking // for its presence once every 1 second. WebElement joinLanguageTeamLink = - waitForTenSec().until(new Function() { + waitForAMoment().until(new Function() { public WebElement apply(WebDriver driver) { return driver.findElement(By .linkText("Join Language Team")); @@ -66,7 +66,7 @@ public WebElement apply(WebDriver driver) { }); joinLanguageTeamLink.click(); // we need to wait for this join to finish before returning the page - waitForTenSec().until(new Function() { + waitForAMoment().until(new Function() { @Override public Boolean apply(WebDriver driver) { List joinLanguageTeam = @@ -80,7 +80,7 @@ public Boolean apply(WebDriver driver) { public ManageLanguageTeamMemberPage clickAddTeamMember() { log.info("Click Add Team Member"); WebElement addTeamMemberLink = - waitForTenSec().until(new Function() { + waitForAMoment().until(new Function() { public WebElement apply(WebDriver driver) { return driver.findElement(By.id("addTeamMemberLink")); } @@ -96,7 +96,7 @@ public ManageLanguageTeamMemberPage searchPersonAndAddToTeam( getDriver().findElement(By.id("userAddPanel_container")); WebElement searchInput = - waitForTenSec().until(new Function() { + waitForAMoment().until(new Function() { public WebElement apply(WebDriver driver) { return addUserPanel.findElement(By .id("searchForm:searchField")); @@ -107,7 +107,7 @@ public WebElement apply(WebDriver driver) { getDriver().findElement(By.id("searchForm:searchBtn")); searchButton.click(); - return waitForTenSec().until( + return waitForAMoment().until( new Function() { @Override public ManageLanguageTeamMemberPage apply(WebDriver driver) { diff --git a/functional-test/src/main/java/org/zanata/page/administration/ManageSearchPage.java b/functional-test/src/main/java/org/zanata/page/administration/ManageSearchPage.java index 98c2f60092..82101cf9db 100644 --- a/functional-test/src/main/java/org/zanata/page/administration/ManageSearchPage.java +++ b/functional-test/src/main/java/org/zanata/page/administration/ManageSearchPage.java @@ -75,7 +75,7 @@ public boolean allActionsSelected() { public ManageSearchPage performSelectedActions() { log.info("Click Perform Actions"); getDriver().findElement(By.id("form:reindex")).click(); - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver input) { // The Abort button will display @@ -87,7 +87,7 @@ public boolean apply(WebDriver input) { public ManageSearchPage waitForActionsToFinish() { log.info("Wait: all actions are finished"); - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver input) { // once the button re-appears, it means the reindex is done. diff --git a/functional-test/src/main/java/org/zanata/page/administration/ManageUserPage.java b/functional-test/src/main/java/org/zanata/page/administration/ManageUserPage.java index ecde698cc1..7a9d0803aa 100644 --- a/functional-test/src/main/java/org/zanata/page/administration/ManageUserPage.java +++ b/functional-test/src/main/java/org/zanata/page/administration/ManageUserPage.java @@ -65,7 +65,7 @@ public ManageUserAccountPage editUserAccount(String username) { private TableRow findRowByUserName(final String username) { TableRow matchedRow = - waitForTenSec().until(new Function() { + waitForAMoment().until(new Function() { @Override public TableRow apply(WebDriver driver) { List tableRows = diff --git a/functional-test/src/main/java/org/zanata/page/administration/TranslationMemoryPage.java b/functional-test/src/main/java/org/zanata/page/administration/TranslationMemoryPage.java index ee921c2696..bad71e4716 100644 --- a/functional-test/src/main/java/org/zanata/page/administration/TranslationMemoryPage.java +++ b/functional-test/src/main/java/org/zanata/page/administration/TranslationMemoryPage.java @@ -147,7 +147,7 @@ public String getNumberOfEntries(String tmName) { public String waitForExpectedNumberOfEntries(final String tmName, final String expected) { log.info("Waiting for {} entries in {}", expected, tmName); - return waitForTenSec().until(new Function() { + return waitForAMoment().until(new Function() { @Override public String apply(WebDriver driver) { return expected.equals(getNumberOfEntries(tmName)) ? getNumberOfEntries(tmName) @@ -167,7 +167,7 @@ public boolean canDelete(String tmName) { */ private TableRow findRowByTMName(final String tmName) { TableRow matchedRow = - waitForTenSec().until(new Function() { + waitForAMoment().until(new Function() { @Override public TableRow apply(WebDriver driver) { List tableRows = diff --git a/functional-test/src/main/java/org/zanata/page/dashboard/DashboardActivityTab.java b/functional-test/src/main/java/org/zanata/page/dashboard/DashboardActivityTab.java index 60424c6636..868121e84e 100644 --- a/functional-test/src/main/java/org/zanata/page/dashboard/DashboardActivityTab.java +++ b/functional-test/src/main/java/org/zanata/page/dashboard/DashboardActivityTab.java @@ -62,7 +62,7 @@ public boolean clickMoreActivity() { final int activityListOrigSize = getMyActivityList().size(); if (moreActivity != null) { moreActivity.click(); - WebElementUtil.waitForTenSeconds(getDriver()).until( + WebElementUtil.waitForAMoment(getDriver()).until( new ExpectedCondition() { @Nullable @Override diff --git a/functional-test/src/main/java/org/zanata/page/dashboard/DashboardBasePage.java b/functional-test/src/main/java/org/zanata/page/dashboard/DashboardBasePage.java index d538cf1df0..7d015b5dbb 100644 --- a/functional-test/src/main/java/org/zanata/page/dashboard/DashboardBasePage.java +++ b/functional-test/src/main/java/org/zanata/page/dashboard/DashboardBasePage.java @@ -20,9 +20,6 @@ */ package org.zanata.page.dashboard; -import java.util.ArrayList; -import java.util.List; - import com.google.common.base.Predicate; import lombok.extern.slf4j.Slf4j; import org.openqa.selenium.By; @@ -125,7 +122,7 @@ public DashboardClientTab goToSettingsClientTab() { public void waitForUsernameChanged(final String current) { log.info("Wait for username change from {}", current); - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver input) { return !getUserFullName().equals(current); diff --git a/functional-test/src/main/java/org/zanata/page/dashboard/dashboardsettings/DashboardClientTab.java b/functional-test/src/main/java/org/zanata/page/dashboard/dashboardsettings/DashboardClientTab.java index 943e9b2e1d..cc32ba5c8e 100644 --- a/functional-test/src/main/java/org/zanata/page/dashboard/dashboardsettings/DashboardClientTab.java +++ b/functional-test/src/main/java/org/zanata/page/dashboard/dashboardsettings/DashboardClientTab.java @@ -65,7 +65,7 @@ public String getConfigurationDetails() { public void waitForApiKeyChanged(final String current) { log.info("Wait for API key changed from {}", current); - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver input) { return !getApiKey().equals(current); diff --git a/functional-test/src/main/java/org/zanata/page/googleaccount/GooglePermissionsPage.java b/functional-test/src/main/java/org/zanata/page/googleaccount/GooglePermissionsPage.java index a1a49a7225..25853a2886 100644 --- a/functional-test/src/main/java/org/zanata/page/googleaccount/GooglePermissionsPage.java +++ b/functional-test/src/main/java/org/zanata/page/googleaccount/GooglePermissionsPage.java @@ -40,7 +40,7 @@ public GooglePermissionsPage(WebDriver driver) { public EditProfilePage acceptPermissions() { log.info("Click Approve"); - waitForTenSec().until(new Function() { + waitForAMoment().until(new Function() { @Override public Boolean apply(WebDriver driver) { return getDriver().findElement(By.id("submit_approve_access")) diff --git a/functional-test/src/main/java/org/zanata/page/groups/CreateVersionGroupPage.java b/functional-test/src/main/java/org/zanata/page/groups/CreateVersionGroupPage.java index 11b6255b95..00fefc3cf1 100644 --- a/functional-test/src/main/java/org/zanata/page/groups/CreateVersionGroupPage.java +++ b/functional-test/src/main/java/org/zanata/page/groups/CreateVersionGroupPage.java @@ -1,6 +1,5 @@ package org.zanata.page.groups; -import java.util.ArrayList; import java.util.List; import lombok.extern.slf4j.Slf4j; @@ -10,7 +9,6 @@ import org.openqa.selenium.support.FindBy; import org.zanata.page.BasePage; -import com.google.common.base.Function; import com.google.common.base.Predicate; import com.google.common.collect.ImmutableList; @@ -92,7 +90,7 @@ public CreateVersionGroupPage clearFields() { getGroupSlugField().clear(); getGroupNameField().clear(); groupDescriptionField.clear(); - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver input) { return getGroupIdValue().equals("") && getGroupNameField().getAttribute("value").equals(""); diff --git a/functional-test/src/main/java/org/zanata/page/groups/VersionGroupPage.java b/functional-test/src/main/java/org/zanata/page/groups/VersionGroupPage.java index 45680daefb..f4c6b5e030 100644 --- a/functional-test/src/main/java/org/zanata/page/groups/VersionGroupPage.java +++ b/functional-test/src/main/java/org/zanata/page/groups/VersionGroupPage.java @@ -136,7 +136,7 @@ public void clickOnTab(String tabId) { public VersionGroupPage clickAddProjectVersionsButton() { log.info("Click Add Project Version"); - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver driver) { WebElement addProjectVersionButton = driver @@ -182,7 +182,7 @@ public VersionGroupPage clickLanguagesSettingsTab() { public Boolean isLanguagesTabActive() { log.info("Query is languages tab displayed"); final WebElement languagesTab = getDriver().findElement(By.id("languages")); - waitForTenSec().until( new Predicate() { + waitForAMoment().until( new Predicate() { @Override public boolean apply(@Nullable WebDriver webDriver) { return languagesTab.getAttribute("class").contains("is-active"); @@ -193,7 +193,7 @@ public boolean apply(@Nullable WebDriver webDriver) { public Boolean isProjectsTabActive() { final WebElement languagesTab = getDriver().findElement(By.id("projects")); - waitForTenSec().until( new Predicate() { + waitForAMoment().until( new Predicate() { @Override public boolean apply(@Nullable WebDriver webDriver) { return languagesTab.getAttribute("class").contains("is-active"); @@ -217,7 +217,7 @@ public VersionGroupPage enterProjectVersion(String projectVersion) { public VersionGroupPage selectProjectVersion(final String searchEntry) { log.info("Click project version {}", searchEntry); - waitForTenSec().until( + waitForAMoment().until( new Predicate() { @Override public boolean apply(WebDriver driver) { diff --git a/functional-test/src/main/java/org/zanata/page/groups/VersionGroupsPage.java b/functional-test/src/main/java/org/zanata/page/groups/VersionGroupsPage.java index d7dc37483e..8919e96071 100644 --- a/functional-test/src/main/java/org/zanata/page/groups/VersionGroupsPage.java +++ b/functional-test/src/main/java/org/zanata/page/groups/VersionGroupsPage.java @@ -58,7 +58,7 @@ public VersionGroupsPage toggleObsolete(final boolean show) { if (show != showObsolete.isSelected()) { showObsolete.click(); } - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver input) { WebElement table = diff --git a/functional-test/src/main/java/org/zanata/page/projects/ProjectAboutPage.java b/functional-test/src/main/java/org/zanata/page/projects/ProjectAboutPage.java index 47ed4cde58..aa0c3e032a 100644 --- a/functional-test/src/main/java/org/zanata/page/projects/ProjectAboutPage.java +++ b/functional-test/src/main/java/org/zanata/page/projects/ProjectAboutPage.java @@ -38,7 +38,7 @@ public ProjectAboutPage(WebDriver driver) { public String getAboutText() { log.info("Query About content"); - return waitForTenSec().until(new Function() { + return waitForAMoment().until(new Function() { @Override public String apply(WebDriver driver) { return getDriver() diff --git a/functional-test/src/main/java/org/zanata/page/projects/ProjectBasePage.java b/functional-test/src/main/java/org/zanata/page/projects/ProjectBasePage.java index 8d865b6995..377ac1a3ca 100644 --- a/functional-test/src/main/java/org/zanata/page/projects/ProjectBasePage.java +++ b/functional-test/src/main/java/org/zanata/page/projects/ProjectBasePage.java @@ -81,7 +81,7 @@ public String getProjectName() { public ProjectVersionsPage gotoVersionsTab() { log.info("Click Versions tab"); clickWhenTabEnabled(versionsTab); - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver input) { return getDriver().findElement(By.id("versions")) @@ -94,7 +94,7 @@ public boolean apply(WebDriver input) { public ProjectMaintainersPage gotoMaintainersTab() { log.info("Click Maintainers tab"); clickWhenTabEnabled(maintainersTab); - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver input) { return getDriver().findElement(By.id("maintainers")) @@ -107,7 +107,7 @@ public boolean apply(WebDriver input) { public ProjectAboutPage gotoAboutTab() { log.info("Click About tab"); clickWhenTabEnabled(aboutTab); - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver input) { return getDriver().findElement(By.id("about")) @@ -123,7 +123,7 @@ public boolean settingsTabIsDisplayed() { } public void reloadUntilSettingsIsDisplayed() { - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver input) { return settingsTab.isDisplayed(); @@ -135,7 +135,7 @@ public ProjectBasePage gotoSettingsTab() { log.info("Click Settings tab"); slightPause(); clickWhenTabEnabled(settingsTab); - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver input) { return getDriver().findElement(By.id("settings_tab")) @@ -148,7 +148,7 @@ public boolean apply(WebDriver input) { public ProjectGeneralTab gotoSettingsGeneral() { log.info("Click General settings sub-tab"); clickWhenTabEnabled(settingsGeneralTab); - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver input) { return getDriver().findElement(By.id("settings-general")) @@ -161,7 +161,7 @@ public boolean apply(WebDriver input) { public ProjectPermissionsTab gotoSettingsPermissionsTab() { log.info("Click Permissions settings sub-tab"); clickWhenTabEnabled(settingsPermissionTab); - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver input) { return getDriver().findElement(By.id("settings-permissions")) @@ -174,7 +174,7 @@ public boolean apply(WebDriver input) { public ProjectTranslationTab gotoSettingsTranslationTab() { log.info("Click Translation settings sub-tab"); clickWhenTabEnabled(settingsTranslationTab); - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver input) { return getDriver().findElement(By.id("settings-translation")) @@ -187,7 +187,7 @@ public boolean apply(WebDriver input) { public ProjectLanguagesTab gotoSettingsLanguagesTab() { log.info("Click Languages settings sub-tab"); clickWhenTabEnabled(settingsLanguagesTab); - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver input) { return getDriver().findElement(By.id("settings-languages")) @@ -200,7 +200,7 @@ public boolean apply(WebDriver input) { public ProjectAboutTab gotoSettingsAboutTab() { log.info("Click About settings sub-tab"); clickWhenTabEnabled(settingsAboutTab); - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver input) { return getDriver().findElement(By.id("settings-about")) diff --git a/functional-test/src/main/java/org/zanata/page/projects/ProjectVersionsPage.java b/functional-test/src/main/java/org/zanata/page/projects/ProjectVersionsPage.java index 28fdb42ee7..3ad25e4737 100644 --- a/functional-test/src/main/java/org/zanata/page/projects/ProjectVersionsPage.java +++ b/functional-test/src/main/java/org/zanata/page/projects/ProjectVersionsPage.java @@ -63,7 +63,7 @@ public CreateVersionPage clickCreateVersionLink() { public VersionLanguagesPage gotoVersion(final String versionId) { log.info("Click Version {}", versionId); - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver input) { List versionLinks = getDriver() @@ -103,7 +103,7 @@ public int getNumberOfDisplayedVersions() { public ProjectVersionsPage waitForDisplayedVersions(final int expected) { log.info("Wait for number of displayed versions to be {}", expected); - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver input) { return getNumberOfDisplayedVersions() == expected && diff --git a/functional-test/src/main/java/org/zanata/page/projects/ProjectsPage.java b/functional-test/src/main/java/org/zanata/page/projects/ProjectsPage.java index 6a3a258528..6c79b27720 100644 --- a/functional-test/src/main/java/org/zanata/page/projects/ProjectsPage.java +++ b/functional-test/src/main/java/org/zanata/page/projects/ProjectsPage.java @@ -48,7 +48,7 @@ public ProjectsPage(final WebDriver driver) { public CreateProjectPage clickOnCreateProjectLink() { log.info("Click Create Project"); WebElement createProjectActionLink = - waitForTenSec().until(new Function() { + waitForAMoment().until(new Function() { @Override public WebElement apply(WebDriver driver) { return driver.findElement(By.id("createProjectLink")); @@ -94,7 +94,7 @@ public List getProjectNamesOnCurrentPage() { public ProjectsPage waitForProjectVisibility(final String projectName, final boolean visible) { log.info("Wait for project {} visibility is {}", projectName, visible); - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver input) { return getProjectNamesOnCurrentPage() diff --git a/functional-test/src/main/java/org/zanata/page/projects/projectsettings/ProjectLanguagesTab.java b/functional-test/src/main/java/org/zanata/page/projects/projectsettings/ProjectLanguagesTab.java index d24f27d2d6..01547037cc 100644 --- a/functional-test/src/main/java/org/zanata/page/projects/projectsettings/ProjectLanguagesTab.java +++ b/functional-test/src/main/java/org/zanata/page/projects/projectsettings/ProjectLanguagesTab.java @@ -75,7 +75,7 @@ private List getEnabledLocaleListElement() { public ProjectLanguagesTab waitForLocaleListVisible() { log.info("Wait for locale list visible"); - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver driver) { return getDriver() @@ -108,7 +108,7 @@ public ProjectLanguagesTab enterSearchLanguage(String languageQuery) { */ public ProjectLanguagesTab addLanguage(final String localeId) { log.info("Click Add language on {}", localeId); - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver driver) { List searchResults = diff --git a/functional-test/src/main/java/org/zanata/page/projects/projectsettings/ProjectPermissionsTab.java b/functional-test/src/main/java/org/zanata/page/projects/projectsettings/ProjectPermissionsTab.java index 407e39921a..8f57f22ff4 100644 --- a/functional-test/src/main/java/org/zanata/page/projects/projectsettings/ProjectPermissionsTab.java +++ b/functional-test/src/main/java/org/zanata/page/projects/projectsettings/ProjectPermissionsTab.java @@ -21,7 +21,6 @@ package org.zanata.page.projects.projectsettings; import com.google.common.base.Function; -import com.google.common.base.Preconditions; import com.google.common.base.Predicate; import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; @@ -32,7 +31,6 @@ import org.zanata.page.projects.ProjectBasePage; import org.zanata.util.WebElementUtil; -import javax.annotation.Nullable; import java.util.List; /** @@ -56,7 +54,7 @@ public ProjectPermissionsTab enterSearchMaintainer( public ProjectPermissionsTab selectSearchMaintainer(final String maintainer) { log.info("Select user {}", maintainer); - waitForTenSec() + waitForAMoment() .until(new Predicate() { @Override public boolean apply(WebDriver driver) { @@ -98,7 +96,7 @@ private String getUsername(WebElement maintainersLi) { } private WebElement getMaintainerElementFromList(final String maintainer) { - return waitForTenSec().until(new Function() { + return waitForAMoment().until(new Function() { @Override public WebElement apply(WebDriver input) { for (WebElement maintainersLi : getSettingsMaintainersElement()) { diff --git a/functional-test/src/main/java/org/zanata/page/projectversion/CreateVersionPage.java b/functional-test/src/main/java/org/zanata/page/projectversion/CreateVersionPage.java index 601ea20ea0..cf21b3856a 100644 --- a/functional-test/src/main/java/org/zanata/page/projectversion/CreateVersionPage.java +++ b/functional-test/src/main/java/org/zanata/page/projectversion/CreateVersionPage.java @@ -68,7 +68,7 @@ public CreateVersionPage(final WebDriver driver) { */ public CreateVersionPage inputVersionId(final String versionId) { log.info("Enter version ID {}", versionId); - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver input) { getVersionIdField().clear(); @@ -84,7 +84,7 @@ public boolean apply(WebDriver input) { public CreateVersionPage clickCopyFromVersion() { log.info("Click Copy From Previous checkbox"); copyFromPreviousVersionChk.click(); - waitForTenSec().until(new Function() { + waitForAMoment().until(new Function() { @Override public WebElement apply(WebDriver driver) { return getDriver().findElement(By.id( @@ -122,7 +122,7 @@ public VersionLanguagesPage saveVersion() { public CreateVersionPage waitForNumErrors(final int numberOfErrors) { log.info("Wait for number of error to be {}", numberOfErrors); - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver input) { return getErrors().size() == numberOfErrors; diff --git a/functional-test/src/main/java/org/zanata/page/projectversion/VersionBasePage.java b/functional-test/src/main/java/org/zanata/page/projectversion/VersionBasePage.java index 9cee9f2ac0..63aa576fa5 100644 --- a/functional-test/src/main/java/org/zanata/page/projectversion/VersionBasePage.java +++ b/functional-test/src/main/java/org/zanata/page/projectversion/VersionBasePage.java @@ -80,7 +80,7 @@ public boolean settingsTabIsDisplayed() { } public void reloadUntilSettingsIsDisplayed() { - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver input) { return settingsTab.isDisplayed(); @@ -91,7 +91,7 @@ public boolean apply(WebDriver input) { public VersionDocumentsPage gotoDocumentTab() { log.info("Click Documents tab"); clickWhenTabEnabled(getDriver().findElement(By.id("documents_tab"))); - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver input) { return getDriver() @@ -105,7 +105,7 @@ public boolean apply(WebDriver input) { public VersionLanguagesPage gotoLanguageTab() { log.info("Click Languages tab"); clickWhenTabEnabled(getDriver().findElement(By.id("languages_tab"))); - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver input) { return getDriver() @@ -120,7 +120,7 @@ public VersionBasePage gotoSettingsTab() { log.info("Click Settings tab"); slightPause(); clickWhenTabEnabled(getDriver().findElement(By.id("settings_tab"))); - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver input) { return getDriver() @@ -134,7 +134,7 @@ public boolean apply(WebDriver input) { public VersionGeneralTab gotoSettingsGeneral() { log.info("Click General settings sub-tab"); clickWhenTabEnabled(settingsGeneralTab); - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver input) { return getDriver() @@ -148,7 +148,7 @@ public boolean apply(WebDriver input) { public VersionLanguagesTab gotoSettingsLanguagesTab() { log.info("Click Languages settings sub-tab"); clickWhenTabEnabled(settingsLanguagesTab); - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver input) { return getDriver() @@ -162,7 +162,7 @@ public boolean apply(WebDriver input) { public VersionDocumentsTab gotoSettingsDocumentsTab() { log.info("Click Documents settings sub-tab"); clickWhenTabEnabled(settingsDocumentsTab); - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver input) { return getDriver() @@ -176,7 +176,7 @@ public boolean apply(WebDriver input) { public VersionTranslationTab gotoSettingsTranslationTab() { log.info("Click Translation settings sub-tab"); clickWhenTabEnabled(settingsTranslationTab); - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver input) { return getDriver() diff --git a/functional-test/src/main/java/org/zanata/page/projectversion/VersionDocumentsPage.java b/functional-test/src/main/java/org/zanata/page/projectversion/VersionDocumentsPage.java index 3de3e17ef2..e82fe49fbb 100644 --- a/functional-test/src/main/java/org/zanata/page/projectversion/VersionDocumentsPage.java +++ b/functional-test/src/main/java/org/zanata/page/projectversion/VersionDocumentsPage.java @@ -42,7 +42,7 @@ public VersionDocumentsPage(WebDriver driver) { public VersionDocumentsPage waitForSourceDocsContains(final String document) { log.info("Click Project link"); - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver input) { return sourceDocumentsContains(document); @@ -74,7 +74,7 @@ public List getSourceDocumentNames() { } private List getDocumentsTabDocumentList() { - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver input) { return getDriver() diff --git a/functional-test/src/main/java/org/zanata/page/projectversion/VersionLanguagesPage.java b/functional-test/src/main/java/org/zanata/page/projectversion/VersionLanguagesPage.java index 703a306d91..21debba20e 100644 --- a/functional-test/src/main/java/org/zanata/page/projectversion/VersionLanguagesPage.java +++ b/functional-test/src/main/java/org/zanata/page/projectversion/VersionLanguagesPage.java @@ -46,7 +46,7 @@ public VersionLanguagesPage(final WebDriver driver) { private List getLanguageTabLocaleList() { WebElement languageList = - waitForTenSec().until(new Function() { + waitForAMoment().until(new Function() { @Override public WebElement apply(WebDriver input) { return getDriver().findElement( @@ -103,7 +103,7 @@ public EditorPage apply(WebDriver driver) { private List getVersionTabDocumentList() { log.info("Query documents list"); - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver input) { return getDriver() diff --git a/functional-test/src/main/java/org/zanata/page/projectversion/versionsettings/VersionDocumentsTab.java b/functional-test/src/main/java/org/zanata/page/projectversion/versionsettings/VersionDocumentsTab.java index d1aafe0df0..d3cad66a44 100644 --- a/functional-test/src/main/java/org/zanata/page/projectversion/versionsettings/VersionDocumentsTab.java +++ b/functional-test/src/main/java/org/zanata/page/projectversion/versionsettings/VersionDocumentsTab.java @@ -49,7 +49,7 @@ public VersionDocumentsTab cancelUpload() { getDriver() .findElement(By.id("file-upload-component-cancel-upload")) .click(); - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply( WebDriver input) { return !getDriver().findElement(By.id("file-upload-component")) @@ -78,7 +78,7 @@ public VersionDocumentsTab enterFilePath(String filePath) { public VersionDocumentsTab submitUpload() { log.info("Click Submit upload"); - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver input) { return getDriver().findElement( @@ -93,7 +93,7 @@ public boolean apply(WebDriver input) { public VersionDocumentsTab clickUploadDone() { log.info("Click upload Done button"); - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver input) { return getDriver() @@ -108,7 +108,7 @@ public boolean apply(WebDriver input) { public boolean sourceDocumentsContains(String document) { log.info("Query source documents contain {}", document); - List documentLabelList = waitForTenSec() + List documentLabelList = waitForAMoment() .until(new Function>() { @Override public List apply(WebDriver input) { @@ -158,7 +158,7 @@ private List getUploadListElements() { public String getUploadError() { log.info("Query upload error message"); - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver input) { return getDriver().findElement(By.id("file-upload-component")) diff --git a/functional-test/src/main/java/org/zanata/page/projectversion/versionsettings/VersionLanguagesTab.java b/functional-test/src/main/java/org/zanata/page/projectversion/versionsettings/VersionLanguagesTab.java index 0c6efea2df..9c865d492d 100644 --- a/functional-test/src/main/java/org/zanata/page/projectversion/versionsettings/VersionLanguagesTab.java +++ b/functional-test/src/main/java/org/zanata/page/projectversion/versionsettings/VersionLanguagesTab.java @@ -65,7 +65,7 @@ public VersionLanguagesTab clickInheritCheckbox() { public VersionLanguagesTab waitForLocaleListVisible() { log.info("Wait for locale list visible"); - waitForTenSec().until(new Function() { + waitForAMoment().until(new Function() { @Override public Boolean apply(WebDriver driver) { return getDriver() @@ -111,7 +111,7 @@ public void waitForLanguagesNotContains(String language) { private void waitForLanguageEntryExpected(final String language, final boolean exists) { - waitForTenSec().until(new Function() { + waitForAMoment().until(new Function() { @Override public Boolean apply(WebDriver driver) { return getEnabledLocaleList().contains(language) == exists; @@ -155,7 +155,7 @@ public boolean apply(WebDriver driver) { public VersionLanguagesTab addLocale(final String localeId) { log.info("Click to add {}", localeId); String message = "can not find locale - " + localeId; - waitForTenSec().withMessage(message).until(new Predicate() { + waitForAMoment().withMessage(message).until(new Predicate() { @Override public boolean apply(WebDriver driver) { List searchResults = diff --git a/functional-test/src/main/java/org/zanata/page/webtrans/EditorPage.java b/functional-test/src/main/java/org/zanata/page/webtrans/EditorPage.java index 5277e469e5..d2565e0134 100644 --- a/functional-test/src/main/java/org/zanata/page/webtrans/EditorPage.java +++ b/functional-test/src/main/java/org/zanata/page/webtrans/EditorPage.java @@ -76,7 +76,7 @@ public EditorPage(WebDriver driver) { public EditorPage searchGlossary(final String term) { log.info("Search glossary for {}", term); - waitForTenSec().until(new Predicate() { + waitForAMoment().until(new Predicate() { @Override public boolean apply(WebDriver input) { return input.findElements(glossaryNoResultBy).size() == 1 @@ -101,7 +101,7 @@ public boolean apply(WebDriver input) { */ public List> getGlossaryResultTable() { log.info("Query glossary results"); - return waitForTenSec().until( + return waitForAMoment().until( new Function>>() { @Override public List> apply(WebDriver input) { @@ -152,7 +152,7 @@ public String getMessageTargetAtRowIndex(final int rowIndex) { private String getCodeMirrorContent(final long rowIndex, final String idFormat, final Plurals plurals) { - return waitForTenSec().until(new Function() { + return waitForAMoment().until(new Function() { @Override public String apply(WebDriver input) { // code mirror will turn text into list of
.
@@ -169,7 +169,7 @@ public String apply(WebDriver input) {
     public EditorPage setSyntaxHighlighting(boolean option) {
         log.info("Set syntax highlight to {}", option);
         openConfigurationPanel();
-        WebElement highlight = waitForTenSec().until(new Function() {
+        WebElement highlight = waitForAMoment().until(new Function() {
             @Override
             public WebElement apply(WebDriver input) {
                 WebElement element = getDriver()
@@ -188,7 +188,7 @@ public WebElement apply(WebDriver input) {
 
     private Boolean openConfigurationPanel() {
         log.info("Click to open Configuration options");
-        waitForTenSec().until(new Predicate() {
+        waitForAMoment().until(new Predicate() {
             @Override
             public boolean apply(WebDriver input) {
                 return getDriver()
@@ -198,7 +198,7 @@ public boolean apply(WebDriver input) {
         });
         new Actions(getDriver()).click(
                 getDriver().findElement(By.className("i--settings"))).perform();
-        return waitForTenSec().until(new Function() {
+        return waitForAMoment().until(new Function() {
             @Override
             public Boolean apply(WebDriver input) {
                 return input.findElement(
@@ -227,7 +227,7 @@ public String getBasicTranslationTargetAtRowIndex(int rowIndex, Plurals plurals)
     public boolean expectBasicTranslationAtRowIndex(final int rowIndex,
                                                     final String expected) {
         log.info("Wait for text flow target at {} to be {}", rowIndex, expected);
-        return waitForTenSec().until(new  Function() {
+        return waitForAMoment().until(new  Function() {
             @Override
             public Boolean apply(WebDriver input) {
                 return getBasicTranslationTargetAtRowIndex(rowIndex).equals(expected);
@@ -238,7 +238,7 @@ public Boolean apply(WebDriver input) {
     private String getContentAtRowIndex(final long rowIndex,
             final String idFormat,
             final Plurals plural) {
-        return waitForTenSec().until(new Function() {
+        return waitForAMoment().until(new Function() {
             @Override
             public String apply(WebDriver input) {
                 return input.findElement(
@@ -262,7 +262,7 @@ public EditorPage translateTargetAtRowIndex(final int rowIndex, String text) {
 
     private void setTargetContent(final long rowIndex, final String text,
             final String idFormat, final Plurals plural) {
-        WebElement we = waitForTenSec().until(new Function() {
+        WebElement we = waitForAMoment().until(new Function() {
             @Override
             public WebElement apply(WebDriver input) {
                 return input.findElement(
@@ -284,7 +284,7 @@ public WebElement apply(WebDriver input) {
     public EditorPage pasteIntoRowAtIndex(final long rowIndex,
                                           final String text) {
         log.info("Paste at {} the text {}", rowIndex, text);
-        WebElement we = waitForTenSec().until(new Function() {
+        WebElement we = waitForAMoment().until(new Function() {
             @Override
             public WebElement apply(WebDriver input) {
                 return input.findElement(By.id(String.format(TARGET_ID_FMT,
@@ -339,7 +339,7 @@ public List getMessageSources() {
      */
     public String getValidationMessageCurrentTarget() {
         log.info("Query validation messages on current item");
-        waitForTenSec().until(new Function() {
+        waitForAMoment().until(new Function() {
             @Override
             public Boolean apply(WebDriver driver) {
                 WebElement webElement = getTargetValidationBox();
@@ -365,7 +365,7 @@ public boolean isValidationMessageCurrentTargetVisible() {
      */
     public void waitForValidationErrorsVisible() {
         log.info("Wait for validation message panel displayed");
-        waitForTenSec().until(new Function() {
+        waitForAMoment().until(new Function() {
             @Override
             public Boolean apply(WebDriver driver) {
                 return isValidationMessageCurrentTargetVisible();
@@ -381,7 +381,7 @@ public Boolean apply(WebDriver driver) {
     public EditorPage openValidationBox() {
         log.info("Click to open Validation panel");
         getTargetValidationBox().click();
-        waitForTenSec().until(new Function() {
+        waitForAMoment().until(new Function() {
             @Override
             public Boolean apply(WebDriver driver) {
                 String errorText = getValidationMessageCurrentTarget();
@@ -399,7 +399,7 @@ public Boolean apply(WebDriver driver) {
      */
     public EditorPage openValidationOptions() {
         log.info("Click to open Validation options panel");
-        waitForTenSec().until(new Predicate() {
+        waitForAMoment().until(new Predicate() {
             @Override
             public boolean apply(WebDriver input) {
                 return getDriver()
@@ -414,7 +414,7 @@ public boolean apply(WebDriver input) {
                         .findElement(By.className("new-zanata"))
                         .findElement(By.xpath("//a[@title='Validation options']")))
                 .perform();
-        waitForTenSec().until(new Function() {
+        waitForAMoment().until(new Function() {
             @Override
             public Boolean apply(WebDriver driver) {
                 return getDriver().findElement(By.id("validationOptionsView"))
diff --git a/functional-test/src/main/java/org/zanata/util/Constants.java b/functional-test/src/main/java/org/zanata/util/Constants.java
index a9a11791d3..9f469b807a 100644
--- a/functional-test/src/main/java/org/zanata/util/Constants.java
+++ b/functional-test/src/main/java/org/zanata/util/Constants.java
@@ -30,7 +30,7 @@ public enum Constants {
     propFile("setup.properties"), zanataInstance("zanata.instance.url"),
     projectsLink("Projects"), webDriverType("webdriver.type"), chrome, firefox,
     htmlUnit, sampleProjects("zanata.sample.projects.basedir"), zanataApiKey(
-            "zanata.apikey");
+            "zanata.apikey"), webDriverWait("webdriver.wait");
 
     public static final int FIFTY_SEC = 50000;
     private String value;
diff --git a/functional-test/src/main/java/org/zanata/util/WebElementUtil.java b/functional-test/src/main/java/org/zanata/util/WebElementUtil.java
index ba0071d55d..779214aa24 100644
--- a/functional-test/src/main/java/org/zanata/util/WebElementUtil.java
+++ b/functional-test/src/main/java/org/zanata/util/WebElementUtil.java
@@ -39,6 +39,7 @@
 import org.openqa.selenium.WebDriver;
 import org.openqa.selenium.WebElement;
 import org.openqa.selenium.support.ui.FluentWait;
+import org.zanata.page.WebDriverFactory;
 
 import static java.util.concurrent.TimeUnit.SECONDS;
 
@@ -64,7 +65,7 @@ private WebElementUtil() {
     }
 
     public static List elementsToText(WebDriver driver, final By by) {
-        return waitForTenSeconds(driver).until(
+        return waitForAMoment(driver).until(
                 new Function>() {
                     @Override
                     public List apply(@Nullable WebDriver input) {
@@ -75,7 +76,8 @@ public List apply(@Nullable WebDriver input) {
                         return ImmutableList.copyOf(Lists.transform(elements,
                                 WebElementToTextFunction.FUNCTION));
                     }
-                });
+                }
+        );
     }
 
     public static String getInnerHTML(WebDriver driver, WebElement element) {
@@ -91,7 +93,7 @@ public static List elementsToInnerHTML(WebDriver driver,
 
     public static List getTableRows(WebDriver driver,
             final By byQueryForTable) {
-        return waitForTenSeconds(driver).until(
+        return waitForAMoment(driver).until(
                 new Function>() {
                     @Override
                     public List apply(@Nullable WebDriver webDriver) {
@@ -105,12 +107,13 @@ public List apply(@Nullable WebDriver webDriver) {
                         return ImmutableList.copyOf(Lists.transform(rows,
                                 WebElementTableRowFunction.FUNCTION));
                     }
-                });
+                }
+        );
     }
 
     public static List getTableRows(WebDriver driver,
             final WebElement table) {
-        return waitForTenSeconds(driver).until(
+        return waitForAMoment(driver).until(
                 new Function>() {
                     @Override
                     public List apply(@Nullable WebDriver webDriver) {
@@ -122,7 +125,8 @@ public List apply(@Nullable WebDriver webDriver) {
                         return ImmutableList.copyOf(Lists.transform(rows,
                                 WebElementTableRowFunction.FUNCTION));
                     }
-                });
+                }
+        );
     }
 
     public static ImmutableList> transformToTwoDimensionList(
@@ -148,13 +152,13 @@ public static FluentWait waitForSeconds(WebDriver webDriver,
                         StaleElementReferenceException.class);
     }
 
-    public static FluentWait waitForTenSeconds(WebDriver webDriver) {
-        return waitForSeconds(webDriver, 10);
+    public static FluentWait waitForAMoment(WebDriver webDriver) {
+        return waitForSeconds(webDriver, WebDriverFactory.INSTANCE.getWebDriverWait());
     }
 
     public static List getColumnContents(WebDriver driver, final By by,
             final int columnIndex) {
-        return waitForTenSeconds(driver).until(
+        return waitForAMoment(driver).until(
                 new Function>() {
                     @Override
                     public List apply(@Nullable WebDriver input) {
@@ -164,7 +168,8 @@ public List apply(@Nullable WebDriver input) {
                         WebElement table;
                         try {
                             table = input.findElement(by);
-                        } catch (NoSuchElementException noElement) {
+                        }
+                        catch (NoSuchElementException noElement) {
                             // Some pages don't show a table, if there's no
                             // items to show
                             return Collections.emptyList();
@@ -186,15 +191,17 @@ public String apply(TableRow from) {
                                                 "column index");
                                         return cellContents.get(columnIndex);
                                     }
-                                }));
+                                }
+                        ));
                     }
-                });
+                }
+        );
 
     }
 
     public static List> getTwoDimensionList(WebDriver driver,
             final By by) {
-        return waitForTenSeconds(driver).until(
+        return waitForAMoment(driver).until(
                 new Function>>() {
                     @Override
                     public List> apply(@Nullable WebDriver input) {
@@ -209,11 +216,12 @@ public List> apply(@Nullable WebDriver input) {
                                         WebElementTableRowFunction.FUNCTION);
                         return transformToTwoDimensionList(tableRows);
                     }
-                });
+                }
+        );
     }
 
     public static List getListItems(WebDriver driver, final By by) {
-        return waitForTenSeconds(driver).until(
+        return waitForAMoment(driver).until(
                 new Function>() {
                     @Override
                     public List apply(@Nullable WebDriver input) {
@@ -223,7 +231,8 @@ public List apply(@Nullable WebDriver input) {
                         final WebElement list = input.findElement(by);
                         return list.findElements(By.xpath(".//li"));
                     }
-                });
+                }
+        );
     }
 
     /**
@@ -292,15 +301,17 @@ public static void searchAutocomplete(WebDriver driver, String id,
 
     public static List getSearchAutocompleteResults(
             WebDriver driver, final String formId, final String id) {
-        return waitForTenSeconds(driver).until(
+        return waitForAMoment(driver).until(
                 new Function>() {
-                @Override
-                public List apply(WebDriver input) {
-                    String locator = formId + ":" + id + ":" + id + "-result";
-                    return input.findElement(By.id(locator)).findElements(
-                            By.className("js-autocomplete__result"));
+                    @Override
+                    public List apply(WebDriver input) {
+                        String locator =
+                                formId + ":" + id + ":" + id + "-result";
+                        return input.findElement(By.id(locator)).findElements(
+                                By.className("js-autocomplete__result"));
+                    }
                 }
-        });
+        );
     }
 
     public static List getSearchAutocompleteItems(WebDriver driver,
diff --git a/functional-test/src/main/java/org/zanata/workflow/LoginWorkFlow.java b/functional-test/src/main/java/org/zanata/workflow/LoginWorkFlow.java
index bfd58e6c4c..ac63698b26 100644
--- a/functional-test/src/main/java/org/zanata/workflow/LoginWorkFlow.java
+++ b/functional-test/src/main/java/org/zanata/workflow/LoginWorkFlow.java
@@ -76,7 +76,7 @@ private void doSignIn(String username, String password) {
             .enterUsername(username)
             .enterPassword(password)
             .clickSignIn()
-            .waitForTenSec().until(new Predicate() {
+            .waitForAMoment().until(new Predicate() {
             @Override
             public boolean apply(WebDriver driver) {
                 List messages =
diff --git a/functional-test/src/test/resources/setup.properties b/functional-test/src/test/resources/setup.properties
index 5737a9672e..aaa727ce2e 100644
--- a/functional-test/src/test/resources/setup.properties
+++ b/functional-test/src/test/resources/setup.properties
@@ -8,6 +8,7 @@ webdriver.type=${webdriver.type}
 webdriver.log=${webdriver.log}
 webdriver.display=${webdriver.display}
 webdriver.screenshot.dir=${webdriver.screenshot.dir}
+webdriver.wait=${webdriver.wait}
 zanata.instance.url=${zanata.instance.url}
 zanata.sample.projects.basedir=${zanata.sample.projects.basedir}
 zanata.apikey=${zanata.apikey}