diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index 9ec7918..f174da7 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -14,15 +14,15 @@ jobs:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v2
- - name: Set up JDK 11
- uses: actions/setup-java@v1
- with:
- java-version: 11
- - name: Run acceptance tests
- env:
- SAUCE_USERNAME: ${{ secrets.SAUCE_USERNAME }}
- SAUCE_ACCESS_KEY: ${{ secrets.SAUCE_ACCESS_KEY }}
- run: |
- echo "$TEST_SECRET"
- mvn test -X -Dtest=AcceptanceTestDrivenAutomationTest
+ - uses: actions/checkout@v2
+ - name: Set up JDK 11
+ uses: actions/setup-java@v1
+ with:
+ java-version: 11
+ - name: Run acceptance tests
+ env:
+ SAUCE_USERNAME: ${{ secrets.SAUCE_USERNAME }}
+ SAUCE_ACCESS_KEY: ${{ secrets.SAUCE_ACCESS_KEY }}
+ run: |
+ echo "$TEST_SECRET"
+ mvn test -X -Dtest=AcceptanceTestDrivenAutomationTest
diff --git a/pom.xml b/pom.xml
index 593e4b7..3c73264 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,6 @@
org.ultimateqa
selenium.java
1.0-SNAPSHOT
-
@@ -24,6 +23,12 @@
+
+ junit
+ junit
+ 4.12
+ test
+
org.seleniumhq.selenium
selenium-java
diff --git a/src/test/java/atda/AcceptanceTestDrivenAutomationTest.java b/src/test/java/atda/AcceptanceTestDrivenAutomationTest.java
index d92be23..217cd17 100644
--- a/src/test/java/atda/AcceptanceTestDrivenAutomationTest.java
+++ b/src/test/java/atda/AcceptanceTestDrivenAutomationTest.java
@@ -1,50 +1,37 @@
package atda;
-import org.junit.After;
-import org.junit.Before;
import org.junit.Test;
-import org.openqa.selenium.WebDriver;
-import org.openqa.selenium.chrome.ChromeDriver;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
-public class AcceptanceTestDrivenAutomationTest {
- WebDriver driver;
- @Before
- public void setup()
- {
- driver = getDriver();
- }
- @After
- public void cleanup()
- {
- driver.quit();
- }
- @Test
- public void shouldOpen()
- {
- LoginPage loginPage = new LoginPage(driver);
- loginPage.open();
- assertTrue(loginPage.isLoaded());
- }
+@RunWith(Parameterized.class)
+public class AcceptanceTestDrivenAutomationTest extends BaseTest {
@Test
- public void shouldLogin()
- {
+ public void shouldLogin() {
LoginPage loginPage = new LoginPage(driver);
loginPage.open();
- assertTrue(loginPage.isLoaded());
-
+ //I used to do this, now I learned it's not necessary
+ //assertTrue("Login page should load successfully", loginPage.isLoaded());
loginPage.login("standard_user", "secret_sauce");
- assertTrue(new ProductsPage(driver).isLoaded());
+ assertTrue("Products page should open when we login", new ProductsPage(driver).isLoaded());
}
-
- private WebDriver getDriver() {
- //Telling the system where to find chromedriver on mac
- //System.setProperty("webdriver.chrome.driver", "resources/mac/chromedriver");
-
- //The path of chromedriver for windows
- System.setProperty("webdriver.chrome.driver", "resources/windows/chromedriver.exe");
- return new ChromeDriver();
+ @Test
+ public void shouldAddOneItemToCart() {
+ ProductsPage productsPage = new ProductsPage(driver);
+ productsPage.open();
+ productsPage.addItemToCart();
+ assertEquals("1", productsPage.getCountOfItemsInCart());
+ }
+ @Test
+ public void shouldAddTwoItemsToCart() {
+ ProductsPage productsPage = new ProductsPage(driver);
+ productsPage.open();
+ productsPage.addItemToCart();
+ productsPage.addItemToCart();
+ assertEquals("2", productsPage.getCountOfItemsInCart());
}
}
diff --git a/src/test/java/atda/BasePage.java b/src/test/java/atda/BasePage.java
index eef3e5b..bc24900 100644
--- a/src/test/java/atda/BasePage.java
+++ b/src/test/java/atda/BasePage.java
@@ -1,15 +1,18 @@
package atda;
+import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
public class BasePage {
public final WebDriver driver;
- WebDriverWait wait;
-
public BasePage(WebDriver driver) {
this.driver = driver;
- wait = new WebDriverWait(driver, 10);
+ }
+ public boolean isElementDisplayed(By locator) {
+ WebDriverWait wait = new WebDriverWait(driver, 10);
+ return wait.until(ExpectedConditions.visibilityOfElementLocated(locator)).isDisplayed();
}
}
diff --git a/src/test/java/atda/BaseTest.java b/src/test/java/atda/BaseTest.java
new file mode 100644
index 0000000..5891306
--- /dev/null
+++ b/src/test/java/atda/BaseTest.java
@@ -0,0 +1,78 @@
+package atda;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.rules.TestName;
+import org.junit.runners.Parameterized;
+import org.openqa.selenium.MutableCapabilities;
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.remote.CapabilityType;
+import org.openqa.selenium.remote.RemoteWebDriver;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.Arrays;
+import java.util.Collection;
+
+public class BaseTest {
+ public WebDriver driver;
+
+ @Rule
+ public SauceTestWatcher resultReportingTestWatcher = new SauceTestWatcher();
+
+ @Rule
+ public TestName testName = new TestName() {
+ public String getMethodName() {
+ return String.format("%s", super.getMethodName());
+ }
+ };
+
+ @Parameterized.Parameters
+ public static Collection