Commit ec5b047b authored by ccottier's avatar ccottier

refactored to grab account variables from application properties instead of...

refactored to grab account variables from application properties instead of hard-coded into PageObject class
parent 936e75c5
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>
\ No newline at end of file
...@@ -5,14 +5,11 @@ import org.openqa.selenium.WebDriver; ...@@ -5,14 +5,11 @@ import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement; import org.openqa.selenium.WebElement;
public class PageObject { public class PageObject {
public WebDriver driver; public WebDriver driver;
WebElement lnkSignIn; WebElement lnkSignIn;
WebElement signInModal; WebElement signInModal;
String email = "vkrijegccvsknuvnpv@miucce.com";
String password = "12345678";
String firstName = "Nisum";
String lastName = "TestAcct";
String phoneNumber = "3141592635";
public PageObject(WebDriver driver){ public PageObject(WebDriver driver){
this.driver = driver; this.driver = driver;
...@@ -26,29 +23,8 @@ public class PageObject { ...@@ -26,29 +23,8 @@ public class PageObject {
return driver.findElement(By.id("sign-in-modal-link")); return driver.findElement(By.id("sign-in-modal-link"));
} }
public String getPhoneNumber() {
return phoneNumber;
}
public String getEmail() {
return email;
}
public String getPassword() {
return password;
}
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
public void navigateToUrl(String url){ public void navigateToUrl(String url){
driver.get(url); driver.get(url);
} }
} }
package selenium.config;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
public class Config {
InputStream inputStream;
public Map<String, String> getProps() throws IOException {
Map<String, String> res = new HashMap<>();
try {
Properties props = new Properties();
String propFileName = "application.properties";
inputStream = getClass().getClassLoader().getResourceAsStream(propFileName);
if (inputStream != null) {
props.load(inputStream);
} else {
throw new FileNotFoundException("property file '" + propFileName + "' not found in the classpath");
}
for (String field : props.stringPropertyNames()){
res.put(field, props.getProperty(field));
}
} catch (Exception e) {
System.out.println(e);
} finally {
inputStream.close();
}
return res;
}
}
...@@ -7,27 +7,31 @@ import org.openqa.selenium.WebElement; ...@@ -7,27 +7,31 @@ import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait; import org.openqa.selenium.support.ui.WebDriverWait;
import selenium.config.Config;
import selenium.login.LoginPOM; import selenium.login.LoginPOM;
import java.io.IOException;
import java.time.Duration; import java.time.Duration;
import java.util.Map;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
public class AccountSettingsTest { public class AccountSettingsTest {
@Test @Test
public void runAccountsPageTests(){ public void runAccountsPageTests() throws IOException {
//Setup //Setup
System.setProperty("webdriver.chrome.driver", "/Users/ccottier/Desktop/chromedriver"); System.setProperty("webdriver.chrome.driver", "/Users/ccottier/Desktop/chromedriver");
ChromeDriver driver = new ChromeDriver(); ChromeDriver driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(40, TimeUnit.SECONDS); driver.manage().timeouts().implicitlyWait(40, TimeUnit.SECONDS);
Map<String,String> vars = new Config().getProps();
LoginPOM loginPage = new LoginPOM(driver); LoginPOM loginPage = new LoginPOM(driver);
AccountSettingsPOF accountSettingsPage = new AccountSettingsPOF(driver); AccountSettingsPOF accountSettingsPage = new AccountSettingsPOF(driver);
//Navigate to accounts page and sign in //Navigate to accounts page and sign in
accountSettingsPage.navigateToUrl(accountSettingsPage.getAccountSettingsUrl()); accountSettingsPage.navigateToUrl(accountSettingsPage.getAccountSettingsUrl());
loginPage.login(loginPage.getEmail(), loginPage.getPassword()); loginPage.login(vars.get("email"), vars.get("password"));
// Get accounts page values // Get accounts page values
Boolean waitInputs = new WebDriverWait(driver, 15) Boolean waitInputs = new WebDriverWait(driver, 15)
...@@ -41,10 +45,10 @@ public class AccountSettingsTest { ...@@ -41,10 +45,10 @@ public class AccountSettingsTest {
//Compare to expected and assert //Compare to expected and assert
Assert.assertEquals("First name not equal to account details", accountSettingsPage.getFirstName(),firstName); Assert.assertEquals("First name not equal to account details", vars.get("first_name"),firstName);
Assert.assertEquals("Last name not equal to account details", accountSettingsPage.getLastName(), lastName); Assert.assertEquals("Last name not equal to account details", vars.get("last_name"), lastName);
Assert.assertEquals("Email not equal to account details", accountSettingsPage.getEmail(), email); Assert.assertEquals("Email not equal to account details", vars.get("email"), email);
Assert.assertEquals("Phone number not equal to account details", accountSettingsPage.getPhoneNumber(), phoneNumber); Assert.assertEquals("Phone number not equal to account details", vars.get("phone_number"), phoneNumber);
Assert.assertTrue("Club card number invalid", !clubCardNumber.equals("")); Assert.assertTrue("Club card number invalid", !clubCardNumber.equals(""));
driver.close(); driver.close();
......
...@@ -7,19 +7,23 @@ import org.openqa.selenium.WebElement; ...@@ -7,19 +7,23 @@ import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait; import org.openqa.selenium.support.ui.WebDriverWait;
import selenium.config.Config;
import java.io.IOException;
import java.util.Map;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
public class LoginTest { public class LoginTest {
@Test @Test
public void runTest(){ public void runTest() throws IOException {
//Setup //Setup
System.setProperty("webdriver.chrome.driver", "/Users/ccottier/Desktop/chromedriver"); System.setProperty("webdriver.chrome.driver", "/Users/ccottier/Desktop/chromedriver");
ChromeDriver driver = new ChromeDriver(); ChromeDriver driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(40, TimeUnit.SECONDS); driver.manage().timeouts().implicitlyWait(40, TimeUnit.SECONDS);
Map<String,String> vars = new Config().getProps();
LoginPOM loginPage = new LoginPOM(driver); LoginPOM loginPage = new LoginPOM(driver);
...@@ -33,7 +37,7 @@ public class LoginTest { ...@@ -33,7 +37,7 @@ public class LoginTest {
loginPage.getSignInModal().click(); loginPage.getSignInModal().click();
//Log in //Log in
loginPage.login(loginPage.getEmail(), loginPage.getPassword()); loginPage.login(vars.get("email"), vars.get("password"));
//Check that account header can be seen, showing we've logged in //Check that account header can be seen, showing we've logged in
Assert.assertTrue(driver.findElements(By.linkText("Account")).size() > 0); Assert.assertTrue(driver.findElements(By.linkText("Account")).size() > 0);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment