Skip to content
This repository has been archived by the owner on Nov 9, 2017. It is now read-only.

Commit

Permalink
fix functional test
Browse files Browse the repository at this point in the history
  • Loading branch information
Alex Eng committed Jun 22, 2015
1 parent 3d51cf3 commit 1e52899
Show file tree
Hide file tree
Showing 5 changed files with 33 additions and 20 deletions.
Expand Up @@ -28,6 +28,7 @@
import org.zanata.page.BasePage;
import org.zanata.util.WebElementUtil;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

Expand All @@ -39,11 +40,14 @@ public class ProjectsPage extends BasePage {
public static final int PROJECT_NAME_COLUMN = 0;

private By createProjectButton = By.id("createProjectLink");
private By mainContentDiv = By.id("main_body_content");
private By searchProjectForm = By.id("search-project_form");
private By projectTable = By.id("main_content:form:projectList");
private By activeCheckBox = By.xpath("//*[@data-original-title='Filter active projects']");
private By readOnlyCheckBox = By.xpath("//*[@data-original-title='Filter read-only projects']");

private By projectTabSearchPage = By.id("projects_tab");
private By userTabSearchPage = By.id("users_tab");

public ProjectsPage(final WebDriver driver) {
super(driver);
}
Expand Down Expand Up @@ -71,15 +75,24 @@ public ProjectVersionsPage apply(WebDriver input) {
}, "Find and go to project " + projectName);
}

public List<String> getProjectNamesOnCurrentPage() {
public List<String> getProjectNamesOnSearchPage() {
log.info("Query Projects list");
if (readyElement(mainContentDiv)
.getText().contains("No project exists")) {
return Collections.emptyList();
waitForPageSilence();
gotoProjectTabInSearchPage();

log.info("Query Group project versions");

List<String> names = new ArrayList<String>();
for (WebElement row : readyElement(searchProjectForm)
.findElements(By.xpath("//h3[@class='list__title']"))) {
names.add(row.getText());
}
return names;

}

return WebElementUtil.getColumnContents(getDriver(), projectTable,
PROJECT_NAME_COLUMN);
public void gotoProjectTabInSearchPage() {
clickElement(projectTabSearchPage);
}

/**
Expand All @@ -90,7 +103,7 @@ public List<String> getProjectNamesOnCurrentPage() {
public ProjectsPage expectProjectVisible(final String projectName) {
log.info("Wait for project {} visible", projectName);
waitForPageSilence();
assertThat(getProjectNamesOnCurrentPage()).contains(projectName);
assertThat(getProjectNamesOnSearchPage()).contains(projectName);
return new ProjectsPage(getDriver());
}

Expand All @@ -102,7 +115,7 @@ public ProjectsPage expectProjectVisible(final String projectName) {
public ProjectsPage expectProjectNotVisible(final String projectName) {
log.info("Wait for project {} not visible", projectName);
waitForPageSilence();
assertThat(getProjectNamesOnCurrentPage()).doesNotContain(
assertThat(getProjectNamesOnSearchPage()).doesNotContain(
projectName);
return new ProjectsPage(getDriver());
}
Expand Down
Expand Up @@ -52,7 +52,7 @@ public class ProjectWorkFlow extends AbstractWebWorkFlow {
public ProjectVersionsPage createNewSimpleProject(String projectId,
String projectName) {
ProjectsPage projectsPage = goToHome().goToProjects();
List<String> projects = projectsPage.getProjectNamesOnCurrentPage();
List<String> projects = projectsPage.getProjectNamesOnSearchPage();
log.info("current projects: {}", projects);

if (projects.contains(projectName)) {
Expand All @@ -79,7 +79,7 @@ public ProjectVersionsPage createNewSimpleProject(String projectId,
*/
public ProjectVersionsPage createNewProject(HashMap<String, String> settings) {
ProjectsPage projectsPage = goToHome().goToProjects();
List<String> projects = projectsPage.getProjectNamesOnCurrentPage();
List<String> projects = projectsPage.getProjectNamesOnSearchPage();
log.info("current projects: {}", projects);
CreateProjectPage createProjectPage = projectsPage
.clickOnCreateProjectLink()
Expand Down Expand Up @@ -148,7 +148,7 @@ public VersionLanguagesPage createNewProjectVersion(String projectName,
public ProjectVersionsPage goToProjectByName(String projectName) {
ProjectsPage projects = goToHome().goToProjects();
log.info("go to project by name with current projects: {}, name: {}",
projects.getProjectNamesOnCurrentPage(), projectName);
projects.getProjectNamesOnSearchPage(), projectName);
return projects.goToProject(projectName);
}

Expand Down
Expand Up @@ -73,15 +73,15 @@ public void setAProjectToReadOnly() throws Exception {
.setReadOnlyFilterEnabled(false)
.expectProjectNotVisible("about fedora");

assertThat(projectsPage.getProjectNamesOnCurrentPage())
assertThat(projectsPage.getProjectNamesOnSearchPage())
.doesNotContain("about fedora")
.as("The project is not displayed");

projectsPage = projectsPage.setActiveFilterEnabled(false)
.setReadOnlyFilterEnabled(true)
.expectProjectVisible("about fedora");

assertThat(projectsPage.getProjectNamesOnCurrentPage())
assertThat(projectsPage.getProjectNamesOnSearchPage())
.contains("about fedora")
.as("The project is now displayed");
}
Expand All @@ -100,7 +100,7 @@ public void setAProjectToWritable() throws Exception {
.setActiveFilterEnabled(false)
.setReadOnlyFilterEnabled(true)
.expectProjectVisible("about fedora")
.getProjectNamesOnCurrentPage())
.getProjectNamesOnSearchPage())
.contains("about fedora")
.as("The project is locked");

Expand All @@ -116,7 +116,7 @@ public void setAProjectToWritable() throws Exception {
.setReadOnlyFilterEnabled(false)
.expectProjectVisible("about fedora");

assertThat(projectsPage.getProjectNamesOnCurrentPage())
assertThat(projectsPage.getProjectNamesOnSearchPage())
.contains("about fedora")
.as("The project is now displayed");
}
Expand Down
Expand Up @@ -38,7 +38,7 @@ public void deleteAProject() throws Exception {
.confirmDeleteProject()
.goToProjects();

assertThat(projectsPage.getProjectNamesOnCurrentPage())
assertThat(projectsPage.getProjectNamesOnSearchPage())
.doesNotContain("about fedora")
.as("The project is not displayed");

Expand All @@ -47,7 +47,7 @@ public void deleteAProject() throws Exception {

projectsPage.expectProjectVisible("about fedora");

assertThat(projectsPage.getProjectNamesOnCurrentPage())
assertThat(projectsPage.getProjectNamesOnSearchPage())
.contains("about fedora")
.as("The project is now displayed");

Expand All @@ -56,7 +56,7 @@ public void deleteAProject() throws Exception {
assertThat(new LoginWorkFlow()
.signIn("translator", "translator")
.goToProjects()
.getProjectNamesOnCurrentPage())
.getProjectNamesOnSearchPage())
.doesNotContain("about fedora")
.as("User cannot navigate to the archived project");
}
Expand Down
Expand Up @@ -78,7 +78,7 @@ public void unsuccessfulProjectSearch() throws Exception {
.expectSearchListContains("Search Zanata for 'arodef'")
.submitSearch();

assertThat(projectsPage.getProjectNamesOnCurrentPage().isEmpty())
assertThat(projectsPage.getProjectNamesOnSearchPage().isEmpty())
.isTrue()
.as("No projects are displayed");
}
Expand Down

0 comments on commit 1e52899

Please sign in to comment.