From 5eeb1faedc6a8b5885e7a5be95e7352cdd021aa8 Mon Sep 17 00:00:00 2001 From: Alex Eng Date: Tue, 13 Aug 2013 08:57:51 +1000 Subject: [PATCH] Fix functional test on dashboard and homepage --- .../main/java/org/zanata/page/BasePage.java | 31 +++--- .../zanata/page/utility/DashboardPage.java | 94 +++++++++++++++++++ .../org/zanata/page/utility/HomePage.java | 62 ------------ .../org/zanata/workflow/LoginWorkFlow.java | 23 +++-- .../feature/account/ChangePasswordTest.java | 13 +-- .../administration/EditHomePageTest.java | 14 +-- .../administration/ManageUsersFullTest.java | 8 +- .../administration/ManageUsersTest.java | 22 +++-- .../feature/dashboard/DashboardTest.java | 25 +++-- .../zanata/feature/security/LoginTest.java | 5 +- .../feature/security/SecurityFullTest.java | 17 ++-- .../startNewProject/AddLanguageTest.java | 8 +- .../DocumentListInWebTransTest.java | 19 ++-- .../TranslatorJoinsLanguageTeamTest.java | 8 +- .../versionGroup/VersionGroupBasicTest.java | 35 ++++--- .../versionGroup/VersionGroupFullTest.java | 18 ++-- .../main/webapp/WEB-INF/template/banner.xhtml | 2 +- 17 files changed, 226 insertions(+), 178 deletions(-) create mode 100644 functional-test/src/main/java/org/zanata/page/utility/DashboardPage.java 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 521663fd00..b85d1e870e 100644 --- a/functional-test/src/main/java/org/zanata/page/BasePage.java +++ b/functional-test/src/main/java/org/zanata/page/BasePage.java @@ -20,13 +20,9 @@ */ package org.zanata.page; -import com.google.common.base.Function; -import com.google.common.base.Optional; -import com.google.common.base.Preconditions; -import com.google.common.base.Predicate; -import com.google.common.collect.Collections2; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.Iterables; +import java.util.Collection; +import java.util.Collections; +import java.util.List; import lombok.extern.slf4j.Slf4j; @@ -46,11 +42,13 @@ import org.zanata.page.utility.HomePage; import org.zanata.util.WebElementUtil; -import java.util.Collection; -import java.util.Collections; -import java.util.List; - -import javax.annotation.Nullable; +import com.google.common.base.Function; +import com.google.common.base.Optional; +import com.google.common.base.Preconditions; +import com.google.common.base.Predicate; +import com.google.common.collect.Collections2; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Iterables; /** * @author Damian Jansen djansen@redhat.com @@ -77,6 +75,9 @@ public class BasePage extends AbstractPage @FindBy(id = "user_avatar") private WebElement userAvatar; + + @FindBy(id = "home") + private WebElement homeLink; private static final By BY_SIGN_IN = By.id("signin_link"); private static final By BY_SIGN_OUT = By.id("right_menu_sign_out_link"); @@ -98,6 +99,12 @@ public MyAccountPage goToMyProfile() return new MyAccountPage(getDriver()); } + + public HomePage goToHomePage() + { + homeLink.click(); + return new HomePage(getDriver()); + } public ProjectsPage goToProjects() { diff --git a/functional-test/src/main/java/org/zanata/page/utility/DashboardPage.java b/functional-test/src/main/java/org/zanata/page/utility/DashboardPage.java new file mode 100644 index 0000000000..e3afc94a35 --- /dev/null +++ b/functional-test/src/main/java/org/zanata/page/utility/DashboardPage.java @@ -0,0 +1,94 @@ +/* + * Copyright 2010, Red Hat, Inc. and individual contributors as indicated by the + * @author tags. See the copyright.txt file in the distribution for a full + * listing of individual contributors. + * + * This is free software; you can redistribute it and/or modify it under the + * terms of the GNU Lesser General Public License as published by the Free + * Software Foundation; either version 2.1 of the License, or (at your option) + * any later version. + * + * This software is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more + * details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this software; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF + * site: http://www.fsf.org. + */ +package org.zanata.page.utility; + +import java.util.ArrayList; +import java.util.List; + +import lombok.extern.slf4j.Slf4j; + +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.zanata.page.BasePage; +import org.zanata.util.WebElementUtil; + +public class DashboardPage extends BasePage +{ + + @FindBy(id = "main_body_content") + private WebElement mainBodyContent; + + public DashboardPage(final WebDriver driver) + { + super(driver); + } + + public boolean containActivityListSection() + { + return getDriver().findElement(By.id("activityList")) != null; + } + + public boolean containMyMaintainedProjectsSection() + { + return getDriver().findElement(By.id("maintainedProject")) != null; + } + + public List getMyActivityList() + { + WebElement listWrapper = getDriver().findElement(By.id("activityList")).findElement(By.tagName("ul")); + + if (listWrapper != null) + { + return listWrapper.findElements(By.xpath("./li")); + } + return new ArrayList(); + } + + public List getMyMaintainedProject() + { + WebElement listWrapper = getDriver().findElement(By.id("maintainedProject")).findElement(By.tagName("ul")); + + if (listWrapper != null) + { + return listWrapper.findElements(By.xpath("./li")); + } + return new ArrayList(); + } + + public void clickMoreActivity() + { + WebElement moreActivity = getMoreActivityElement(); + if (moreActivity != null) + { + moreActivity.click(); + WebElementUtil.waitForTenSeconds(getDriver()).until( + ExpectedConditions.invisibilityOfElementLocated(By.className("loader__spinner"))); + } + } + + public WebElement getMoreActivityElement() + { + return getDriver().findElement(By.id("moreActivity")); + } +} diff --git a/functional-test/src/main/java/org/zanata/page/utility/HomePage.java b/functional-test/src/main/java/org/zanata/page/utility/HomePage.java index c4781f3975..5ac13d23c9 100644 --- a/functional-test/src/main/java/org/zanata/page/utility/HomePage.java +++ b/functional-test/src/main/java/org/zanata/page/utility/HomePage.java @@ -20,22 +20,14 @@ */ package org.zanata.page.utility; -import java.util.ArrayList; -import java.util.List; - -import lombok.extern.slf4j.Slf4j; - import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; -import org.openqa.selenium.support.ui.ExpectedConditions; import org.zanata.page.BasePage; import org.zanata.page.administration.EditHomeCodePage; import org.zanata.page.administration.EditHomeContentPage; -import org.zanata.util.WebElementUtil; -@Slf4j public class HomePage extends BasePage { @@ -47,74 +39,20 @@ public HomePage(final WebDriver driver) super(driver); } - @Deprecated - // home page replace by dashboard public EditHomeContentPage goToEditPageContent() { getDriver().findElement(By.linkText("Edit Page Content")).click(); return new EditHomeContentPage(getDriver()); } - @Deprecated - // home page replace by dashboard public EditHomeCodePage goToEditPageCode() { getDriver().findElement(By.linkText("Edit Page Code")).click(); return new EditHomeCodePage(getDriver()); } - @Deprecated - // home page replace by dashboard public String getMainBodyContent() { return mainBodyContent.getText(); } - - public boolean containActivityListSection() - { - return getDriver().findElement(By.id("activityList")) != null; - } - - public boolean containMyMaintainedProjectsSection() - { - return getDriver().findElement(By.id("maintainedProject")) != null; - } - - public List getMyActivityList() - { - WebElement listWrapper = getDriver().findElement(By.id("activityList")).findElement(By.tagName("ul")); - - if (listWrapper != null) - { - return listWrapper.findElements(By.xpath("./li")); - } - return new ArrayList(); - } - - public List getMyMaintainedProject() - { - WebElement listWrapper = getDriver().findElement(By.id("maintainedProject")).findElement(By.tagName("ul")); - - if (listWrapper != null) - { - return listWrapper.findElements(By.xpath("./li")); - } - return new ArrayList(); - } - - public void clickMoreActivity() - { - WebElement moreActivity = getMoreActivityElement(); - if (moreActivity != null) - { - moreActivity.click(); - WebElementUtil.waitForTenSeconds(getDriver()).until( - ExpectedConditions.invisibilityOfElementLocated(By.className("loader__spinner"))); - } - } - - public WebElement getMoreActivityElement() - { - return getDriver().findElement(By.id("moreActivity")); - } } 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 4fdad766b7..9d1e8a93bb 100644 --- a/functional-test/src/main/java/org/zanata/workflow/LoginWorkFlow.java +++ b/functional-test/src/main/java/org/zanata/workflow/LoginWorkFlow.java @@ -20,33 +20,32 @@ */ package org.zanata.workflow; -import org.zanata.page.utility.HomePage; -import org.zanata.page.account.SignInPage; - import lombok.extern.slf4j.Slf4j; +import org.zanata.page.account.SignInPage; +import org.zanata.page.utility.DashboardPage; + @Slf4j public class LoginWorkFlow extends AbstractWebWorkFlow { - public HomePage signIn(String username, String password) + public DashboardPage signIn(String username, String password) { - // System.getProperties().put("webdriver.firefox.useExisting", "true"); log.info("accessing zanata at: {}", hostUrl); - HomePage homePage = new HomePage(driver); - if (homePage.hasLoggedIn()) + DashboardPage dashboardPage = new DashboardPage(driver); + if (dashboardPage.hasLoggedIn()) { log.info("already logged in as {}", username); - if (homePage.loggedInAs().equals(username)) + if (dashboardPage.loggedInAs().equals(username)) { - return homePage; + return dashboardPage; } log.info("sign out first then sign back in as {}", username); - homePage = homePage.logout(); + dashboardPage.logout(); } - SignInPage signInPage = homePage.clickSignInLink(); - return signInPage.signInAndGoToPage(username, password, HomePage.class); + SignInPage signInPage = dashboardPage.clickSignInLink(); + return signInPage.signInAndGoToPage(username, password, DashboardPage.class); } } diff --git a/functional-test/src/test/java/org/zanata/feature/account/ChangePasswordTest.java b/functional-test/src/test/java/org/zanata/feature/account/ChangePasswordTest.java index 61586d5e49..f6d15d2a95 100644 --- a/functional-test/src/test/java/org/zanata/feature/account/ChangePasswordTest.java +++ b/functional-test/src/test/java/org/zanata/feature/account/ChangePasswordTest.java @@ -20,6 +20,8 @@ */ package org.zanata.feature.account; +import static org.hamcrest.MatcherAssert.assertThat; + import org.hamcrest.Matchers; import org.junit.Before; import org.junit.Rule; @@ -29,13 +31,12 @@ import org.zanata.feature.DetailedTest; import org.zanata.page.account.ChangePasswordPage; import org.zanata.page.account.MyAccountPage; +import org.zanata.page.utility.DashboardPage; import org.zanata.page.utility.HomePage; import org.zanata.util.ResetDatabaseRule; import org.zanata.workflow.BasicWorkFlow; import org.zanata.workflow.LoginWorkFlow; -import static org.hamcrest.MatcherAssert.assertThat; - /** * @author Damian Jansen djansen@redhat.com */ @@ -68,8 +69,8 @@ public void changePasswordSuccessful() HomePage homePage = myAccountPage.logout(); assertThat("User is logged out", !homePage.hasLoggedIn()); - homePage = new LoginWorkFlow().signIn("translator", "newpassword"); - assertThat("User has logged in with the new password", homePage.hasLoggedIn()); + DashboardPage dashboardPage = new LoginWorkFlow().signIn("translator", "newpassword"); + assertThat("User has logged in with the new password", dashboardPage.hasLoggedIn()); } @Test @@ -117,8 +118,8 @@ public void changePasswordCancel() HomePage homePage = myAccountPage.logout(); assertThat("User is logged out", !homePage.hasLoggedIn()); - homePage = new LoginWorkFlow().signIn("translator", "translator"); - assertThat("User has logged in with the original password", homePage.hasLoggedIn()); + DashboardPage dashboardPage = new LoginWorkFlow().signIn("translator", "translator"); + assertThat("User has logged in with the original password", dashboardPage.hasLoggedIn()); } @Test diff --git a/functional-test/src/test/java/org/zanata/feature/administration/EditHomePageTest.java b/functional-test/src/test/java/org/zanata/feature/administration/EditHomePageTest.java index ac43c5b3a9..80fabb3aa6 100644 --- a/functional-test/src/test/java/org/zanata/feature/administration/EditHomePageTest.java +++ b/functional-test/src/test/java/org/zanata/feature/administration/EditHomePageTest.java @@ -26,6 +26,7 @@ import org.junit.Test; import org.junit.experimental.categories.Category; import org.zanata.feature.DetailedTest; +import org.zanata.page.utility.DashboardPage; import org.zanata.page.utility.HomePage; import org.zanata.page.administration.EditHomeCodePage; import org.zanata.page.administration.EditHomeContentPage; @@ -38,7 +39,6 @@ * @author Damian Jansen djansen@redhat.com */ @Category(DetailedTest.class) -@Ignore //Home page replaced by dashboard. No longer have edit page public class EditHomePageTest { @ClassRule @@ -48,7 +48,9 @@ public class EditHomePageTest @Ignore("Cannot access the editor via WebDriver") public void goToEditPageContent() { - EditHomeContentPage editHomeContentPage = new LoginWorkFlow().signIn("admin", "admin").goToEditPageContent(); + DashboardPage dashboard = new LoginWorkFlow().signIn("admin", "admin"); + EditHomeContentPage editHomeContentPage = dashboard.goToHomePage().goToEditPageContent(); + assertThat("Correct page", editHomeContentPage.getTitle(), Matchers.equalTo("Zanata: Edit Home Page")); editHomeContentPage = editHomeContentPage.enterText("Test"); HomePage homePage = editHomeContentPage.update(); @@ -56,13 +58,13 @@ public void goToEditPageContent() editHomeContentPage.cancelUpdate(); } - @Test(expected = AssertionError.class) // RHBZ-988162 - not updating immediately - public void goToEditPageCode() { - EditHomeCodePage editHomeCodePage = new LoginWorkFlow().signIn("admin", "admin").goToEditPageCode(); + DashboardPage dashboard = new LoginWorkFlow().signIn("admin", "admin"); + EditHomeCodePage editHomeCodePage = dashboard.goToHomePage().goToEditPageCode(); + assertThat("Correct page", editHomeCodePage.getTitle(), Matchers.equalTo("Zanata: Edit Page Code")); - HomePage homePage = editHomeCodePage.enterText("Test").update(); + HomePage homePage = editHomeCodePage.enterText("Test").update(); assertThat("Message displayed", homePage.getNotificationMessage(), Matchers.equalTo("Home content was successfully updated.")); editHomeCodePage = homePage.goToEditPageCode(); diff --git a/functional-test/src/test/java/org/zanata/feature/administration/ManageUsersFullTest.java b/functional-test/src/test/java/org/zanata/feature/administration/ManageUsersFullTest.java index 3d5ced257e..56b005951d 100644 --- a/functional-test/src/test/java/org/zanata/feature/administration/ManageUsersFullTest.java +++ b/functional-test/src/test/java/org/zanata/feature/administration/ManageUsersFullTest.java @@ -23,12 +23,14 @@ import org.junit.*; import org.junit.experimental.categories.Category; import org.zanata.feature.DetailedTest; +import org.zanata.page.utility.DashboardPage; import org.zanata.page.utility.HomePage; import org.zanata.page.administration.ManageUserPage; import org.zanata.page.administration.ManageUserAccountPage; import org.zanata.util.ResetDatabaseRule; import org.zanata.workflow.LoginWorkFlow; import org.hamcrest.Matchers; + import static org.hamcrest.MatcherAssert.assertThat; /** @@ -39,19 +41,19 @@ public class ManageUsersFullTest { @ClassRule public static ResetDatabaseRule resetDatabaseRule = new ResetDatabaseRule(ResetDatabaseRule.Config.Empty); - private HomePage homePage; + private DashboardPage dashboardPage; @Before public void before() { - homePage = new LoginWorkFlow().signIn("admin", "admin"); + dashboardPage = new LoginWorkFlow().signIn("admin", "admin"); } @Test public void changeAUsersUsername() { String username = "administratornamechange"; - ManageUserPage manageUserPage = homePage.goToAdministration().goToManageUserPage(); + ManageUserPage manageUserPage = dashboardPage.goToAdministration().goToManageUserPage(); ManageUserAccountPage manageUserAccountPage = manageUserPage.editUserAccount("admin"); manageUserPage = manageUserAccountPage.clearFields().enterUsername(username).saveUser(); diff --git a/functional-test/src/test/java/org/zanata/feature/administration/ManageUsersTest.java b/functional-test/src/test/java/org/zanata/feature/administration/ManageUsersTest.java index 8db2e58b45..653cb7fed4 100644 --- a/functional-test/src/test/java/org/zanata/feature/administration/ManageUsersTest.java +++ b/functional-test/src/test/java/org/zanata/feature/administration/ManageUsersTest.java @@ -30,30 +30,30 @@ import org.junit.runner.RunWith; import org.zanata.concordion.CustomResourceExtension; import org.zanata.feature.ConcordionTest; -import org.zanata.page.utility.HomePage; -import org.zanata.workflow.LoginWorkFlow; -import org.zanata.util.ResetDatabaseRule; -import org.zanata.page.administration.ManageUserPage; import org.zanata.page.administration.ManageUserAccountPage; +import org.zanata.page.administration.ManageUserPage; +import org.zanata.page.utility.DashboardPage; +import org.zanata.util.ResetDatabaseRule; +import org.zanata.workflow.LoginWorkFlow; @RunWith(ConcordionRunner.class) -@Extensions({ScreenshotExtension.class, TimestampFormatterExtension.class, CustomResourceExtension.class}) +@Extensions({ ScreenshotExtension.class, TimestampFormatterExtension.class, CustomResourceExtension.class }) @Category(ConcordionTest.class) public class ManageUsersTest { @ClassRule public static ResetDatabaseRule resetDatabaseRule = new ResetDatabaseRule(); - private HomePage homePage; + private DashboardPage dashboardPage; @Before public void before() { - homePage = new LoginWorkFlow().signIn("admin", "admin"); + dashboardPage = new LoginWorkFlow().signIn("admin", "admin"); } public ManageUserPage goToUserAdministration() { - return homePage.goToAdministration().goToManageUserPage(); + return dashboardPage.goToAdministration().goToManageUserPage(); } public ManageUserAccountPage editUserAccount(ManageUserPage manageUserPage, String username) @@ -61,9 +61,11 @@ public ManageUserAccountPage editUserAccount(ManageUserPage manageUserPage, Stri return manageUserPage.editUserAccount(username); } - public ManageUserPage changeUsernameAndPassword(ManageUserAccountPage manageUserAccount, String username, String password) + public ManageUserPage changeUsernameAndPassword(ManageUserAccountPage manageUserAccount, String username, + String password) { - return manageUserAccount.clearFields().enterUsername(username).enterPassword(password).enterConfirmPassword(password).saveUser(); + return manageUserAccount.clearFields().enterUsername(username).enterPassword(password) + .enterConfirmPassword(password).saveUser(); } public boolean userListContains(ManageUserPage manageUserPage, String username) diff --git a/functional-test/src/test/java/org/zanata/feature/dashboard/DashboardTest.java b/functional-test/src/test/java/org/zanata/feature/dashboard/DashboardTest.java index 5985fe9dfe..8d23cf6614 100644 --- a/functional-test/src/test/java/org/zanata/feature/dashboard/DashboardTest.java +++ b/functional-test/src/test/java/org/zanata/feature/dashboard/DashboardTest.java @@ -20,8 +20,6 @@ */ package org.zanata.feature.dashboard; -import lombok.extern.slf4j.Slf4j; - import org.concordion.api.extension.Extensions; import org.concordion.ext.ScreenshotExtension; import org.concordion.ext.TimestampFormatterExtension; @@ -31,7 +29,7 @@ import org.junit.runner.RunWith; import org.zanata.concordion.CustomResourceExtension; import org.zanata.feature.ConcordionTest; -import org.zanata.page.utility.HomePage; +import org.zanata.page.utility.DashboardPage; import org.zanata.util.ResetDatabaseRule; import org.zanata.workflow.BasicWorkFlow; import org.zanata.workflow.LoginWorkFlow; @@ -39,29 +37,28 @@ @RunWith(ConcordionRunner.class) @Extensions({ ScreenshotExtension.class, TimestampFormatterExtension.class, CustomResourceExtension.class }) @Category(ConcordionTest.class) -@Slf4j public class DashboardTest { @ClassRule public static ResetDatabaseRule rule = new ResetDatabaseRule(ResetDatabaseRule.Config.NoResetAfter, ResetDatabaseRule.Config.WithData); - private HomePage homePage; + private DashboardPage dashboardPage; public boolean signInAs(String username, String password) { - homePage = new LoginWorkFlow().signIn(username, password); + dashboardPage = new LoginWorkFlow().signIn(username, password); - return homePage.hasLoggedIn(); + return dashboardPage.hasLoggedIn(); } public boolean hasMyActivitiesSection() { - return homePage.containActivityListSection(); + return dashboardPage.containActivityListSection(); } public boolean hasMaintainedProjectsSection() { - return homePage.containMyMaintainedProjectsSection(); + return dashboardPage.containMyMaintainedProjectsSection(); } public void gotoDashboard() @@ -71,26 +68,26 @@ public void gotoDashboard() public boolean myActivitiesListNotEmpty() { - return !homePage.getMyActivityList().isEmpty(); + return !dashboardPage.getMyActivityList().isEmpty(); } public int myActivitiesCount() { - return homePage.getMyActivityList().size(); + return dashboardPage.getMyActivityList().size(); } public boolean myActivitiesCountIsMoreThan(int compareTo) { - return homePage.getMyActivityList().size() > compareTo; + return dashboardPage.getMyActivityList().size() > compareTo; } public boolean maintainedProjectNotEmpty() { - return !homePage.getMyMaintainedProject().isEmpty(); + return !dashboardPage.getMyMaintainedProject().isEmpty(); } public void clickMoreActivity() { - homePage.clickMoreActivity(); + dashboardPage.clickMoreActivity(); } } diff --git a/functional-test/src/test/java/org/zanata/feature/security/LoginTest.java b/functional-test/src/test/java/org/zanata/feature/security/LoginTest.java index a937ff4614..2bf2808f50 100644 --- a/functional-test/src/test/java/org/zanata/feature/security/LoginTest.java +++ b/functional-test/src/test/java/org/zanata/feature/security/LoginTest.java @@ -29,6 +29,7 @@ import org.junit.runner.RunWith; import org.zanata.concordion.CustomResourceExtension; import org.zanata.feature.ConcordionTest; +import org.zanata.page.utility.DashboardPage; import org.zanata.page.utility.HomePage; import org.zanata.util.ResetDatabaseRule; import org.zanata.workflow.LoginWorkFlow; @@ -44,9 +45,9 @@ public class LoginTest public boolean signInAs(String username, String password) { - HomePage homePage = new LoginWorkFlow().signIn(username, password); + DashboardPage dashboardPage = new LoginWorkFlow().signIn(username, password); - return homePage.hasLoggedIn(); + return dashboardPage.hasLoggedIn(); } public String getLoggedInUsername() diff --git a/functional-test/src/test/java/org/zanata/feature/security/SecurityFullTest.java b/functional-test/src/test/java/org/zanata/feature/security/SecurityFullTest.java index 4fc2b7165f..a37bf7fb94 100644 --- a/functional-test/src/test/java/org/zanata/feature/security/SecurityFullTest.java +++ b/functional-test/src/test/java/org/zanata/feature/security/SecurityFullTest.java @@ -20,6 +20,11 @@ */ package org.zanata.feature.security; +import static org.hamcrest.MatcherAssert.assertThat; + +import java.util.ArrayList; +import java.util.List; + import org.hamcrest.Matchers; import org.junit.Before; import org.junit.ClassRule; @@ -30,17 +35,11 @@ import org.zanata.feature.DetailedTest; import org.zanata.page.account.ResetPasswordPage; import org.zanata.page.account.SignInPage; -import org.zanata.page.utility.HomePage; +import org.zanata.page.utility.DashboardPage; import org.zanata.util.ResetDatabaseRule; import org.zanata.workflow.BasicWorkFlow; import org.zanata.workflow.LoginWorkFlow; -import java.util.ArrayList; -import java.util.List; - -import lombok.extern.slf4j.Slf4j; -import static org.hamcrest.MatcherAssert.assertThat; - /** * @author Damian Jansen djansen@redhat.com */ @@ -61,8 +60,8 @@ public void before() @Category(BasicAcceptanceTest.class) public void signInSuccessful() { - HomePage homePage = new LoginWorkFlow().signIn("admin", "admin"); - assertThat("User is logged in", homePage.loggedInAs(), Matchers.equalTo("admin")); + DashboardPage dashboardPage = new LoginWorkFlow().signIn("admin", "admin"); + assertThat("User is logged in", dashboardPage.loggedInAs(), Matchers.equalTo("admin")); } @Test diff --git a/functional-test/src/test/java/org/zanata/feature/startNewProject/AddLanguageTest.java b/functional-test/src/test/java/org/zanata/feature/startNewProject/AddLanguageTest.java index 33640a8fa5..7737cd3b1e 100644 --- a/functional-test/src/test/java/org/zanata/feature/startNewProject/AddLanguageTest.java +++ b/functional-test/src/test/java/org/zanata/feature/startNewProject/AddLanguageTest.java @@ -29,9 +29,9 @@ import org.junit.runner.RunWith; import org.zanata.concordion.CustomResourceExtension; import org.zanata.feature.ConcordionTest; -import org.zanata.page.utility.HomePage; import org.zanata.page.administration.ManageLanguagePage; import org.zanata.page.administration.ManageLanguageTeamMemberPage; +import org.zanata.page.utility.DashboardPage; import org.zanata.workflow.LoginWorkFlow; /** @@ -42,18 +42,18 @@ @Category(ConcordionTest.class) public class AddLanguageTest { - private HomePage homePage; + private DashboardPage dashboardPage; private ManageLanguagePage manageLanguagePage; @Before public void beforeMethod() { - homePage = new LoginWorkFlow().signIn("admin", "admin"); + dashboardPage = new LoginWorkFlow().signIn("admin", "admin"); } public ManageLanguagePage goToManageLanguagePage() { - manageLanguagePage = homePage.goToAdministration().goToManageLanguagePage(); + manageLanguagePage = dashboardPage.goToAdministration().goToManageLanguagePage(); return manageLanguagePage; } diff --git a/functional-test/src/test/java/org/zanata/feature/startNewProject/DocumentListInWebTransTest.java b/functional-test/src/test/java/org/zanata/feature/startNewProject/DocumentListInWebTransTest.java index 6edf62e003..43cf83d49e 100644 --- a/functional-test/src/test/java/org/zanata/feature/startNewProject/DocumentListInWebTransTest.java +++ b/functional-test/src/test/java/org/zanata/feature/startNewProject/DocumentListInWebTransTest.java @@ -20,6 +20,8 @@ */ package org.zanata.feature.startNewProject; +import java.util.List; + import org.concordion.api.extension.Extensions; import org.concordion.ext.ScreenshotExtension; import org.concordion.ext.TimestampFormatterExtension; @@ -28,19 +30,17 @@ import org.junit.runner.RunWith; import org.zanata.concordion.CustomResourceExtension; import org.zanata.feature.ConcordionTest; -import org.zanata.page.utility.HomePage; import org.zanata.page.projects.ProjectVersionPage; +import org.zanata.page.utility.DashboardPage; import org.zanata.page.webtrans.DocumentsViewPage; import org.zanata.workflow.BasicWorkFlow; import org.zanata.workflow.LoginWorkFlow; -import java.util.List; - /** * @author Patrick Huang pahuang@redhat.com */ @RunWith(ConcordionRunner.class) -@Extensions({ScreenshotExtension.class, TimestampFormatterExtension.class, CustomResourceExtension.class}) +@Extensions({ ScreenshotExtension.class, TimestampFormatterExtension.class, CustomResourceExtension.class }) @Category(ConcordionTest.class) public class DocumentListInWebTransTest { @@ -49,16 +49,17 @@ public class DocumentListInWebTransTest public boolean signInAs(String username, String password) { - HomePage homePage = new LoginWorkFlow().signIn(username, password); + DashboardPage dashboardPage = new LoginWorkFlow().signIn(username, password); - return homePage.hasLoggedIn(); + return dashboardPage.hasLoggedIn(); } public ProjectVersionPage goToProjectVersion(String projectName, String versionSlug) { - projectVersionPage = new BasicWorkFlow().goToPage(String.format("iteration/view/plurals/%s", versionSlug), ProjectVersionPage.class); -// ProjectPage projectPage = homePage.goToProjects().goToProject(projectName); -// projectVersionPage = projectPage.goToVersion(versionSlug); + projectVersionPage = new BasicWorkFlow().goToPage(String.format("iteration/view/plurals/%s", versionSlug), + ProjectVersionPage.class); + // ProjectPage projectPage = homePage.goToProjects().goToProject(projectName); + // projectVersionPage = projectPage.goToVersion(versionSlug); return projectVersionPage; } diff --git a/functional-test/src/test/java/org/zanata/feature/startNewProject/TranslatorJoinsLanguageTeamTest.java b/functional-test/src/test/java/org/zanata/feature/startNewProject/TranslatorJoinsLanguageTeamTest.java index dd0957d3d7..098ae4c3d2 100644 --- a/functional-test/src/test/java/org/zanata/feature/startNewProject/TranslatorJoinsLanguageTeamTest.java +++ b/functional-test/src/test/java/org/zanata/feature/startNewProject/TranslatorJoinsLanguageTeamTest.java @@ -29,9 +29,9 @@ import org.junit.runner.RunWith; import org.zanata.concordion.CustomResourceExtension; import org.zanata.feature.ConcordionTest; -import org.zanata.page.utility.HomePage; import org.zanata.page.administration.ManageLanguagePage; import org.zanata.page.administration.ManageLanguageTeamMemberPage; +import org.zanata.page.utility.DashboardPage; import org.zanata.workflow.LoginWorkFlow; /** @@ -42,19 +42,19 @@ @Category(ConcordionTest.class) public class TranslatorJoinsLanguageTeamTest { - private HomePage homePage; + private DashboardPage dashboardPage; private ManageLanguagePage manageLanguagePage; private ManageLanguageTeamMemberPage manageLanguageTeamMemberPage; @Before public void beforeMethod() { - homePage = new LoginWorkFlow().signIn("admin", "admin"); + dashboardPage = new LoginWorkFlow().signIn("admin", "admin"); } public void goToManageLanguagePage() { - manageLanguagePage = homePage.goToAdministration().goToManageLanguagePage(); + manageLanguagePage = dashboardPage.goToAdministration().goToManageLanguagePage(); } public ManageLanguageTeamMemberPage manageLanguage(String locale) diff --git a/functional-test/src/test/java/org/zanata/feature/versionGroup/VersionGroupBasicTest.java b/functional-test/src/test/java/org/zanata/feature/versionGroup/VersionGroupBasicTest.java index bc423593fa..5edac41ab4 100644 --- a/functional-test/src/test/java/org/zanata/feature/versionGroup/VersionGroupBasicTest.java +++ b/functional-test/src/test/java/org/zanata/feature/versionGroup/VersionGroupBasicTest.java @@ -20,7 +20,10 @@ */ package org.zanata.feature.versionGroup; +import static org.hamcrest.MatcherAssert.assertThat; + import java.util.List; + import org.concordion.api.extension.Extensions; import org.concordion.ext.ScreenshotExtension; import org.concordion.ext.TimestampFormatterExtension; @@ -31,22 +34,20 @@ import org.junit.runner.RunWith; import org.zanata.concordion.CustomResourceExtension; import org.zanata.feature.ConcordionTest; -import org.zanata.page.utility.HomePage; +import org.zanata.page.groups.CreateVersionGroupPage; import org.zanata.page.groups.VersionGroupPage; import org.zanata.page.groups.VersionGroupsPage; -import org.zanata.page.groups.CreateVersionGroupPage; import org.zanata.page.projects.ProjectPage; +import org.zanata.page.utility.DashboardPage; +import org.zanata.util.ResetDatabaseRule; import org.zanata.workflow.LoginWorkFlow; import org.zanata.workflow.ProjectWorkFlow; -import org.zanata.util.ResetDatabaseRule; - -import static org.hamcrest.MatcherAssert.assertThat; /** * @author Patrick Huang pahuang@redhat.com */ @RunWith(ConcordionRunner.class) -@Extensions({ScreenshotExtension.class, TimestampFormatterExtension.class, CustomResourceExtension.class}) +@Extensions({ ScreenshotExtension.class, TimestampFormatterExtension.class, CustomResourceExtension.class }) @Category(ConcordionTest.class) public class VersionGroupBasicTest { @@ -54,32 +55,35 @@ public class VersionGroupBasicTest @ClassRule public static ResetDatabaseRule resetDatabaseRule = new ResetDatabaseRule(); private final ProjectWorkFlow projectWorkFlow = new ProjectWorkFlow(); - private HomePage homePage; + private DashboardPage dashboardPage; private VersionGroupPage versionGroupPage; @Before public void before() { - homePage = new LoginWorkFlow().signIn("admin", "admin"); + dashboardPage = new LoginWorkFlow().signIn("admin", "admin"); } public VersionGroupsPage createNewVersionGroup(String groupId, String groupName, String groupDesc, String groupStatus) { - VersionGroupsPage versionGroupsPage = homePage.goToGroups(); - return versionGroupsPage.createNewGroup().inputGroupId(groupId).inputGroupName(groupName).inputGroupDescription(groupDesc).selectStatus(groupStatus).saveGroup(); + VersionGroupsPage versionGroupsPage = dashboardPage.goToGroups(); + return versionGroupsPage.createNewGroup().inputGroupId(groupId).inputGroupName(groupName) + .inputGroupDescription(groupDesc).selectStatus(groupStatus).saveGroup(); } - public CreateVersionGroupPage groupIDAlreadyExists(String groupId, String groupName, String groupDesc, String groupStatus) + public CreateVersionGroupPage groupIDAlreadyExists(String groupId, String groupName, String groupDesc, + String groupStatus) { - VersionGroupsPage versionGroupsPage = homePage.goToGroups(); + VersionGroupsPage versionGroupsPage = dashboardPage.goToGroups(); List groupNames = versionGroupsPage.getGroupNames(); assertThat("Group does not exist, preconditions not met", groupNames.contains(groupName)); - return versionGroupsPage.createNewGroup().inputGroupId(groupId).inputGroupName(groupName).inputGroupDescription(groupDesc).selectStatus(groupStatus).saveGroupFailure(); + return versionGroupsPage.createNewGroup().inputGroupId(groupId).inputGroupName(groupName) + .inputGroupDescription(groupDesc).selectStatus(groupStatus).saveGroupFailure(); } public CreateVersionGroupPage invalidCharacters(String groupId) { - VersionGroupsPage versionGroupsPage = homePage.goToGroups(); + VersionGroupsPage versionGroupsPage = dashboardPage.goToGroups(); // we toggle the status here to trigger and wait for the validation of group id to happen return versionGroupsPage.createNewGroup().inputGroupId(groupId).selectStatus("OBSOLETE").selectStatus("ACTIVE"); } @@ -114,7 +118,8 @@ public VersionGroupsPage groups() public void createProjectAndVersion(String projectId, String projectName, String version) { ProjectPage projectPage = projectWorkFlow.createNewProject(projectId, projectName); - projectPage.clickCreateVersionLink().inputVersionId(version).selectStatus("READONLY").selectStatus("ACTIVE").saveVersion(); + projectPage.clickCreateVersionLink().inputVersionId(version).selectStatus("READONLY").selectStatus("ACTIVE") + .saveVersion(); } public List> searchProjectToAddToVersionGroup(String searchTerm) diff --git a/functional-test/src/test/java/org/zanata/feature/versionGroup/VersionGroupFullTest.java b/functional-test/src/test/java/org/zanata/feature/versionGroup/VersionGroupFullTest.java index 35fe9d76d1..11f61ffa45 100644 --- a/functional-test/src/test/java/org/zanata/feature/versionGroup/VersionGroupFullTest.java +++ b/functional-test/src/test/java/org/zanata/feature/versionGroup/VersionGroupFullTest.java @@ -20,6 +20,8 @@ */ package org.zanata.feature.versionGroup; +import static org.hamcrest.MatcherAssert.assertThat; + import org.hamcrest.Matchers; import org.junit.Before; import org.junit.ClassRule; @@ -27,15 +29,13 @@ import org.junit.experimental.categories.Category; import org.zanata.feature.BasicAcceptanceTest; import org.zanata.feature.DetailedTest; -import org.zanata.page.utility.HomePage; import org.zanata.page.groups.CreateVersionGroupPage; import org.zanata.page.groups.VersionGroupPage; import org.zanata.page.groups.VersionGroupsPage; +import org.zanata.page.utility.DashboardPage; import org.zanata.util.ResetDatabaseRule; import org.zanata.workflow.LoginWorkFlow; -import static org.hamcrest.MatcherAssert.assertThat; - /** * @author Damian Jansen djansen@redhat.com */ @@ -44,12 +44,12 @@ public class VersionGroupFullTest { @ClassRule public static ResetDatabaseRule resetDatabaseRule = new ResetDatabaseRule(); - private HomePage homePage; + private DashboardPage dashboardPage; @Before public void before() { - homePage = new LoginWorkFlow().signIn("admin", "admin"); + dashboardPage = new LoginWorkFlow().signIn("admin", "admin"); } @Test @@ -59,7 +59,7 @@ public void createABasicGroup() String groupID = "basic-group"; String groupName = "A Basic Group"; - CreateVersionGroupPage createVersionGroupPage = homePage.goToGroups().createNewGroup(); + CreateVersionGroupPage createVersionGroupPage = dashboardPage.goToGroups().createNewGroup(); createVersionGroupPage.inputGroupId(groupID); createVersionGroupPage.inputGroupName(groupName); createVersionGroupPage.inputGroupDescription("A basic group can be saved"); @@ -77,7 +77,7 @@ public void requiredFields() String groupID = "verifyRequiredFieldsGroupID"; String groupName = "verifyRequiredFieldsGroupName"; - CreateVersionGroupPage groupPage = homePage.goToGroups().createNewGroup().saveGroupFailure(); + CreateVersionGroupPage groupPage = dashboardPage.goToGroups().createNewGroup().saveGroupFailure(); assertThat("The two errors are value is required", groupPage.getErrors(), Matchers.contains(errorMsg, errorMsg)); groupPage = groupPage.clearFields().inputGroupName(groupName).saveGroupFailure(); @@ -94,7 +94,7 @@ public void groupIDFieldSize() String groupID = "abcdefghijklmnopqrstuvwxyzabcdefghijklmno"; String groupName = "verifyIDFieldSizeName"; - CreateVersionGroupPage groupPage = homePage.goToGroups().createNewGroup(); + CreateVersionGroupPage groupPage = dashboardPage.goToGroups().createNewGroup(); groupPage.inputGroupId(groupID).inputGroupName(groupName).saveGroupFailure(); assertThat("Invalid length error is shown", groupPage.getErrors(), Matchers.contains(errorMsg)); @@ -116,7 +116,7 @@ public void groupDescriptionFieldSize() "This text is to test that the description field takes no more than exactly 100 characters - actually."; assertThat("Description length is greater than 100 characters", groupDescription.length(), Matchers.equalTo(101)); - CreateVersionGroupPage groupPage = homePage.goToGroups().createNewGroup(); + CreateVersionGroupPage groupPage = dashboardPage.goToGroups().createNewGroup(); groupPage.inputGroupId(groupID).inputGroupName(groupName).inputGroupDescription(groupDescription); groupPage.saveGroupFailure(); assertThat("Invalid length error is shown", groupPage.getErrors(), Matchers.contains(errorMsg)); diff --git a/zanata-war/src/main/webapp/WEB-INF/template/banner.xhtml b/zanata-war/src/main/webapp/WEB-INF/template/banner.xhtml index 50a63bb743..4831c5f79c 100644 --- a/zanata-war/src/main/webapp/WEB-INF/template/banner.xhtml +++ b/zanata-war/src/main/webapp/WEB-INF/template/banner.xhtml @@ -13,7 +13,7 @@

- + #{messages['jsf.Zanata']}