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

Commit

Permalink
Merge pull request #716 from zanata/edit-and-delete-project-lang-alias
Browse files Browse the repository at this point in the history
Edit and delete tests for project language alias
  • Loading branch information
djansen-redhat committed Mar 26, 2015
2 parents d43744f + 386919d commit 5c0fe34
Show file tree
Hide file tree
Showing 3 changed files with 90 additions and 2 deletions.
Expand Up @@ -180,6 +180,11 @@ public ProjectLanguagesTab clickAddAlias(String locale) {
return new ProjectLanguagesTab(getDriver());
}

public ProjectLanguagesTab clickEditAlias(String locale) {
LanguageList.clickEditAlias(waitForWebElement(activeLocales), locale);
return new ProjectLanguagesTab(getDriver());
}

public ProjectLanguagesTab enterAliasForLocale(String locale, String alias) {
LanguageList.enterAlias(waitForWebElement(activeLocales),
locale, alias);
Expand All @@ -191,6 +196,11 @@ public ProjectLanguagesTab saveLocaleAlias(String locale) {
return new ProjectLanguagesTab(getDriver());
}

public ProjectLanguagesTab deleteAlias(String locale) {
LanguageList.unsetAlias(waitForWebElement(activeLocales), locale);
return new ProjectLanguagesTab(getDriver());
}

public String getAlias(String locale) {
return LanguageList.getAliasForLocale(waitForWebElement(activeLocales),
locale);
Expand Down
25 changes: 23 additions & 2 deletions functional-test/src/main/java/org/zanata/util/LanguageList.java
Expand Up @@ -43,6 +43,8 @@ private LanguageList(){}
private static By aliasInput = By.className("form--inline__input");
private static By setAlias = By.className("form--inline__addon");
private static By addAliasLink = By.linkText("Add alias");
private static By deleteAliasLink = By.className("i--trash");
private static By editAliasLink = By.linkText("Edit alias");

public static List<String> getListedLocales(WebElement localeList) {
return Lists.transform(getListElements(localeList),
Expand Down Expand Up @@ -86,21 +88,40 @@ public static void clickAddAlias(WebElement list, String locale) {
getLocaleEntry(list, locale).findElement(addAliasLink).click();
}

public static void clickEditAlias(WebElement list, String locale) {
getLocaleEntry(list, locale).findElement(editAliasLink).click();
}

public static void enterAlias(WebElement localeList, String locale,
String alias) {
getLocaleEntry(localeList, locale).findElement(aliasInput)
.sendKeys(alias);
WebElement field = getLocaleEntry(localeList, locale)
.findElement(aliasInput);
field.clear();
field.sendKeys(alias);
}

public static void setAlias(WebElement localeList, String locale) {
getLocaleEntry(localeList, locale).findElement(setAlias).click();
}

public static void unsetAlias(WebElement localeList, String locale) {
getLocaleEntry(localeList, locale).findElement(deleteAliasLink).click();
}

public static String getAliasForLocale(WebElement list, String locale) {
if (!hasAlias(list, locale)) {
return "";
}

return getLocaleEntry(list, locale).findElement(localeAlias)
.getText();
}

private static boolean hasAlias(WebElement localeList, String locale) {
return getLocaleEntry(localeList, locale).findElements(localeAlias)
.size() > 0;
}

private static WebElement getLocaleEntry(WebElement list, String locale) {
List<WebElement> listElements = LanguageList
.getListElements(list);
Expand Down
Expand Up @@ -28,6 +28,7 @@
import org.assertj.core.api.Assertions;
import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
import org.junit.experimental.categories.Category;
Expand Down Expand Up @@ -129,4 +130,60 @@ public void setLanguageAliasTest() {
.isEqualTo("pl-PL")
.as("The alias was set");
}

@Feature(summary = "The administrator can remove an alias for a project " +
"language",
tcmsTestPlanIds = 5316, tcmsTestCaseIds = 0)
@Test
public void removeLanguageAliasTest() {
ProjectLanguagesTab projectLanguagesTab = new ProjectWorkFlow()
.goToProjectByName("about fedora")
.gotoSettingsTab()
.gotoSettingsLanguagesTab()
.clickLanguageActionsDropdown("pl")
.clickAddAlias("pl")
.enterAliasForLocale("pl", "pl-PL")
.saveLocaleAlias("pl");

assertThat(projectLanguagesTab.getAlias("pl"))
.isEqualTo("pl-PL")
.as("The alias was set");

projectLanguagesTab = projectLanguagesTab
.clickLanguageActionsDropdown("pl")
.deleteAlias("pl");

assertThat(projectLanguagesTab.getAlias("pl"))
.isEmpty();
}

@Feature(summary = "The administrator can edit an alias for a project " +
"language",
tcmsTestPlanIds = 5316, tcmsTestCaseIds = 0)
@Test
public void editLanguageAliasTest() {
String locale = "pl";
ProjectLanguagesTab projectLanguagesTab = new ProjectWorkFlow()
.goToProjectByName("about fedora")
.gotoSettingsTab()
.gotoSettingsLanguagesTab()
.clickLanguageActionsDropdown(locale)
.clickAddAlias(locale)
.enterAliasForLocale(locale, "pl-PL")
.saveLocaleAlias(locale);

assertThat(projectLanguagesTab.getAlias(locale))
.isEqualTo("pl-PL")
.as("The alias was set");

projectLanguagesTab = projectLanguagesTab
.clickLanguageActionsDropdown(locale)
.clickEditAlias(locale)
.enterAliasForLocale(locale, "pl-POL")
.saveLocaleAlias(locale);

assertThat(projectLanguagesTab.getAlias(locale))
.as("The alias was changed")
.isEqualTo("pl-POL");
}
}

0 comments on commit 5c0fe34

Please sign in to comment.