diff options
Diffstat (limited to 'uitest')
-rw-r--r-- | uitest/src/main/java/com/vaadin/tests/components/datefield/DateFieldShortcut.java | 44 | ||||
-rw-r--r-- | uitest/src/test/java/com/vaadin/tests/components/datefield/DateFieldShortcutTest.java | 39 |
2 files changed, 83 insertions, 0 deletions
diff --git a/uitest/src/main/java/com/vaadin/tests/components/datefield/DateFieldShortcut.java b/uitest/src/main/java/com/vaadin/tests/components/datefield/DateFieldShortcut.java new file mode 100644 index 0000000000..406e13a5a3 --- /dev/null +++ b/uitest/src/main/java/com/vaadin/tests/components/datefield/DateFieldShortcut.java @@ -0,0 +1,44 @@ +package com.vaadin.tests.components.datefield; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; + +import com.vaadin.annotations.Widgetset; +import com.vaadin.event.ShortcutAction.KeyCode; +import com.vaadin.event.ShortcutListener; +import com.vaadin.server.VaadinRequest; +import com.vaadin.tests.components.AbstractTestUI; +import com.vaadin.ui.DateField; +import com.vaadin.ui.Notification; + +@Widgetset("com.vaadin.DefaultWidgetSet") +public class DateFieldShortcut extends AbstractTestUI { + + @Override + protected void setup(VaadinRequest request) { + String dateFormat = "dd/MM/yyyy"; + + DateField dateField = new DateField(); + dateField.setValue(LocalDate.of(2018, 1, 11)); + dateField.setDateFormat(dateFormat); + + dateField.addShortcutListener( + new ShortcutListener("Enter", KeyCode.ENTER, null) { + @Override + public void handleAction(Object sender, Object target) { + Notification.show(dateField.getValue() + .format(DateTimeFormatter + .ofPattern(dateFormat))); + } + }); + + addComponent(dateField); + } + + @Override + protected String getTestDescription() { + return "Modify the date maually (without using the popup element) and" + + " then press Enter. The notification should show the modified" + + " value instead of the old value."; + } +} diff --git a/uitest/src/test/java/com/vaadin/tests/components/datefield/DateFieldShortcutTest.java b/uitest/src/test/java/com/vaadin/tests/components/datefield/DateFieldShortcutTest.java new file mode 100644 index 0000000000..3e01a41b43 --- /dev/null +++ b/uitest/src/test/java/com/vaadin/tests/components/datefield/DateFieldShortcutTest.java @@ -0,0 +1,39 @@ +package com.vaadin.tests.components.datefield; + +import org.junit.Test; +import org.openqa.selenium.By; +import org.openqa.selenium.Keys; +import org.openqa.selenium.WebElement; + +import com.vaadin.testbench.elements.DateFieldElement; +import com.vaadin.testbench.elements.NotificationElement; +import com.vaadin.tests.tb3.SingleBrowserTest; + +import static org.junit.Assert.assertEquals; + +public class DateFieldShortcutTest extends SingleBrowserTest { + + private static final String DATEFIELD_VALUE_ORIGINAL = "11/01/2018"; + private static final String DATEFIELD_VALUE_MODIFIED = "21/01/2018"; + + @Test + public void modifyValueAndPressEnter() { + openTestURL(); + + DateFieldElement dateField = $(DateFieldElement.class).first(); + WebElement dateFieldText = dateField.findElement(By.tagName("input")); + + assertEquals("DateField value should be \"" + DATEFIELD_VALUE_ORIGINAL + + "\"", DATEFIELD_VALUE_ORIGINAL, dateField.getValue()); + + dateFieldText.click(); + dateFieldText.sendKeys(Keys.HOME, Keys.DELETE, "2"); + dateFieldText.sendKeys(Keys.ENTER); + + assertEquals("DateField value should be \"" + DATEFIELD_VALUE_MODIFIED + + "\"", DATEFIELD_VALUE_MODIFIED, dateField.getValue()); + + assertEquals(DATEFIELD_VALUE_MODIFIED, + $(NotificationElement.class).first().getCaption()); + } +} |