From dc6dbf93420499e48a2d4847f8f3f8a82877126f Mon Sep 17 00:00:00 2001 From: Damian Jansen Date: Wed, 25 Jun 2014 15:21:02 +1000 Subject: [PATCH] Update project version tests to assertj Also add feature annotations Clean up and streamline some tests --- .../CreateProjectVersionTest.java | 98 ++++++++------- .../EditVersionLanguagesTest.java | 54 ++++----- .../EditVersionValidationsTest.java | 111 ++++++++++------- .../projectversion/VersionFilteringTest.java | 113 +++++++----------- 4 files changed, 194 insertions(+), 182 deletions(-) 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 8cb0e6cefe..af1c8a58c7 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 @@ -24,6 +24,7 @@ import org.junit.ClassRule; import org.junit.Test; import org.junit.experimental.categories.Category; +import org.zanata.feature.Feature; import org.zanata.feature.testharness.ZanataTestCase; import org.zanata.feature.testharness.TestPlan.BasicAcceptanceTest; import org.zanata.feature.testharness.TestPlan.DetailedTest; @@ -34,10 +35,7 @@ import org.zanata.workflow.LoginWorkFlow; import org.zanata.workflow.ProjectWorkFlow; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.equalTo; -import static org.hamcrest.Matchers.hasItem; -import static org.hamcrest.Matchers.not; +import static org.assertj.core.api.Assertions.assertThat; /** * @author Damian Jansen enabledLocaleList = versionLanguagesTab .getEnabledLocaleList(); - assertThat("The enabled list contains three languages", - enabledLocaleList, - contains("French[fr]", "Hindi[hi]", "Polish[pl]")); + assertThat(enabledLocaleList) + .contains("French[fr]", "Hindi[hi]", "Polish[pl]") + .as("The enabled list contains three languages"); - assertThat("The enabled list does not contain " + - "'English (United States)[en-US]'", - enabledLocaleList, - not(hasItem("English (United States)[en-US]"))); + assertThat(enabledLocaleList) + .doesNotContain("English (United States)[en-US]") + .as("The enabled list does not contain " + + "'English (United States)[en-US]'"); versionLanguagesTab = versionLanguagesTab.removeLocale("pl"); versionLanguagesTab.waitForLanguagesNotContains( @@ -84,13 +85,10 @@ public void changeVersionLanguages() { versionLanguagesTab.waitForLanguagesNotContains("Polish[pl]"); enabledLocaleList = versionLanguagesTab.getEnabledLocaleList(); - assertThat("The enabled list does not contain 'US English'", - enabledLocaleList, - not(hasItem("English (United States)[en-US]"))); - - assertThat("The enabled list does not contain 'Polish'", - enabledLocaleList, - not(hasItem("Polish[pl]"))); + assertThat(enabledLocaleList) + .doesNotContain("English (United States)[en-US]") + .doesNotContain("Polish[pl]") + .as("The enabled list does not contain 'US English' or Polish"); versionLanguagesTab = versionLanguagesTab .gotoSettingsTab() @@ -102,10 +100,10 @@ public void changeVersionLanguages() { "English (United States)[en-US]"); enabledLocaleList = versionLanguagesTab.getEnabledLocaleList(); - assertThat("Three languages are available to translate", - enabledLocaleList, - contains("English (United States)[en-US]", + assertThat(enabledLocaleList) + .contains("English (United States)[en-US]", "French[fr]", - "Hindi[hi]")); + "Hindi[hi]") + .as("Three languages are available to translate"); } } diff --git a/functional-test/src/test/java/org/zanata/feature/projectversion/EditVersionValidationsTest.java b/functional-test/src/test/java/org/zanata/feature/projectversion/EditVersionValidationsTest.java index 48a6f743e7..a1798b1278 100644 --- a/functional-test/src/test/java/org/zanata/feature/projectversion/EditVersionValidationsTest.java +++ b/functional-test/src/test/java/org/zanata/feature/projectversion/EditVersionValidationsTest.java @@ -20,10 +20,10 @@ */ package org.zanata.feature.projectversion; -import org.hamcrest.Matchers; import org.junit.Rule; import org.junit.Test; import org.junit.experimental.categories.Category; +import org.zanata.feature.Feature; import org.zanata.feature.testharness.ZanataTestCase; import org.zanata.feature.testharness.TestPlan.DetailedTest; import org.zanata.page.projectversion.versionsettings.VersionTranslationTab; @@ -32,8 +32,7 @@ import org.zanata.workflow.LoginWorkFlow; import org.zanata.workflow.ProjectWorkFlow; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.equalTo; +import static org.assertj.core.api.Assertions.assertThat; import static org.junit.Assume.assumeTrue; /** @@ -46,8 +45,11 @@ public class EditVersionValidationsTest extends ZanataTestCase { @Rule public SampleProjectRule sampleProjectRule = new SampleProjectRule(); + @Feature(summary = "The administrator can set validation options for " + + "a project version", + tcmsTestPlanIds = 5316, tcmsTestCaseIds = 0) @Test(timeout = ZanataTestCase.MAX_SHORT_TEST_DURATION) - public void setValidationOptions() { + public void setValidationOptions() throws Exception { VersionTranslationTab versionTranslationTab = new LoginWorkFlow() .signIn("admin", "admin") .goToProjects() @@ -56,8 +58,10 @@ public void setValidationOptions() { .gotoSettingsTab() .gotoSettingsTranslationTab(); - assertThat("The level is currently Warning", versionTranslationTab - .isValidationLevel("Tab characters (\\t)", "Warning")); + assertThat(versionTranslationTab + .isValidationLevel("Tab characters (\\t)", "Warning")) + .isTrue() + .as("The level is currently Warning"); versionTranslationTab = versionTranslationTab .setValidationLevel("Tab characters (\\t)", "Error"); @@ -72,13 +76,16 @@ public void setValidationOptions() { .gotoSettingsTab() .gotoSettingsTranslationTab(); - assertThat("The changes were saved", versionTranslationTab - .isValidationLevel("Tab characters (\\t)", "Error")); + assertThat(versionTranslationTab + .isValidationLevel("Tab characters (\\t)", "Error")) + .as("The changes were saved"); } - + @Feature(summary = "The system recognises validation errors options in " + + "translation targets and displays them to the user", + tcmsTestPlanIds = 5316, tcmsTestCaseIds = 0) @Test(timeout = ZanataTestCase.MAX_SHORT_TEST_DURATION) - public void verifyValidationsAreErrors() { + public void verifyValidationsAreErrors() throws Exception { VersionTranslationTab versionTranslationTab = new LoginWorkFlow() .signIn("admin", "admin") .goToProjects() @@ -95,27 +102,29 @@ public void verifyValidationsAreErrors() { .gotoVersion("master") .translate("fr", "About_Fedora"); - assertThat("The text in the translation target is blank", - editorPage.getBasicTranslationTargetAtRowIndex(0), - equalTo("")); + assertThat(editorPage.getBasicTranslationTargetAtRowIndex(0)) + .isEqualTo("") + .as("The text in the translation target is blank"); editorPage.pasteIntoRowAtIndex(0, "\t").saveAsFuzzyAtRow(0); editorPage.waitForValidationErrorsVisible(); - assertThat("The notification area shows there's an error", - editorPage.getValidationMessageCurrentTarget(), - equalTo("Warning: none, Errors: 1")); + assertThat(editorPage.getValidationMessageCurrentTarget()) + .isEqualTo("Warning: none, Errors: 1") + .as("The notification area shows there's an error"); editorPage = editorPage.openValidationBox(); - assertThat("The correct error is shown for the validation", - editorPage.getValidationMessageCurrentTarget(), - Matchers.containsString("Target has more tabs (\\t) than source " - + "(source: 0, target: 1)")); + assertThat(editorPage.getValidationMessageCurrentTarget()) + .contains("Target has more tabs (\\t) than source " + + "(source: 0, target: 1)") + .as("The correct error is shown for the validation"); } + @Feature(summary = "The user cannot disable enforced validations", + tcmsTestPlanIds = 5316, tcmsTestCaseIds = 0) @Test(timeout = ZanataTestCase.MAX_SHORT_TEST_DURATION) - public void userCannotTurnOffEnforcedValidations() { + public void userCannotTurnOffEnforcedValidations() throws Exception { VersionTranslationTab versionTranslationTab = new LoginWorkFlow() .signIn("admin", "admin") .goToProjects() @@ -133,17 +142,22 @@ public void userCannotTurnOffEnforcedValidations() { .translate("fr", "About_Fedora") .openValidationOptions(); - assertThat("The option is selected", - editorPage.isValidationOptionSelected( - EditorPage.Validations.TABS)); + assertThat(editorPage.isValidationOptionSelected( + EditorPage.Validations.TABS)) + .isTrue() + .as("The option is selected"); - assertThat("The option is unavailable", - !editorPage.isValidationOptionAvailable( - EditorPage.Validations.TABS)); + assertThat(editorPage.isValidationOptionAvailable( + EditorPage.Validations.TABS)) + .isFalse() + .as("The option is unavailable"); } + @Feature(summary = "The user cannot select both printf formats for " + + "validation options", + tcmsTestPlanIds = 5316, tcmsTestCaseIds = 0) @Test(timeout = ZanataTestCase.MAX_SHORT_TEST_DURATION) - public void printfAndPositionalPrintfAreExclusive() { + public void printfAndPositionalPrintfAreExclusive() throws Exception { VersionTranslationTab versionTranslationTab = new LoginWorkFlow() .signIn("admin", "admin") .goToProjects() @@ -156,25 +170,33 @@ public void printfAndPositionalPrintfAreExclusive() { versionTranslationTab.expectNotification( "Updated validation Positional printf (XSI extension) to Error."); - assertThat("The Positional printf level is Error", - versionTranslationTab.isValidationLevel( - "Positional printf (XSI extension)", "Error")); - assertThat("The Printf level is Off", - versionTranslationTab.isValidationLevel("Printf variables", "Off")); + assertThat(versionTranslationTab + .isValidationLevel("Positional printf (XSI extension)", "Error")) + .isTrue() + .as("The Positional printf level is Error"); + assertThat(versionTranslationTab + .isValidationLevel("Printf variables", "Off")) + .isTrue() + .as("The Printf level is Off"); versionTranslationTab.setValidationLevel("Printf variables", "Error"); versionTranslationTab.expectNotification( "Updated validation Printf variables to Error."); - assertThat("The Printf level is Error", - versionTranslationTab.isValidationLevel("Printf variables", "Error")); - assertThat("The Positional printf level is Off", - versionTranslationTab.isValidationLevel( - "Positional printf (XSI extension)", "Off")); + assertThat(versionTranslationTab + .isValidationLevel("Printf variables", "Error")) + .isTrue() + .as("The Printf level is Error"); + assertThat(versionTranslationTab + .isValidationLevel("Positional printf (XSI extension)", "Off")) + .isTrue() + .as("The Positional printf level is Off"); } + @Feature(summary = "The user can turn on a disabled validation option", + tcmsTestPlanIds = 5316, tcmsTestCaseIds = 0) @Test(timeout = ZanataTestCase.MAX_SHORT_TEST_DURATION) - public void userCanEnableADisabledValidation() { + public void userCanEnableADisabledValidation() throws Exception { VersionTranslationTab versionTranslationTab = new LoginWorkFlow() .signIn("admin", "admin") .goToProjects() @@ -193,17 +215,18 @@ public void userCanEnableADisabledValidation() { .pasteIntoRowAtIndex(0, "\t") .saveAsFuzzyAtRow(0); - assertThat("The validation errors are not shown", - !editorPage.isValidationMessageCurrentTargetVisible()); + assertThat(editorPage.isValidationMessageCurrentTargetVisible()) + .isFalse() + .as("The validation errors are not shown"); editorPage = editorPage .openValidationOptions() .clickValidationCheckbox(EditorPage.Validations.TABS); - editorPage.waitForValidationErrorsVisible(); - assertThat("The validation errors are shown", - editorPage.isValidationMessageCurrentTargetVisible()); + assertThat(editorPage.isValidationMessageCurrentTargetVisible()) + .isTrue() + .as("The validation errors are shown"); } } diff --git a/functional-test/src/test/java/org/zanata/feature/projectversion/VersionFilteringTest.java b/functional-test/src/test/java/org/zanata/feature/projectversion/VersionFilteringTest.java index 6fc7a61a23..e99e17a30d 100644 --- a/functional-test/src/test/java/org/zanata/feature/projectversion/VersionFilteringTest.java +++ b/functional-test/src/test/java/org/zanata/feature/projectversion/VersionFilteringTest.java @@ -23,15 +23,14 @@ import org.junit.ClassRule; import org.junit.Test; +import org.zanata.feature.Feature; import org.zanata.feature.testharness.ZanataTestCase; import org.zanata.page.projects.ProjectVersionsPage; import org.zanata.util.SampleProjectRule; import org.zanata.workflow.LoginWorkFlow; import org.zanata.workflow.ProjectWorkFlow; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.contains; -import static org.hamcrest.Matchers.equalTo; +import static org.assertj.core.api.Assertions.assertThat; /** * @author Damian Jansen @@ -42,106 +41,84 @@ public class VersionFilteringTest extends ZanataTestCase { @ClassRule public static SampleProjectRule sampleProjectRule = new SampleProjectRule(); + @Feature(summary = "The user can filter project versions by name", + tcmsTestPlanIds = 5316, tcmsTestCaseIds = 0) @Test(timeout = ZanataTestCase.MAX_SHORT_TEST_DURATION) - public void versionSearchFiltering() { - + public void versionSearchFiltering() throws Exception { String projectName = "versionsearchnums"; - assertThat("Login as translator", - new LoginWorkFlow().signIn("translator", "translator") - .loggedInAs(), - equalTo("translator")); - - assertThat("The project is created", - new ProjectWorkFlow() - .createNewSimpleProject("version-search", projectName) - .getProjectName(), - equalTo(projectName)); - - assertThat("The version alpha is created", - new ProjectWorkFlow() - .createNewProjectVersion(projectName, "alpha") - .getProjectVersionName(), - equalTo("alpha")); - - assertThat("The version bravo is created", - new ProjectWorkFlow() - .createNewProjectVersion(projectName, "bravo") - .getProjectVersionName(), - equalTo("bravo")); + assertThat(new LoginWorkFlow() + .signIn("translator", "translator") + .loggedInAs()) + .isEqualTo("translator") + .as("Login as translator"); + + assertThat(new ProjectWorkFlow() + .createNewSimpleProject("version-search", projectName) + .getProjectName()) + .isEqualTo(projectName) + .as("The project is created"); + + assertThat(new ProjectWorkFlow() + .createNewProjectVersion(projectName, "alpha") + .getProjectVersionName()) + .isEqualTo("alpha") + .as("The version alpha is created"); + + assertThat(new ProjectWorkFlow() + .createNewProjectVersion(projectName, "bravo") + .getProjectVersionName()) + .isEqualTo("bravo") + .as("The version bravo is created"); ProjectVersionsPage projectVersionsPage = new ProjectWorkFlow() .goToProjectByName(projectName) .waitForDisplayedVersions(2); - assertThat("The version count is 2", - projectVersionsPage.getNumberOfDisplayedVersions(), - equalTo(2)); - - assertThat("The versions are correct", - projectVersionsPage.getVersions(), - contains("bravo", "alpha")); + assertVersions(projectVersionsPage, 2, new String[]{"bravo", "alpha"}); projectVersionsPage = projectVersionsPage .clickSearchIcon() .enterVersionSearch("alpha") .waitForDisplayedVersions(1); - assertThat("The version count is 1", - projectVersionsPage.getNumberOfDisplayedVersions(), - equalTo(1)); - - assertThat("The versions are correct", - projectVersionsPage.getVersions(), - contains("alpha")); + assertVersions(projectVersionsPage, 1, new String[]{"alpha"}); projectVersionsPage = projectVersionsPage .clearVersionSearch() .waitForDisplayedVersions(2); - assertThat("The version count is 2 again", - projectVersionsPage.getNumberOfDisplayedVersions(), - equalTo(2)); - - assertThat("The versions are correct", - projectVersionsPage.getVersions(), - contains("bravo", "alpha")); + assertVersions(projectVersionsPage, 2, new String[]{"bravo", "alpha"}); projectVersionsPage = projectVersionsPage .enterVersionSearch("bravo") .waitForDisplayedVersions(1); - assertThat("The version count is 1", - projectVersionsPage.getNumberOfDisplayedVersions(), - equalTo(1)); - - assertThat("The versions are correct", - projectVersionsPage.getVersions(), - contains("bravo")); + assertVersions(projectVersionsPage, 1, new String[]{"bravo"}); projectVersionsPage = projectVersionsPage .clearVersionSearch() .enterVersionSearch("charlie") .waitForDisplayedVersions(0); - assertThat("The version count is 0", - projectVersionsPage.getNumberOfDisplayedVersions(), - equalTo(0)); - - assertThat("The versions are correct", - projectVersionsPage.getVersions().size(), - equalTo(0)); + assertVersions(projectVersionsPage, 0, new String[]{}); projectVersionsPage = projectVersionsPage .clearVersionSearch() .waitForDisplayedVersions(2); - assertThat("The version count is 2 again", - projectVersionsPage.getNumberOfDisplayedVersions(), - equalTo(2)); + assertVersions(projectVersionsPage, 2, new String[]{"bravo", "alpha"}); + } + + private void assertVersions(ProjectVersionsPage page, + int versionsCount, + String[] versionNames) { + assertThat(page.getNumberOfDisplayedVersions()) + .isEqualTo(versionsCount) + .as("The version count is " + versionsCount); - assertThat("The versions are correct", - projectVersionsPage.getVersions(), - contains("bravo", "alpha")); + assertThat(page.getVersions()) + .contains(versionNames) + .as("The versions are correct"); } }