* 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 DateFieldtags/8.11.0.alpha1
@@ -975,10 +975,6 @@ public abstract class VAbstractCalendarPanel<R extends Enum<R>> | |||
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; | |||
} |
@@ -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 |
@@ -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")); | |||
} | |||
} |