package example.domain.web.webdriver;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.How;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.junit.Assert.assertThat;
public class FormPage implements Page {
private WebElement one;
private WebElement two;
private WebElement date;
@FindBy(how = How.NAME, using = "submit")
private WebElement submit;
private Browser browser;
public void verify(Browser browser) {
assertThat(browser.getBodyClass(), equalTo("form"));
this.browser = browser;
}
public void submitForm(String valueOne, String valueTwo, String valueDate) {
one.sendKeys(valueOne);
two.sendKeys(valueTwo);
date.sendKeys(valueDate);
submit.click();
}
public void showsValues(String valueOne, String valueTwo, String valueDate) {
assertThat(one.getAttribute("value"), equalTo(valueOne));
assertThat(two.getAttribute("value"), equalTo(valueTwo));
assertThat(date.getAttribute("value"), equalTo(valueDate));
}
public void showsErrorForFieldTwo(String message) {
WebElement messageTwo = browser.findElement(By.cssSelector("div.two.message"));
assertThat(messageTwo.getText(), equalTo(message));
}
}