package bo.gotthardt.page;
import bo.gotthardt.test.PageObject;
import bo.gotthardt.test.UiIntegrationTest;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import static bo.gotthardt.test.assertj.DropwizardAssertions.assertThat;
public class LoginPage extends PageObject {
@FindBy(id = "username")
private WebElement username;
@FindBy(id = "password")
private WebElement password;
@FindBy(className ="btn-primary")
private WebElement submitButton;
@FindBy(className = "alert")
private WebElement wrongPasswordAlert;
public LoginPage(WebDriver driver) {
super(driver);
}
public DashboardPage loginSuccess(String name, String pass) {
username.sendKeys(name);
password.sendKeys(pass);
submitButton.click();
return new DashboardPage(driver);
}
public LoginPage loginFail(String name, String pass) {
username.sendKeys(name);
password.sendKeys(pass);
submitButton.click();
waitFor(wrongPasswordAlert, "Wrong password warning");
return new LoginPage(driver);
}
@Override
protected void onLoad() {
waitFor(username, "Username input");
assertThat(username).isVisible();
assertThat(password).isVisible();
}
public static LoginPage go(WebDriver driver) {
driver.get(UiIntegrationTest.BASE_URL);
return new LoginPage(driver);
}
}