From 684c23af96e06dcd0c735f47b0f7e5ae1c555fdd Mon Sep 17 00:00:00 2001 From: Tatu Lund Date: Mon, 24 Feb 2020 12:51:20 +0200 Subject: [PATCH] Removing code causing the trouble (#11898) * Removing code causing the trouble Removing code that was apparently not needed in previous fix and caused regression Fixes: https://github.com/vaadin/framework/issues/11895 * Added feature to test UI * Added test case * Adding missing import * Fixing test UI * Enable DateField --- .../client/ui/VAbstractCalendarPanel.java | 4 ---- .../DateFieldMonthResolutionStatusChange.java | 7 +++++++ ...eFieldMonthResolutionStatusChangeTest.java | 19 +++++++++++++++++++ 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/client/src/main/java/com/vaadin/client/ui/VAbstractCalendarPanel.java b/client/src/main/java/com/vaadin/client/ui/VAbstractCalendarPanel.java index 765df8867d..ff60fe154d 100644 --- a/client/src/main/java/com/vaadin/client/ui/VAbstractCalendarPanel.java +++ b/client/src/main/java/com/vaadin/client/ui/VAbstractCalendarPanel.java @@ -975,10 +975,6 @@ public abstract class VAbstractCalendarPanel> public void renderCalendar(boolean updateDate) { if (parent instanceof VAbstractPopupCalendar && !((VAbstractPopupCalendar) parent).popup.isShowing()) { - if (getDate() == null) { - // no date set, cannot pre-render yet - return; - } // a popup that isn't open cannot possibly need a focus change event updateDate = false; } diff --git a/uitest/src/main/java/com/vaadin/tests/components/datefield/DateFieldMonthResolutionStatusChange.java b/uitest/src/main/java/com/vaadin/tests/components/datefield/DateFieldMonthResolutionStatusChange.java index 55b2823a1d..62ecb8428c 100644 --- a/uitest/src/main/java/com/vaadin/tests/components/datefield/DateFieldMonthResolutionStatusChange.java +++ b/uitest/src/main/java/com/vaadin/tests/components/datefield/DateFieldMonthResolutionStatusChange.java @@ -30,9 +30,16 @@ public class DateFieldMonthResolutionStatusChange extends AbstractTestUI { dateField.setRangeEnd(LocalDate.of(2020, 1, 1)); }); + Button resetValueButton = new Button("Reset value"); + resetValueButton.setId("resetValue"); + resetValueButton.addClickListener(event -> { + dateField.setValue(LocalDate.now()); + }); + addComponent(dateField); addComponent(dateReadOnlySwitch); addComponent(addRangeButton); + addComponent(resetValueButton); } @Override diff --git a/uitest/src/test/java/com/vaadin/tests/components/datefield/DateFieldMonthResolutionStatusChangeTest.java b/uitest/src/test/java/com/vaadin/tests/components/datefield/DateFieldMonthResolutionStatusChangeTest.java index 58a926546c..0473a582e8 100644 --- a/uitest/src/test/java/com/vaadin/tests/components/datefield/DateFieldMonthResolutionStatusChangeTest.java +++ b/uitest/src/test/java/com/vaadin/tests/components/datefield/DateFieldMonthResolutionStatusChangeTest.java @@ -3,6 +3,7 @@ package com.vaadin.tests.components.datefield; import static org.junit.Assert.assertEquals; import org.junit.Test; +import org.openqa.selenium.By; import com.vaadin.testbench.elements.ButtonElement; import com.vaadin.testbench.elements.DateFieldElement; @@ -35,4 +36,22 @@ public class DateFieldMonthResolutionStatusChangeTest assertEquals("Unexpected date change.", "1/19", df.getValue()); } + @Test + public void testPopupOpenWithDateNotInRange() { + openTestURL(); + DateFieldElement df = $(DateFieldElement.class).first(); + + // switch read-only state + $(ButtonElement.class).id("readOnly").click(); + // set value before range + $(ButtonElement.class).id("resetValue").click(); + // add range, previously set date is not in range + $(ButtonElement.class).id("addRange").click(); + + // Test that popup still opens + df.openPopup(); + waitForElementPresent(By.className("v-datefield-popup")); + assertElementPresent(By.className("v-datefield-popup")); + } + } -- 2.39.5