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 3e8d2aab58..7d7f473e42 100644 --- a/functional-test/src/main/java/org/zanata/page/CorePage.java +++ b/functional-test/src/main/java/org/zanata/page/CorePage.java @@ -193,6 +193,15 @@ public void defocus() { } } + /** + * Force the blur 'unfocus' process on a given element + */ + public void defocus(By elementBy) { + log.info("Force unfocus"); + WebElement element = getDriver().findElement(elementBy); + ((JavascriptExecutor) getDriver()).executeScript("arguments[0].blur()", element); + } + /* The system sometimes moves too fast for the Ajax pages, so provide a * pause */ diff --git a/functional-test/src/main/java/org/zanata/page/account/EditProfilePage.java b/functional-test/src/main/java/org/zanata/page/account/EditProfilePage.java index f55adc9acd..addb2d5246 100644 --- a/functional-test/src/main/java/org/zanata/page/account/EditProfilePage.java +++ b/functional-test/src/main/java/org/zanata/page/account/EditProfilePage.java @@ -47,7 +47,7 @@ public EditProfilePage enterName(String name) { log.info("Enter name {}", name); waitForWebElement(nameField).clear(); waitForWebElement(nameField).sendKeys(name); - defocus(); + defocus(nameField); return new EditProfilePage(getDriver()); } @@ -62,7 +62,7 @@ public EditProfilePage enterEmail(String email) { log.info("Enter email {}", email); waitForWebElement(emailField).clear(); waitForWebElement(emailField).sendKeys(email); - defocus(); + defocus(emailField); return new EditProfilePage(getDriver()); } 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 110960e899..f78fbc8d66 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 @@ -53,7 +53,7 @@ public class RegisterPage extends CorePage { private By nameField = By.id("loginForm:name"); private By emailField = By.id("loginForm:emailField:email"); - private By usernameField = By.id("loginForm:usernameField:username"); + public By usernameField = By.id("loginForm:usernameField:username"); private By passwordField = By.id("loginForm:passwordField:password"); private By signUpButton = By.xpath("//input[@value='Sign Up']"); private By showHideToggleButton = By.className("js-form-password-toggle"); diff --git a/functional-test/src/main/java/org/zanata/page/projects/projectsettings/ProjectGeneralTab.java b/functional-test/src/main/java/org/zanata/page/projects/projectsettings/ProjectGeneralTab.java index f483080652..f5889d847f 100644 --- a/functional-test/src/main/java/org/zanata/page/projects/projectsettings/ProjectGeneralTab.java +++ b/functional-test/src/main/java/org/zanata/page/projects/projectsettings/ProjectGeneralTab.java @@ -73,7 +73,7 @@ public ProjectGeneralTab enterProjectName(final String projectName) { log.info("Enter project name {}", projectName); waitForWebElement(projectNameField).clear(); waitForWebElement(projectNameField).sendKeys(projectName); - defocus(); + defocus(projectNameField); return new ProjectGeneralTab(getDriver()); } @@ -86,7 +86,7 @@ public ProjectGeneralTab enterDescription(String projectDescription) { log.info("Enter project description {}", projectDescription); waitForWebElement(descriptionField).clear(); waitForWebElement(descriptionField).sendKeys(projectDescription); - defocus(); + defocus(descriptionField); return new ProjectGeneralTab(getDriver()); } 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 77f521b454..0c5a880253 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 @@ -37,7 +37,7 @@ public class CreateVersionPage extends BasePage { "must start and end with letter or number, and contain only " + "letters, numbers, periods, underscores and hyphens."; - private By projectVersionID = By.id("create-version-form:slugField:slug"); + public By projectVersionID = By.id("create-version-form:slugField:slug"); private By projectTypeSelection = By.id("create-version-form:project-type"); private By saveButton = By.id("create-version-form:button-create"); private By copyFromPreviousVersionChk = By.id("create-version-form:copy-from-version"); diff --git a/functional-test/src/test/java/org/zanata/feature/account/RegisterTest.java b/functional-test/src/test/java/org/zanata/feature/account/RegisterTest.java index 22dcd0b2c5..a4eb239472 100644 --- a/functional-test/src/test/java/org/zanata/feature/account/RegisterTest.java +++ b/functional-test/src/test/java/org/zanata/feature/account/RegisterTest.java @@ -130,7 +130,7 @@ public void usernamePreExisting() throws Exception { RegisterPage registerPage = homePage .goToRegistration() .enterUserName("admin"); - registerPage.defocus(); + registerPage.defocus(registerPage.usernameField); assertThat(registerPage.expectError( RegisterPage.USERNAME_UNAVAILABLE_ERROR)) diff --git a/functional-test/src/test/java/org/zanata/feature/account/UsernameValidationTest.java b/functional-test/src/test/java/org/zanata/feature/account/UsernameValidationTest.java index 435fc1facd..cccf6daf24 100644 --- a/functional-test/src/test/java/org/zanata/feature/account/UsernameValidationTest.java +++ b/functional-test/src/test/java/org/zanata/feature/account/UsernameValidationTest.java @@ -48,7 +48,7 @@ public void usernameCharacterValidation() throws Exception { .goToHome() .goToRegistration() .enterUserName("user|name"); - registerPage.defocus(); + registerPage.defocus(registerPage.usernameField); assertThat(registerPage.expectError( RegisterPage.USERNAME_VALIDATION_ERROR)) diff --git a/functional-test/src/test/java/org/zanata/feature/projectversion/CreateProjectVersionTest.java b/functional-test/src/test/java/org/zanata/feature/projectversion/CreateProjectVersionTest.java index a6d3f7f2db..2022c74e18 100644 --- a/functional-test/src/test/java/org/zanata/feature/projectversion/CreateProjectVersionTest.java +++ b/functional-test/src/test/java/org/zanata/feature/projectversion/CreateProjectVersionTest.java @@ -85,7 +85,7 @@ public void idFieldMustNotBeEmpty() throws Exception { .goToProjectByName("about fedora") .clickCreateVersionLink() .inputVersionId(""); - createVersionPage.defocus(); + createVersionPage.defocus(createVersionPage.projectVersionID); assertThat(createVersionPage.getErrors()) .contains("value is required") @@ -101,7 +101,7 @@ public void idStartsAndEndsWithAlphanumeric() throws Exception { .goToProjectByName("about fedora") .clickCreateVersionLink() .inputVersionId("-A"); - createVersionPage.defocus(); + createVersionPage.defocus(createVersionPage.projectVersionID); assertThat(createVersionPage.expectError( CreateVersionPage.VALIDATION_ERROR)) @@ -109,7 +109,7 @@ public void idStartsAndEndsWithAlphanumeric() throws Exception { .as("The input is rejected"); createVersionPage = createVersionPage.inputVersionId("B-"); - createVersionPage.defocus(); + createVersionPage.defocus(createVersionPage.projectVersionID); assertThat(createVersionPage.expectError( CreateVersionPage.VALIDATION_ERROR)) @@ -117,7 +117,7 @@ public void idStartsAndEndsWithAlphanumeric() throws Exception { .as("The input is rejected"); createVersionPage = createVersionPage.inputVersionId("_C_"); - createVersionPage.defocus(); + createVersionPage.defocus(createVersionPage.projectVersionID); createVersionPage = createVersionPage.waitForNumErrors(1); assertThat(createVersionPage.expectError( @@ -126,7 +126,7 @@ public void idStartsAndEndsWithAlphanumeric() throws Exception { .as("The input is rejected"); createVersionPage = createVersionPage.inputVersionId("A-B_C"); - createVersionPage.defocus(); + createVersionPage.defocus(createVersionPage.projectVersionID); createVersionPage = createVersionPage.waitForNumErrors(0); assertThat(createVersionPage.getErrors())