diff --git a/samples/httpsession-jdbc-boot/src/integration-test/java/sample/BootTests.java b/samples/httpsession-jdbc-boot/src/integration-test/java/sample/BootTests.java index 73e2722..8ef19ba 100644 --- a/samples/httpsession-jdbc-boot/src/integration-test/java/sample/BootTests.java +++ b/samples/httpsession-jdbc-boot/src/integration-test/java/sample/BootTests.java @@ -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(); } diff --git a/samples/httpsession-jdbc-boot/src/integration-test/java/sample/pages/LoginPage.java b/samples/httpsession-jdbc-boot/src/integration-test/java/sample/pages/LoginPage.java index ab67fca..e3e89f3 100644 --- a/samples/httpsession-jdbc-boot/src/integration-test/java/sample/pages/LoginPage.java +++ b/samples/httpsession-jdbc-boot/src/integration-test/java/sample/pages/LoginPage.java @@ -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 login(Class page) { + this.username.sendKeys("user"); + this.password.sendKeys("password"); + this.button.click(); + return PageFactory.initElements(getDriver(), page); + } } }