package org.simbasecurity.webdriver.page;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;
import org.simbasecurity.webdriver.framework.Browser;
import static org.junit.Assert.assertEquals;
public class LoginPage {
@FindBy(id = "username")
private WebElement usernameField;
@FindBy(id = "password")
private WebElement passwordField;
@FindBy(id = "signIn")
private WebElement signInButton;
@FindBy(id = "errorMessage")
private WebElement errorMessage;
public LoginPage(){
PageFactory.initElements(Browser.getDriverInstance(), this);
}
public LoginPage typeUsername(String username) {
this.usernameField.clear();
this.usernameField.sendKeys(username);
return this;
}
public LoginPage typePassword(String password) {
this.passwordField.clear();
this.passwordField.sendKeys(password);
return this;
}
public LoginPage clickSignIn() {
signInButton.submit();
return this;
}
public void assertErrorOnLoginPage() {
assertEquals("Invalid username and/or password.", errorMessage.getText());
}
public void assertErrorDirectLogin() {
assertEquals("Direct login not allowed for user.",errorMessage.getText());
}
public void assertErrorAccountBlocked(){
assertEquals("User account is blocked. Please contact your administrator.",errorMessage.getText());
}
public void assertErrorUsernameEmpty() {
assertEquals("Please specify a valid username.", errorMessage.getText());
}
public void assertErrorPasswordEmpty() {
assertEquals("Please specify a valid password.", errorMessage.getText());
}
}