summaryrefslogtreecommitdiffstats
path: root/uitest
diff options
context:
space:
mode:
authorZhe Sun <31067185+ZheSun88@users.noreply.github.com>2019-06-14 15:31:44 +0300
committerGitHub <noreply@github.com>2019-06-14 15:31:44 +0300
commit7bda912a77f6295ac339a3035b0de8d7ed45cfa3 (patch)
treed49208274e8441ceedac8fa9ef292b3f065c846e /uitest
parentd18f8ddbaab2d192dacf7d7485d87b51fe1e7cb9 (diff)
downloadvaadin-framework-7bda912a77f6295ac339a3035b0de8d7ed45cfa3.tar.gz
vaadin-framework-7bda912a77f6295ac339a3035b0de8d7ed45cfa3.zip
Separates a rpc for handling the client event order in DateTimeField (#11574)
* Using @Delayed annotation for DateField Rpc * Separate a rpc for handling the time change in DateTimeField * Add test case for wrong event order
Diffstat (limited to 'uitest')
-rw-r--r--uitest/src/main/java/com/vaadin/tests/components/datefield/DateTimeFieldEventOrder.java54
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/datefield/DateTimeFieldEventOrderTest.java39
2 files changed, 93 insertions, 0 deletions
diff --git a/uitest/src/main/java/com/vaadin/tests/components/datefield/DateTimeFieldEventOrder.java b/uitest/src/main/java/com/vaadin/tests/components/datefield/DateTimeFieldEventOrder.java
new file mode 100644
index 0000000000..420c83cca7
--- /dev/null
+++ b/uitest/src/main/java/com/vaadin/tests/components/datefield/DateTimeFieldEventOrder.java
@@ -0,0 +1,54 @@
+package com.vaadin.tests.components.datefield;
+
+import com.vaadin.annotations.Widgetset;
+import com.vaadin.server.VaadinRequest;
+import com.vaadin.shared.ui.ValueChangeMode;
+import com.vaadin.shared.ui.datefield.DateTimeResolution;
+import com.vaadin.tests.components.AbstractTestUIWithLog;
+import com.vaadin.tests.widgetset.TestingWidgetSet;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.DateTimeField;
+import com.vaadin.ui.HorizontalLayout;
+import com.vaadin.ui.TextField;
+import com.vaadin.v7.shared.ui.datefield.Resolution;
+import com.vaadin.v7.ui.DateField;
+
+@Widgetset(TestingWidgetSet.NAME)
+public class DateTimeFieldEventOrder extends AbstractTestUIWithLog {
+
+ @Override
+ protected void setup(VaadinRequest request) {
+
+ HorizontalLayout horizontalLayout = new HorizontalLayout();
+
+ DateTimeField dateField = new DateTimeField();
+ dateField.setResolution(DateTimeResolution.SECOND);
+ dateField.setId("test-field");
+ dateField.addValueChangeListener(
+ event -> log("DateTimeField value change event"));
+
+ Button button = new Button("test");
+ button.setId("test-button");
+ button.addClickListener(ev -> {
+ log("Button Click Event");
+ });
+
+ TextField tf = new TextField("test");
+ tf.setValueChangeMode(ValueChangeMode.BLUR);
+ tf.addValueChangeListener(event -> log("TextField value change event"));
+
+ DateField df = new DateField();
+ df.setResolution(Resolution.SECOND);
+ df.addValueChangeListener(event -> {
+ log("DateTimeField V7 value change event");
+ });
+
+ horizontalLayout.addComponents(dateField, button, tf, df);
+ addComponent(horizontalLayout);
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 11316;
+ }
+}
diff --git a/uitest/src/test/java/com/vaadin/tests/components/datefield/DateTimeFieldEventOrderTest.java b/uitest/src/test/java/com/vaadin/tests/components/datefield/DateTimeFieldEventOrderTest.java
new file mode 100644
index 0000000000..cead7d6f2b
--- /dev/null
+++ b/uitest/src/test/java/com/vaadin/tests/components/datefield/DateTimeFieldEventOrderTest.java
@@ -0,0 +1,39 @@
+package com.vaadin.tests.components.datefield;
+
+import java.util.List;
+
+import org.junit.Test;
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.support.ui.Select;
+
+import com.vaadin.testbench.By;
+import com.vaadin.testbench.elements.DateTimeFieldElement;
+import com.vaadin.tests.tb3.SingleBrowserTest;
+
+import static org.junit.Assert.assertEquals;
+
+public class DateTimeFieldEventOrderTest extends SingleBrowserTest {
+
+ @Test
+ public void testEventOrderIsCorrect() {
+ openTestURL();
+
+ DateTimeFieldElement field = $(DateTimeFieldElement.class).first();
+
+ field.openPopup();
+
+ List<WebElement> timeSelects = findElement(
+ By.className("v-datefield-calendarpanel-time"))
+ .findElements(By.tagName("select"));
+
+ new Select(timeSelects.get(0)).selectByValue("09");
+
+ findElement(By.id("test-button")).click();
+
+ assertEquals("The button click event should come second.",
+ "2. Button Click Event", getLogRow(0));
+ assertEquals("The value change event of DTF should come firstly.",
+ "1. DateTimeField value change event", getLogRow(1));
+
+ }
+}