package com.vaadin.v7.tests.components.datefield;
import static org.junit.Assert.assertEquals;
import java.util.List;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import com.vaadin.testbench.elements.ButtonElement;
import com.vaadin.testbench.elements.DateFieldElement;
import com.vaadin.tests.tb3.SingleBrowserTest;
public class DateFieldDiscardValueTest extends SingleBrowserTest {
@Test
public void discardWhenDatasourceContentNonNullInvalidValue() {
discardWorks(DateFieldDiscardValue.PROP_NONULL, "1", "123", "25/07/16");
}
@Test
public void discardWhenDatasourceContentNonNullValidValue() {
discardWorks(DateFieldDiscardValue.PROP_NONULL, "1", "24/07/16",
"25/07/16");
}
@Test
public void discardWhenDatasourceContentNullInvalidValue() {
discardWorks(DateFieldDiscardValue.PROP_NULL_VALUE, "2", "123", "");
}
@Test
public void discardWhenDatasourceContentNullValidValue() {
discardWorks(DateFieldDiscardValue.PROP_NULL_VALUE, "2", "24/07/16",
"");
}
@Test
public void discardWhenDatasourceNull() {
// If the data source is null, discard should do nothing.
discardDoesntWork(DateFieldDiscardValue.PROP_NULL, "3", "123");
}
private void discardWorks(String caption, String id, String dateValue,
String resultValue) {
openTestURL();
ButtonElement discardButton = $(ButtonElement.class)
.caption("Discard " + id).first();
DateFieldElement dateField = $(DateFieldElement.class).caption(caption)
.first();
dateField.setValue(dateValue);
discardButton.click();
assertEquals(resultValue, dateField.getValue());
List<WebElement> elements = driver
.findElements(By.className("v-errorindicator"));
assertEquals(0, elements.size());
}
private void discardDoesntWork(String caption, String id,
String dateValue) {
openTestURL();
ButtonElement discardButton = $(ButtonElement.class)
.caption("Discard " + id).first();
DateFieldElement dateField = $(DateFieldElement.class).caption(caption)
.first();
dateField.setValue(dateValue);
discardButton.click();
assertEquals(dateValue, dateField.getValue());
List<WebElement> elements = driver
.findElements(By.className("v-errorindicator"));
assertEquals(1, elements.size());
}
}