diff --git a/acceptance-tests-common/pom.xml b/acceptance-tests-common/pom.xml index bad7b56..f95d548 100644 --- a/acceptance-tests-common/pom.xml +++ b/acceptance-tests-common/pom.xml @@ -1,6 +1,6 @@ - test-automation-quickstart diff --git a/acceptance-tests-common/src/main/java/com/opencredo/test/EmailAdaptor.java b/acceptance-tests-common/src/main/java/com/opencredo/test/EmailAdaptor.java index eb0afba..1c3d9e2 100644 --- a/acceptance-tests-common/src/main/java/com/opencredo/test/EmailAdaptor.java +++ b/acceptance-tests-common/src/main/java/com/opencredo/test/EmailAdaptor.java @@ -23,10 +23,9 @@ public class EmailAdaptor { private static final String TEST_EMAIL_SUBJECT = "OpenCredo Test Email"; private final Session session; - private Store store; - private final String emailAddress; private final String password; + private Store store; public EmailAdaptor(String emailAddress, String password) { diff --git a/acceptance-tests-common/src/main/java/com/opencredo/test/SharedDriver.java b/acceptance-tests-common/src/main/java/com/opencredo/test/SharedDriver.java index 5e76b99..31568c0 100644 --- a/acceptance-tests-common/src/main/java/com/opencredo/test/SharedDriver.java +++ b/acceptance-tests-common/src/main/java/com/opencredo/test/SharedDriver.java @@ -1,13 +1,13 @@ package com.opencredo.test; +import org.openqa.selenium.Proxy; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.remote.BrowserType; +import org.openqa.selenium.remote.CapabilityType; import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.support.events.EventFiringWebDriver; -import org.openqa.selenium.Proxy; -import org.openqa.selenium.remote.CapabilityType; /** * Creates a browser session which can be used to interact with a web UI. diff --git a/acceptance-tests-common/src/main/java/com/opencredo/test/utils/RandomUtils.java b/acceptance-tests-common/src/main/java/com/opencredo/test/utils/RandomUtils.java index 3b1b697..18aa284 100644 --- a/acceptance-tests-common/src/main/java/com/opencredo/test/utils/RandomUtils.java +++ b/acceptance-tests-common/src/main/java/com/opencredo/test/utils/RandomUtils.java @@ -1,13 +1,11 @@ package com.opencredo.test.utils; -import sun.reflect.generics.reflectiveObjects.NotImplementedException; - -import java.util.*; +import java.util.Random; public class RandomUtils { - protected static Random random = new Random(System.currentTimeMillis()); public static String alphaCharacters = "abcdefghijklmnopqrstuvwxyz"; public static String numericCharacters = "0123456789"; + protected static Random random = new Random(System.currentTimeMillis()); public static synchronized int randomInt(final int min, final int max) { return random.nextInt((max - min) + 1) + min; diff --git a/api-acceptance-tests/pom.xml b/api-acceptance-tests/pom.xml index bb5fdb6..fe7df4e 100644 --- a/api-acceptance-tests/pom.xml +++ b/api-acceptance-tests/pom.xml @@ -1,6 +1,6 @@ - test-automation-quickstart @@ -29,7 +29,8 @@ com.opencredo.test.api.acceptance.test.step.definitions - ${project.build.directory}/generated-test-sources/cucumber + ${project.build.directory}/generated-test-sources/cucumber + src/test/resources/cucumber/ diff --git a/api-acceptance-tests/src/test/java/com/opencredo/test/api/acceptance/test/config/ApiTestProperties.java b/api-acceptance-tests/src/test/java/com/opencredo/test/api/acceptance/test/config/ApiTestProperties.java index 3dcae97..93c74a1 100644 --- a/api-acceptance-tests/src/test/java/com/opencredo/test/api/acceptance/test/config/ApiTestProperties.java +++ b/api-acceptance-tests/src/test/java/com/opencredo/test/api/acceptance/test/config/ApiTestProperties.java @@ -2,7 +2,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.env.Environment; -import org.springframework.stereotype.Component; public class ApiTestProperties { diff --git a/api-acceptance-tests/src/test/java/com/opencredo/test/api/acceptance/test/config/TestWorld.java b/api-acceptance-tests/src/test/java/com/opencredo/test/api/acceptance/test/config/TestWorld.java index 2858285..499bfc0 100644 --- a/api-acceptance-tests/src/test/java/com/opencredo/test/api/acceptance/test/config/TestWorld.java +++ b/api-acceptance-tests/src/test/java/com/opencredo/test/api/acceptance/test/config/TestWorld.java @@ -8,12 +8,12 @@ public class TestWorld { public static final String USER_PASSWORD = "Testing123!"; public HashMap sharedState = new HashMap<>(); + public String currentUserAlias; private HashMap users = new HashMap<>(); public void addUser(String userAlias, User user) { users.put(userAlias, user); } - public String currentUserAlias; public User getUserByAlias(String userAlias) { return users.get(userAlias); diff --git a/api-acceptance-tests/src/test/java/com/opencredo/test/api/acceptance/test/config/spring/ApiTestConfig.java b/api-acceptance-tests/src/test/java/com/opencredo/test/api/acceptance/test/config/spring/ApiTestConfig.java index cc7c59e..eaaba49 100644 --- a/api-acceptance-tests/src/test/java/com/opencredo/test/api/acceptance/test/config/spring/ApiTestConfig.java +++ b/api-acceptance-tests/src/test/java/com/opencredo/test/api/acceptance/test/config/spring/ApiTestConfig.java @@ -1,8 +1,8 @@ package com.opencredo.test.api.acceptance.test.config.spring; import com.opencredo.test.EmailAdaptor; -import com.opencredo.test.api.acceptance.test.config.TestWorld; import com.opencredo.test.api.acceptance.test.config.ApiTestProperties; +import com.opencredo.test.api.acceptance.test.config.TestWorld; import com.opencredo.test.api.acceptance.test.interaction.api.objects.GithubApi; import com.opencredo.test.api.acceptance.test.interaction.api.objects.GithubStatusApi; import com.opencredo.test.api.acceptance.test.interaction.api.objects.MessagingApi; @@ -38,7 +38,9 @@ public GithubStatusApi githubStatus() { } @Bean - public MessagingApi messagingApi() { return new MessagingApi(properties().getMessagingApiUrl());} + public MessagingApi messagingApi() { + return new MessagingApi(properties().getMessagingApiUrl()); + } @Bean public HttpClient httpClient() { diff --git a/api-acceptance-tests/src/test/java/com/opencredo/test/api/acceptance/test/interaction/api/objects/AbstractApiObject.java b/api-acceptance-tests/src/test/java/com/opencredo/test/api/acceptance/test/interaction/api/objects/AbstractApiObject.java index 97a4f8f..ac6ead8 100644 --- a/api-acceptance-tests/src/test/java/com/opencredo/test/api/acceptance/test/interaction/api/objects/AbstractApiObject.java +++ b/api-acceptance-tests/src/test/java/com/opencredo/test/api/acceptance/test/interaction/api/objects/AbstractApiObject.java @@ -5,14 +5,14 @@ import org.springframework.test.context.ContextConfiguration; import org.springframework.web.client.RestTemplate; -@ContextConfiguration(classes= ApiTestConfig.class) +@ContextConfiguration(classes = ApiTestConfig.class) public abstract class AbstractApiObject { protected String baseUrl; @Autowired RestTemplate restTemplate; - public AbstractApiObject (String baseUrl) { + public AbstractApiObject(String baseUrl) { this.baseUrl = baseUrl; } } diff --git a/api-acceptance-tests/src/test/java/com/opencredo/test/api/acceptance/test/interaction/dto/Message.java b/api-acceptance-tests/src/test/java/com/opencredo/test/api/acceptance/test/interaction/dto/Message.java index 60fbc03..d68a380 100644 --- a/api-acceptance-tests/src/test/java/com/opencredo/test/api/acceptance/test/interaction/dto/Message.java +++ b/api-acceptance-tests/src/test/java/com/opencredo/test/api/acceptance/test/interaction/dto/Message.java @@ -5,7 +5,7 @@ public class Message { public String recipientUserName; public String message; - public Message (String senderUserName, String recipientUserName, String message) { + public Message(String senderUserName, String recipientUserName, String message) { this.senderUserName = senderUserName; this.recipientUserName = recipientUserName; this.message = message; diff --git a/api-acceptance-tests/src/test/java/com/opencredo/test/api/acceptance/test/step/definitions/MessagingStepDefs.java b/api-acceptance-tests/src/test/java/com/opencredo/test/api/acceptance/test/step/definitions/MessagingStepDefs.java index eb77c5a..3ccc72e 100644 --- a/api-acceptance-tests/src/test/java/com/opencredo/test/api/acceptance/test/step/definitions/MessagingStepDefs.java +++ b/api-acceptance-tests/src/test/java/com/opencredo/test/api/acceptance/test/step/definitions/MessagingStepDefs.java @@ -1,7 +1,6 @@ package com.opencredo.test.api.acceptance.test.step.definitions; import com.opencredo.test.api.acceptance.test.interaction.api.objects.MessagingApi; -import com.opencredo.test.api.acceptance.test.interaction.dto.Message; import com.opencredo.test.api.acceptance.test.interaction.dto.User; import com.opencredo.test.utils.RandomUtils; import cucumber.api.Scenario; diff --git a/api-acceptance-tests/src/test/resources/cucumber/AliasExample.feature b/api-acceptance-tests/src/test/resources/cucumber/AliasExample.feature index 29c1e59..c6b675d 100644 --- a/api-acceptance-tests/src/test/resources/cucumber/AliasExample.feature +++ b/api-acceptance-tests/src/test/resources/cucumber/AliasExample.feature @@ -3,8 +3,8 @@ Feature: Demonstrate use of aliases to keep tests readable with complex data Scenario: Send a message between two users Given the following users: - | Bob | - | Dave | + | Bob | + | Dave | When I log in as "Bob" And I send a message to "Dave" Then "Dave" should have received a message from "Bob" \ No newline at end of file diff --git a/api-acceptance-tests/src/test/resources/props-for-api-tests.properties b/api-acceptance-tests/src/test/resources/props-for-api-tests.properties index d061b7d..089614a 100644 --- a/api-acceptance-tests/src/test/resources/props-for-api-tests.properties +++ b/api-acceptance-tests/src/test/resources/props-for-api-tests.properties @@ -3,6 +3,5 @@ api.acceptance.test.github.status.api=https://status.github.com/api api.acceptance.test.github.api=https://api.github.com api.acceptance.test.messaging.api=https://localhost - api.acceptance.test.email.address=CHANGE_ME -api.acceptance.test.email.password=CHANGE)ME \ No newline at end of file +api.acceptance.test.email.password=CHANGE_ME \ No newline at end of file diff --git a/performance-tests/pom.xml b/performance-tests/pom.xml index b9d7194..9cfa912 100644 --- a/performance-tests/pom.xml +++ b/performance-tests/pom.xml @@ -1,6 +1,6 @@ - test-automation-quickstart @@ -150,5 +150,4 @@ - \ No newline at end of file diff --git a/security-acceptance-tests/pom.xml b/security-acceptance-tests/pom.xml index 01b9efd..cbf2e6a 100644 --- a/security-acceptance-tests/pom.xml +++ b/security-acceptance-tests/pom.xml @@ -1,6 +1,6 @@ - test-automation-quickstart @@ -29,7 +29,8 @@ com.opencredo.test.security.acceptance.test.step.definitions - ${project.build.directory}/generated-test-sources/cucumber + ${project.build.directory}/generated-test-sources/cucumber + src/test/resources/cucumber/ diff --git a/security-acceptance-tests/src/test/java/com/opencredo/test/security/acceptance/test/config/SecurityTestProperties.java b/security-acceptance-tests/src/test/java/com/opencredo/test/security/acceptance/test/config/SecurityTestProperties.java index 5ceee84..9df7e01 100644 --- a/security-acceptance-tests/src/test/java/com/opencredo/test/security/acceptance/test/config/SecurityTestProperties.java +++ b/security-acceptance-tests/src/test/java/com/opencredo/test/security/acceptance/test/config/SecurityTestProperties.java @@ -2,7 +2,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.env.Environment; -import org.springframework.stereotype.Component; /** * Used to retrieve properties and make them available to tests diff --git a/security-acceptance-tests/src/test/java/com/opencredo/test/security/acceptance/test/config/spring/SecurityTestConfig.java b/security-acceptance-tests/src/test/java/com/opencredo/test/security/acceptance/test/config/spring/SecurityTestConfig.java index e83ac73..ec4c366 100644 --- a/security-acceptance-tests/src/test/java/com/opencredo/test/security/acceptance/test/config/spring/SecurityTestConfig.java +++ b/security-acceptance-tests/src/test/java/com/opencredo/test/security/acceptance/test/config/spring/SecurityTestConfig.java @@ -3,8 +3,8 @@ import com.opencredo.test.SharedDriver; import com.opencredo.test.security.acceptance.test.config.SecurityTestProperties; import com.opencredo.test.security.acceptance.test.config.TestWorld; -import com.opencredo.test.security.acceptance.test.interaction.objects.GoogleSearchPageObject; import com.opencredo.test.security.acceptance.test.config.ZapProxy; +import com.opencredo.test.security.acceptance.test.interaction.objects.GoogleSearchPageObject; import org.openqa.selenium.Proxy; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; diff --git a/security-acceptance-tests/src/test/java/com/opencredo/test/security/acceptance/test/interaction/objects/AbstractPageObject.java b/security-acceptance-tests/src/test/java/com/opencredo/test/security/acceptance/test/interaction/objects/AbstractPageObject.java index aedaefa..88efe8f 100644 --- a/security-acceptance-tests/src/test/java/com/opencredo/test/security/acceptance/test/interaction/objects/AbstractPageObject.java +++ b/security-acceptance-tests/src/test/java/com/opencredo/test/security/acceptance/test/interaction/objects/AbstractPageObject.java @@ -8,9 +8,9 @@ * Reusable methods for all page objects */ public abstract class AbstractPageObject { - private String path; private final WebDriver driver; private final int waitTimeOutSeconds; + private String path; public AbstractPageObject(String path, WebDriver driver, int waitTimeOutSeconds) { this.path = path; @@ -32,18 +32,18 @@ public void goToAndWait() { } public void ensure_is_current() { - wait_until_true_or_timeout(WaitConditions.urlContains(path)); + waitUntilTrueOrTimeout(WaitConditions.urlContains(path)); } public boolean is_text_present(String text) { - wait_until_true_or_timeout(WaitConditions.pageContainsText(text)); + waitUntilTrueOrTimeout(WaitConditions.pageContainsText(text)); return true; } /** * wait until condition is true or timeout is reached */ - protected V wait_until_true_or_timeout(ExpectedCondition isTrue) { + protected V waitUntilTrueOrTimeout(ExpectedCondition isTrue) { Wait wait = new WebDriverWait(this.driver, waitTimeOutSeconds) .ignoring(StaleElementReferenceException.class); try { diff --git a/security-acceptance-tests/src/test/java/com/opencredo/test/security/acceptance/test/step/definitions/AbstractStepDefinition.java b/security-acceptance-tests/src/test/java/com/opencredo/test/security/acceptance/test/step/definitions/AbstractStepDefinition.java index ef67126..4ba1b4f 100644 --- a/security-acceptance-tests/src/test/java/com/opencredo/test/security/acceptance/test/step/definitions/AbstractStepDefinition.java +++ b/security-acceptance-tests/src/test/java/com/opencredo/test/security/acceptance/test/step/definitions/AbstractStepDefinition.java @@ -6,7 +6,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; -@ContextConfiguration(classes= SecurityTestConfig.class) +@ContextConfiguration(classes = SecurityTestConfig.class) public abstract class AbstractStepDefinition { protected Scenario scenario; @@ -16,6 +16,7 @@ public abstract class AbstractStepDefinition { /** * Get a reference to the current cucumber scenario * Supports writing text and xml to report within test steps + * * @param scenario */ public void before(Scenario scenario) { diff --git a/security-acceptance-tests/src/test/java/com/opencredo/test/security/acceptance/test/step/definitions/GoogleSearchStepDefs.java b/security-acceptance-tests/src/test/java/com/opencredo/test/security/acceptance/test/step/definitions/GoogleSearchStepDefs.java index bb29e3d..5ea63bd 100644 --- a/security-acceptance-tests/src/test/java/com/opencredo/test/security/acceptance/test/step/definitions/GoogleSearchStepDefs.java +++ b/security-acceptance-tests/src/test/java/com/opencredo/test/security/acceptance/test/step/definitions/GoogleSearchStepDefs.java @@ -5,7 +5,6 @@ import cucumber.api.Scenario; import cucumber.api.java.After; import cucumber.api.java.Before; -import cucumber.api.java.en.And; import cucumber.api.java.en.Given; import cucumber.api.java.en.Then; import cucumber.api.java.en.When; @@ -14,13 +13,7 @@ import org.zaproxy.clientapi.core.ClientApi; import org.zaproxy.clientapi.core.ClientApiException; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.OutputStream; -import java.nio.file.Files; -import java.nio.file.Paths; +import java.io.*; import java.util.List; import java.util.logging.Logger; import java.util.stream.Collectors; @@ -28,17 +21,13 @@ import static org.assertj.core.api.AssertionsForClassTypes.assertThat; public class GoogleSearchStepDefs extends AbstractStepDefinition { + private static Logger log = Logger.getLogger(GoogleSearchStepDefs.class.getName()); + @Autowired private GoogleSearchPageObject googleSearchPage; @Autowired private ClientApi clientApi; - private final String setBoldText = "\033[0;1m"; - private final String setPlainText = "\033[0;0m"; - private final String reportPath = "security-reports/security-report.html"; - - static Logger log = Logger.getLogger(GoogleSearchStepDefs.class.getName()); - @Before public void before(Scenario scenario) { super.before(scenario); @@ -50,17 +39,17 @@ public void before(Scenario scenario) { } @Given("^I am on the Google search page") - public void I_am_on_the_google_search_page() throws Throwable { + public void iAmOnTheGoogleSearchPage() throws Throwable { googleSearchPage.goToAndWait(); } @When("^I search for \"(.+)\"$") - public void I_search_for(String searchText) throws Throwable { + public void iSearchFor(String searchText) throws Throwable { googleSearchPage.search(searchText); } @Then("^the site \"(.+)\" should be present in the results$") - public void the_result_should_contain_url(String resultUrl) throws Throwable { + public void theResultShouldContainUrl(String resultUrl) throws Throwable { assertThat(googleSearchPage.isSearchResultPresent(resultUrl)).isTrue(); } @@ -83,6 +72,8 @@ public void theNumberOfSecurityAlertsShouldNotBeGreaterThan(List r assertThat(mediumAlerts.size()).as("Medium risk Alerts").isLessThanOrEqualTo(risks.get(0).getMedium()); assertThat(highAlerts.size()).as("High risk Alerts").isLessThanOrEqualTo(risks.get(0).getHigh()); + String setPlainText = "\033[0;0m"; + String setBoldText = "\033[0;1m"; log.info(setBoldText + " Found " + lowAlerts.size() + " low risk alerts: " + setPlainText); lowAlerts.forEach(a -> log.info("Alert: " + a.getAlert() + " at URL: " + a.getUrl() + " Parameter: " + a.getParam() + " CWE ID: " + a.getCweId() + " Risk: " + a.getRisk())); log.info(setBoldText + " Found " + mediumAlerts.size() + " medium risk alerts: " + setPlainText); @@ -105,6 +96,7 @@ public void generateHTMLReport() { } OutputStream htmlFile = null; try { + String reportPath = "security-reports/security-report.html"; File htmlReport = new File(reportPath); htmlReport.getParentFile().mkdirs(); htmlReport.createNewFile(); diff --git a/ui-acceptance-tests/pom.xml b/ui-acceptance-tests/pom.xml index 63b27a8..a354f7a 100644 --- a/ui-acceptance-tests/pom.xml +++ b/ui-acceptance-tests/pom.xml @@ -1,6 +1,6 @@ - test-automation-quickstart @@ -29,7 +29,8 @@ com.opencredo.test.ui.acceptance.test.step.definitions - ${project.build.directory}/generated-test-sources/cucumber + ${project.build.directory}/generated-test-sources/cucumber + src/test/resources/cucumber/ diff --git a/ui-acceptance-tests/src/test/java/com/opencredo/test/ui/acceptance/test/config/UiTestProperties.java b/ui-acceptance-tests/src/test/java/com/opencredo/test/ui/acceptance/test/config/UiTestProperties.java index ff09cf3..eea6b53 100644 --- a/ui-acceptance-tests/src/test/java/com/opencredo/test/ui/acceptance/test/config/UiTestProperties.java +++ b/ui-acceptance-tests/src/test/java/com/opencredo/test/ui/acceptance/test/config/UiTestProperties.java @@ -2,7 +2,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.env.Environment; -import org.springframework.stereotype.Component; /** * Used to retrieve properties and make them available to tests diff --git a/ui-acceptance-tests/src/test/java/com/opencredo/test/ui/acceptance/test/config/spring/UiTestConfig.java b/ui-acceptance-tests/src/test/java/com/opencredo/test/ui/acceptance/test/config/spring/UiTestConfig.java index e384033..8a9135b 100644 --- a/ui-acceptance-tests/src/test/java/com/opencredo/test/ui/acceptance/test/config/spring/UiTestConfig.java +++ b/ui-acceptance-tests/src/test/java/com/opencredo/test/ui/acceptance/test/config/spring/UiTestConfig.java @@ -1,9 +1,9 @@ package com.opencredo.test.ui.acceptance.test.config.spring; import com.opencredo.test.SharedDriver; -import com.opencredo.test.ui.acceptance.test.interaction.objects.GoogleSearchPageObject; import com.opencredo.test.ui.acceptance.test.config.TestWorld; import com.opencredo.test.ui.acceptance.test.config.UiTestProperties; +import com.opencredo.test.ui.acceptance.test.interaction.objects.GoogleSearchPageObject; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; diff --git a/ui-acceptance-tests/src/test/java/com/opencredo/test/ui/acceptance/test/config/webdriver/WaitConditions.java b/ui-acceptance-tests/src/test/java/com/opencredo/test/ui/acceptance/test/config/webdriver/WaitConditions.java index 1ad5c33..d3f2fdd 100644 --- a/ui-acceptance-tests/src/test/java/com/opencredo/test/ui/acceptance/test/config/webdriver/WaitConditions.java +++ b/ui-acceptance-tests/src/test/java/com/opencredo/test/ui/acceptance/test/config/webdriver/WaitConditions.java @@ -25,7 +25,7 @@ public static ExpectedCondition pageContainsText(final String text) { return new ExpectedCondition() { @Override public Boolean apply(WebDriver driver) { - return driver.getPageSource().contains(text); + return driver.getPageSource().contains(text); } @Override diff --git a/ui-acceptance-tests/src/test/java/com/opencredo/test/ui/acceptance/test/interaction/objects/AbstractPageObject.java b/ui-acceptance-tests/src/test/java/com/opencredo/test/ui/acceptance/test/interaction/objects/AbstractPageObject.java index 8578412..690cc4a 100644 --- a/ui-acceptance-tests/src/test/java/com/opencredo/test/ui/acceptance/test/interaction/objects/AbstractPageObject.java +++ b/ui-acceptance-tests/src/test/java/com/opencredo/test/ui/acceptance/test/interaction/objects/AbstractPageObject.java @@ -2,25 +2,16 @@ import com.opencredo.test.SharedDriver; import com.opencredo.test.ui.acceptance.test.config.webdriver.WaitConditions; -import org.openqa.selenium.By; -import org.openqa.selenium.NoSuchElementException; -import org.openqa.selenium.StaleElementReferenceException; -import org.openqa.selenium.TimeoutException; -import org.openqa.selenium.WebDriver; -import org.openqa.selenium.WebElement; -import org.openqa.selenium.support.ui.ExpectedCondition; -import org.openqa.selenium.support.ui.ExpectedConditions; -import org.openqa.selenium.support.ui.Select; -import org.openqa.selenium.support.ui.Wait; -import org.openqa.selenium.support.ui.WebDriverWait; +import org.openqa.selenium.*; +import org.openqa.selenium.support.ui.*; /** * Reusable methods for all page objects */ public abstract class AbstractPageObject { - private String path; private final SharedDriver driver; private final int waitTimeOutSeconds; + private String path; public AbstractPageObject(String path, SharedDriver driver, int waitTimeOutSeconds) { this.path = path; @@ -38,22 +29,22 @@ public String getPath() { public void goToAndWait() { getDriver().navigate().to(path); - ensure_is_current(); + ensureIsCurrent(); } - public void ensure_is_current() { - wait_until_true_or_timeout(WaitConditions.urlContains(path)); + public void ensureIsCurrent() { + waitUntilTrueOrTimeout(WaitConditions.urlContains(path)); } - public boolean is_text_present(String text) { - wait_until_true_or_timeout(WaitConditions.pageContainsText(text)); + public boolean isTextPresent(String text) { + waitUntilTrueOrTimeout(WaitConditions.pageContainsText(text)); return true; } /** * wait until condition is true or timeout is reached */ - protected V wait_until_true_or_timeout(ExpectedCondition isTrue) { + protected V waitUntilTrueOrTimeout(ExpectedCondition isTrue) { Wait wait = new WebDriverWait(this.driver, waitTimeOutSeconds) .ignoring(StaleElementReferenceException.class); try { @@ -72,14 +63,14 @@ public void submit(WebElement element) { element.submit(); } - public void selectDropdownByText(WebElement element, String visibleText){ + public void selectDropdownByText(WebElement element, String visibleText) { Select filterSelect = new Select(element); waitForDropdownItems(element); filterSelect.selectByVisibleText(visibleText); } private void waitForDropdownItems(WebElement element) { - WebDriverWait wait = new WebDriverWait(getDriver(),waitTimeOutSeconds ); + WebDriverWait wait = new WebDriverWait(getDriver(), waitTimeOutSeconds); wait.until(ExpectedConditions.elementToBeClickable(element)); } diff --git a/ui-acceptance-tests/src/test/java/com/opencredo/test/ui/acceptance/test/interaction/objects/GoogleSearchPageObject.java b/ui-acceptance-tests/src/test/java/com/opencredo/test/ui/acceptance/test/interaction/objects/GoogleSearchPageObject.java index c1cbec1..02c2e5b 100644 --- a/ui-acceptance-tests/src/test/java/com/opencredo/test/ui/acceptance/test/interaction/objects/GoogleSearchPageObject.java +++ b/ui-acceptance-tests/src/test/java/com/opencredo/test/ui/acceptance/test/interaction/objects/GoogleSearchPageObject.java @@ -2,7 +2,6 @@ import com.opencredo.test.SharedDriver; import org.openqa.selenium.By; -import org.openqa.selenium.WebDriver; public class GoogleSearchPageObject extends AbstractPageObject { public static final String PATH = "/"; @@ -19,6 +18,6 @@ public void search(String searchText) { } public boolean isSearchResultPresent(String searchResultUrl) { - return is_text_present(searchResultUrl); + return isTextPresent(searchResultUrl); } } diff --git a/ui-acceptance-tests/src/test/java/com/opencredo/test/ui/acceptance/test/step/definitions/AbstractStepDefinition.java b/ui-acceptance-tests/src/test/java/com/opencredo/test/ui/acceptance/test/step/definitions/AbstractStepDefinition.java index 22045de..2e37667 100644 --- a/ui-acceptance-tests/src/test/java/com/opencredo/test/ui/acceptance/test/step/definitions/AbstractStepDefinition.java +++ b/ui-acceptance-tests/src/test/java/com/opencredo/test/ui/acceptance/test/step/definitions/AbstractStepDefinition.java @@ -6,16 +6,16 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; -@ContextConfiguration(classes= UiTestConfig.class) +@ContextConfiguration(classes = UiTestConfig.class) public abstract class AbstractStepDefinition { - private Scenario scenario; - @Autowired protected TestWorld testWorld; + private Scenario scenario; /** * Get a reference to the current cucumber scenario * Supports writing text and xml to report within test steps + * * @param scenario */ public void before(Scenario scenario) {