Polish jdbc-boot

This commit is contained in:
Rob Winch
2017-01-09 10:31:13 -06:00
committed by John Blum
parent ff72bf1234
commit 22c416e32b
2 changed files with 32 additions and 20 deletions

View File

@@ -47,9 +47,7 @@ public class BootTests {
@Before
public void setup() {
this.driver = MockMvcHtmlUnitDriverBuilder
.mockMvcSetup(this.mockMvc)
.build();
this.driver = MockMvcHtmlUnitDriverBuilder.mockMvcSetup(this.mockMvc).build();
}
@After
@@ -61,14 +59,14 @@ public class BootTests {
public void home() {
LoginPage login = HomePage.go(this.driver);
login.assertAt();
HomePage home = login.login();
HomePage home = login.form().login(HomePage.class);
home.assertAt();
}
@Test
public void login() {
LoginPage login = HomePage.go(this.driver);
HomePage home = login.login();
HomePage home = login.form().login(HomePage.class);
home.containCookie("SESSION");
home.doesNotContainCookie("JSESSIONID");
}
@@ -76,7 +74,7 @@ public class BootTests {
@Test
public void logout() {
LoginPage login = HomePage.go(this.driver);
HomePage home = login.login();
HomePage home = login.form().login(HomePage.class);
login = home.logout();
login.assertAt();
}

View File

@@ -16,27 +16,21 @@
package sample.pages;
import org.openqa.selenium.SearchContext;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;
import org.openqa.selenium.support.pagefactory.DefaultElementLocatorFactory;
import static org.assertj.core.api.Assertions.assertThat;
/**
* @author Eddú Meléndez
* @author Rob Winch
*/
public class LoginPage extends BasePage {
@FindBy(name = "username")
private WebElement username;
@FindBy(name = "password")
private WebElement password;
@FindBy(name = "submit")
private WebElement button;
public LoginPage(WebDriver driver) {
super(driver);
}
@@ -45,11 +39,31 @@ public class LoginPage extends BasePage {
assertThat(getDriver().getTitle()).isEqualTo("Login Page");
}
public HomePage login() {
this.username.sendKeys("user");
this.password.sendKeys("password");
this.button.click();
return PageFactory.initElements(getDriver(), HomePage.class);
public Form form() {
return new Form(getDriver());
}
public class Form {
@FindBy(name = "username")
private WebElement username;
@FindBy(name = "password")
private WebElement password;
@FindBy(name = "submit")
private WebElement button;
public Form(SearchContext context) {
PageFactory.initElements(new DefaultElementLocatorFactory(context), this);
}
public <T> T login(Class<T> page) {
this.username.sendKeys("user");
this.password.sendKeys("password");
this.button.click();
return PageFactory.initElements(getDriver(), page);
}
}
}