diff options
author | Anna Koskinen <Ansku@users.noreply.github.com> | 2021-01-22 13:08:02 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-22 13:08:02 +0200 |
commit | b4f011230fd5c9d56a0dd7ad7c00c584e25ee990 (patch) | |
tree | ec2f885c3cc2ea200b3405703b1ef9d3cbb8bb7c /uitest/src/test | |
parent | f790ba970d49cfe5c50a3b28d099227af8fcc4a6 (diff) | |
download | vaadin-framework-b4f011230fd5c9d56a0dd7ad7c00c584e25ee990.tar.gz vaadin-framework-b4f011230fd5c9d56a0dd7ad7c00c584e25ee990.zip |
DateField value should actively adjust to the set resolution. (#12183)7.7.23
Diffstat (limited to 'uitest/src/test')
2 files changed, 103 insertions, 0 deletions
diff --git a/uitest/src/test/java/com/vaadin/tests/components/datefield/DateFieldResolutionChangeTest.java b/uitest/src/test/java/com/vaadin/tests/components/datefield/DateFieldResolutionChangeTest.java new file mode 100644 index 0000000000..c2a6b8ad12 --- /dev/null +++ b/uitest/src/test/java/com/vaadin/tests/components/datefield/DateFieldResolutionChangeTest.java @@ -0,0 +1,50 @@ +package com.vaadin.tests.components.datefield; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +import com.vaadin.testbench.elements.ButtonElement; +import com.vaadin.tests.tb3.MultiBrowserTest; + +public class DateFieldResolutionChangeTest extends MultiBrowserTest { + + @Test + public void testValueAndResolutionChange() { + openTestURL(); + + // set a fixed date + $(ButtonElement.class).caption("set").first().click(); + + // both fields should trigger a value change event but for MonthField + // the day value should be truncated to default + assertEquals("Unexpected log row", "1. MonthField set value 2021-02-14", + getLogRow(3)); + assertEquals("Unexpected log row", + "2. MonthField value change event: 2021-02-01", getLogRow(2)); + assertEquals("Unexpected log row", "3. DayField set value 2021-02-14", + getLogRow(1)); + assertEquals("Unexpected log row", + "4. DayField value change event: 2021-02-14", getLogRow(0)); + + // change both to day resolution + $(ButtonElement.class).caption("day").first().click(); + + // DayField shouldn't react, MonthField should check that the value + // matches resolution but not trigger a ValueChangeEvent + assertEquals("Unexpected log row", "5. MonthField set value 2021-02-01", + getLogRow(0)); + + // change both to month resolution + $(ButtonElement.class).caption("month").first().click(); + + // both fields should check that the value matches resolution but only + // DayField should trigger a ValueChangeEvent + assertEquals("Unexpected log row", "6. MonthField set value 2021-02-01", + getLogRow(2)); + assertEquals("Unexpected log row", "7. DayField set value 2021-02-01", + getLogRow(1)); + assertEquals("Unexpected log row", + "8. DayField value change event: 2021-02-01", getLogRow(0)); + } +} diff --git a/uitest/src/test/java/com/vaadin/tests/components/datefield/DateTimeFieldResolutionChangeTest.java b/uitest/src/test/java/com/vaadin/tests/components/datefield/DateTimeFieldResolutionChangeTest.java new file mode 100644 index 0000000000..4fdd0a5ae9 --- /dev/null +++ b/uitest/src/test/java/com/vaadin/tests/components/datefield/DateTimeFieldResolutionChangeTest.java @@ -0,0 +1,53 @@ +package com.vaadin.tests.components.datefield; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +import com.vaadin.testbench.elements.ButtonElement; +import com.vaadin.tests.tb3.MultiBrowserTest; + +public class DateTimeFieldResolutionChangeTest extends MultiBrowserTest { + + @Test + public void testValueAndResolutionChange() { + openTestURL(); + + // set a fixed date + $(ButtonElement.class).caption("set").first().click(); + + // both fields should trigger a value change event but the value should + // be truncated according to each field's resolution + assertEquals("Unexpected log row", + "1. MonthField set value 2021-02-14 16:17:00", getLogRow(3)); + assertEquals("Unexpected log row", + "2. MonthField value change event: 2021-02-01 00:00:00", + getLogRow(2)); + assertEquals("Unexpected log row", + "3. DayField set value 2021-02-14 16:17:00", getLogRow(1)); + assertEquals("Unexpected log row", + "4. DayField value change event: 2021-02-14 00:00:00", + getLogRow(0)); + + // change both to day resolution + $(ButtonElement.class).caption("day").first().click(); + + // DayField shouldn't react, MonthField should check that the value + // matches resolution but not trigger a ValueChangeEvent + assertEquals("Unexpected log row", + "5. MonthField set value 2021-02-01 00:00:00", getLogRow(0)); + + // change both to month resolution + $(ButtonElement.class).caption("month").first().click(); + + // both fields should check that the value matches resolution but only + // DayField should trigger a ValueChangeEvent + assertEquals("Unexpected log row", + "6. MonthField set value 2021-02-01 00:00:00", getLogRow(2)); + assertEquals("Unexpected log row", + "7. DayField set value 2021-02-01 00:00:00", getLogRow(1)); + assertEquals("Unexpected log row", + "8. DayField value change event: 2021-02-01 00:00:00", + getLogRow(0)); + } +} |