Skip to content

Commit 910b9ab

Browse files
authored
test: cleanup duplicate and redundant DatePicker ITs (#7393)
1 parent e870909 commit 910b9ab

File tree

3 files changed

+40
-323
lines changed

3 files changed

+40
-323
lines changed
Lines changed: 3 additions & 117 deletions
Original file line numberDiff line numberDiff line change
@@ -16,37 +16,23 @@
1616
package com.vaadin.flow.component.datepicker;
1717

1818
import java.time.LocalDate;
19-
import java.util.Arrays;
20-
import java.util.Locale;
2119

2220
import com.vaadin.flow.component.Component;
2321
import com.vaadin.flow.component.html.Div;
2422
import com.vaadin.flow.component.html.H2;
25-
import com.vaadin.flow.component.html.Label;
2623
import com.vaadin.flow.component.html.NativeButton;
2724
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
2825
import com.vaadin.flow.router.Route;
2926

30-
/**
31-
* View for {@link DatePicker} demo.
32-
*
33-
* @author Vaadin Ltd
34-
*/
35-
@Route("vaadin-date-picker-test-demo")
36-
public class DatePickerViewDemoPage extends Div {
27+
@Route("vaadin-date-picker/date-picker-test")
28+
public class DatePickerPage extends Div {
3729

38-
public DatePickerViewDemoPage() {
30+
public DatePickerPage() {
3931
createSimpleDatePicker();
4032
createMinAndMaxDatePicker();
4133
createDisabledDatePicker();
42-
createFinnishDatePicker();
43-
createWithClearButton();
4434
createStartAndEndDatePickers();
45-
createLocaleChangeDatePicker();
46-
createDatePickerInsideDisabledParent();
4735
createDatePickerWithOpenedChangeListener();
48-
addCard("Additional code used in the demo",
49-
new Label("These methods are used in the demo."));
5036
}
5137

5238
private void createSimpleDatePicker() {
@@ -98,56 +84,6 @@ private void createDisabledDatePicker() {
9884
addCard("Disabled date picker", datePicker, message);
9985
}
10086

101-
private void createWithClearButton() {
102-
DatePicker datePicker = new DatePicker();
103-
datePicker.setValue(LocalDate.now());
104-
105-
// Display an icon which can be clicked to clear the value:
106-
datePicker.setClearButtonVisible(true);
107-
108-
addCard("Clear button", datePicker);
109-
}
110-
111-
private void createFinnishDatePicker() {
112-
Div message = createMessageDiv("finnish-picker-message");
113-
114-
DatePicker datePicker = new DatePicker();
115-
datePicker.setLabel("Finnish date picker");
116-
datePicker.setPlaceholder("Syntymäpäivä");
117-
datePicker.setLocale(new Locale("fi"));
118-
119-
datePicker.setI18n(new DatePicker.DatePickerI18n().setToday("tänään")
120-
.setCancel("peruuta").setFirstDayOfWeek(1)
121-
.setMonthNames(Arrays.asList("tammiku", "helmikuu", "maaliskuu",
122-
"huhtikuu", "toukokuu", "kesäkuu", "heinäkuu", "elokuu",
123-
"syyskuu", "lokakuu", "marraskuu", "joulukuu"))
124-
.setWeekdays(Arrays.asList("sunnuntai", "maanantai", "tiistai",
125-
"keskiviikko", "torstai", "perjantai", "lauantai"))
126-
.setWeekdaysShort(Arrays.asList("su", "ma", "ti", "ke", "to",
127-
"pe", "la")));
128-
129-
datePicker.addValueChangeListener(event -> {
130-
LocalDate selectedDate = event.getValue();
131-
if (selectedDate != null) {
132-
int weekday = selectedDate.getDayOfWeek().getValue() % 7;
133-
String weekdayName = datePicker.getI18n().getWeekdays()
134-
.get(weekday);
135-
136-
int month = selectedDate.getMonthValue() - 1;
137-
String monthName = datePicker.getI18n().getMonthNames()
138-
.get(month);
139-
140-
message.setText("Day of week: " + weekdayName + "\nMonth: "
141-
+ monthName);
142-
} else {
143-
message.setText("No date is selected");
144-
}
145-
});
146-
147-
datePicker.setId("finnish-picker");
148-
addCard("Internationalized date picker", datePicker, message);
149-
}
150-
15187
private void createStartAndEndDatePickers() {
15288
Div message = createMessageDiv("start-and-end-message");
15389

@@ -204,56 +140,6 @@ private void createStartAndEndDatePickers() {
204140

205141
}
206142

207-
private void createLocaleChangeDatePicker() {
208-
Div message = createMessageDiv("Customize-locale-picker-message");
209-
// By default, the datePicker uses the current UI locale
210-
DatePicker datePicker = new DatePicker();
211-
NativeButton locale1 = new NativeButton("Locale: US");
212-
NativeButton locale2 = new NativeButton("Locale: UK");
213-
NativeButton locale3 = new NativeButton("Locale: CHINA");
214-
215-
locale1.addClickListener(e -> {
216-
datePicker.setLocale(Locale.US);
217-
updateMessage(message, datePicker);
218-
});
219-
locale2.addClickListener(e -> {
220-
datePicker.setLocale(Locale.UK);
221-
updateMessage(message, datePicker);
222-
});
223-
locale3.addClickListener(e -> {
224-
datePicker.setLocale(Locale.CHINA);
225-
updateMessage(message, datePicker);
226-
});
227-
228-
datePicker.addValueChangeListener(
229-
event -> updateMessage(message, datePicker));
230-
DatePicker.DatePickerI18n i18n = new DatePicker.DatePickerI18n();
231-
i18n.setReferenceDate(LocalDate.of(1980, 2, 2));
232-
datePicker.setI18n(i18n);
233-
locale1.setId("Locale-US");
234-
locale2.setId("Locale-UK");
235-
locale3.setId("Locale-CHINA");
236-
datePicker.setId("locale-change-picker");
237-
addCard("Date picker with customize locales", datePicker, locale1,
238-
locale2, locale3, message);
239-
}
240-
241-
private void createDatePickerInsideDisabledParent() {
242-
Div parent = new Div();
243-
DatePicker datePicker = new DatePicker();
244-
datePicker.setId("picker-inside-disabled-parent");
245-
246-
parent.add(datePicker);
247-
parent.setEnabled(false);
248-
249-
NativeButton enableParent = new NativeButton("Enable parent");
250-
enableParent.setId("enable-parent");
251-
enableParent.addClickListener(event -> parent.setEnabled(true));
252-
253-
addCard("DatePicker inside a disabled parent div", parent,
254-
enableParent);
255-
}
256-
257143
private void createDatePickerWithOpenedChangeListener() {
258144
Div message = createMessageDiv("picker-with-opened-change-message");
259145

vaadin-date-picker-flow-parent/vaadin-date-picker-flow-integration-tests/src/test/java/com/vaadin/flow/component/datepicker/DatePickerIT.java

Lines changed: 1 addition & 206 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
package com.vaadin.flow.component.datepicker;
1717

1818
import java.time.LocalDate;
19-
import java.time.Month;
2019

2120
import org.junit.Assert;
2221
import org.junit.Before;
@@ -29,14 +28,9 @@
2928
import com.vaadin.flow.testutil.TestPath;
3029
import com.vaadin.tests.AbstractComponentIT;
3130

32-
/**
33-
* Integration tests for the {@link DatePickerViewDemoPage}.
34-
*/
35-
@TestPath("vaadin-date-picker-test-demo")
31+
@TestPath("vaadin-date-picker/date-picker-test")
3632
public class DatePickerIT extends AbstractComponentIT {
3733

38-
private static final String DATEPICKER_OVERLAY = "vaadin-date-picker-overlay";
39-
4034
@Before
4135
public void init() {
4236
open();
@@ -96,30 +90,6 @@ public void selectDateOnMinMaxDatePicker() {
9690
picker.getPropertyBoolean("invalid"));
9791
}
9892

99-
@Test
100-
public void selectDateOnFinnishDatePicker() {
101-
DatePickerElement picker = $(DatePickerElement.class)
102-
.id("finnish-picker");
103-
WebElement message = findElement(By.id("finnish-picker-message"));
104-
105-
picker.setDate(LocalDate.of(1985, 1, 10));
106-
107-
waitUntil(driver -> "Day of week: torstai\nMonth: tammiku"
108-
.equals(message.getText()));
109-
110-
picker.clear();
111-
112-
waitUntil(driver -> "No date is selected".equals(message.getText()));
113-
114-
picker.open();
115-
116-
WebElement overlay = $(DATEPICKER_OVERLAY).waitForFirst();
117-
WebElement todayButton = overlay
118-
.findElement(By.cssSelector("[slot=today-button]"));
119-
120-
waitUntil(driver -> "tänään".equals(todayButton.getText()));
121-
}
122-
12393
@Test
12494
public void selectDatesOnLinkedDatePickers() {
12595
DatePickerElement startPicker = $(DatePickerElement.class)
@@ -151,181 +121,6 @@ true, executeScript("return arguments[0].max === '1985-01-19'",
151121
driver -> "Select the starting date".equals(message.getText()));
152122
}
153123

154-
@Test
155-
public void selectDatesOnCustomLocaleDatePickers() {
156-
DatePickerElement localePicker = $(DatePickerElement.class)
157-
.id("locale-change-picker");
158-
WebElement message = findElement(
159-
By.id("Customize-locale-picker-message"));
160-
localePicker.setDate(LocalDate.of(2018, 3, 27));
161-
162-
waitUntil(driver -> message.getText()
163-
.contains("Day: 27\nMonth: 3\nYear: 2018\nLocale:"));
164-
165-
Assert.assertEquals(
166-
"The format of the displayed date should be MM/DD/YYYY",
167-
"3/27/2018", localePicker.getInputValue());
168-
169-
findElement(By.id("Locale-UK")).click();
170-
localePicker.setDate(LocalDate.of(2018, 3, 26));
171-
waitUntil(driver -> "Day: 26\nMonth: 3\nYear: 2018\nLocale: en_GB"
172-
.equals(message.getText()));
173-
174-
Assert.assertEquals(
175-
"The format of the displayed date should be DD/MM/YYYY",
176-
"26/03/2018", localePicker.getInputValue());
177-
178-
findElement(By.id("Locale-US")).click();
179-
localePicker.setDate(LocalDate.of(2018, 3, 25));
180-
waitUntil(driver -> "Day: 25\nMonth: 3\nYear: 2018\nLocale: en_US"
181-
.equals(message.getText()));
182-
Assert.assertEquals(
183-
"The format of the displayed date should be MM/DD/YYYY",
184-
"3/25/2018", localePicker.getInputValue());
185-
186-
findElement(By.id("Locale-UK")).click();
187-
Assert.assertEquals(
188-
"The format of the displayed date should be DD/MM/YYYY",
189-
"25/03/2018", localePicker.getInputValue());
190-
}
191-
192-
private void setDateAndAssert(DatePickerElement datePicker, LocalDate date,
193-
String expectedInputValue) {
194-
datePicker.setDate(date);
195-
Assert.assertEquals(expectedInputValue, datePicker.getInputValue());
196-
}
197-
198-
@Test
199-
public void selectDatesBeforeYear1000() {
200-
DatePickerElement localePicker = $(DatePickerElement.class)
201-
.id("locale-change-picker");
202-
203-
setDateAndAssert(localePicker, LocalDate.of(900, Month.MARCH, 7),
204-
"3/7/0900");
205-
setDateAndAssert(localePicker, LocalDate.of(87, Month.MARCH, 7),
206-
"3/7/0087");
207-
208-
$("button").id("Locale-UK").click();
209-
Assert.assertEquals("07/03/0087", localePicker.getInputValue());
210-
211-
setDateAndAssert(localePicker, LocalDate.of(900, Month.MARCH, 6),
212-
"06/03/0900");
213-
setDateAndAssert(localePicker, LocalDate.of(87, Month.MARCH, 6),
214-
"06/03/0087");
215-
216-
$("button").id("Locale-US").click();
217-
Assert.assertEquals("3/6/0087", localePicker.getInputValue());
218-
219-
setDateAndAssert(localePicker, LocalDate.of(900, Month.MARCH, 5),
220-
"3/5/0900");
221-
setDateAndAssert(localePicker, LocalDate.of(87, Month.MARCH, 5),
222-
"3/5/0087");
223-
224-
$("button").id("Locale-CHINA").click();
225-
Assert.assertEquals("0087/3/5", localePicker.getInputValue());
226-
227-
setDateAndAssert(localePicker, LocalDate.of(900, Month.MARCH, 4),
228-
"0900/3/4");
229-
setDateAndAssert(localePicker, LocalDate.of(87, Month.MARCH, 4),
230-
"0087/3/4");
231-
232-
$("button").id("Locale-UK").click();
233-
Assert.assertEquals("04/03/0087", localePicker.getInputValue());
234-
}
235-
236-
/**
237-
* Expects input value to change to expectedInputValue after setting it.
238-
*/
239-
private void setInputValueAndAssert(DatePickerElement datePicker,
240-
String inputValue, String expectedInputValue,
241-
LocalDate expectedDate) {
242-
datePicker.setInputValue(inputValue);
243-
Assert.assertEquals(expectedInputValue, datePicker.getInputValue());
244-
Assert.assertEquals(expectedDate, datePicker.getDate());
245-
}
246-
247-
/**
248-
* Expects input value to stay the same as it is set to.
249-
*/
250-
private void setInputValueAndAssert(DatePickerElement datePicker,
251-
String inputValue, LocalDate expectedDate) {
252-
setInputValueAndAssert(datePicker, inputValue, inputValue,
253-
expectedDate);
254-
}
255-
256-
@Test
257-
public void selectDatesBeforeYear1000SimulateUserInput() {
258-
DatePickerElement localePicker = $(DatePickerElement.class)
259-
.id("locale-change-picker");
260-
261-
setInputValueAndAssert(localePicker, "3/7/0900",
262-
LocalDate.of(900, Month.MARCH, 7));
263-
264-
setInputValueAndAssert(localePicker, "3/6/900", "3/6/0900",
265-
LocalDate.of(900, Month.MARCH, 6));
266-
setInputValueAndAssert(localePicker, "3/5/0087",
267-
LocalDate.of(87, Month.MARCH, 5));
268-
setInputValueAndAssert(localePicker, "3/6/87", "3/6/1987",
269-
LocalDate.of(1987, Month.MARCH, 6));
270-
setInputValueAndAssert(localePicker, "3/7/20", "3/7/2020",
271-
LocalDate.of(2020, Month.MARCH, 7));
272-
setInputValueAndAssert(localePicker, "3/8/0020",
273-
LocalDate.of(20, Month.MARCH, 8));
274-
275-
$("button").id("Locale-UK").click();
276-
Assert.assertEquals("08/03/0020", localePicker.getInputValue());
277-
278-
setInputValueAndAssert(localePicker, "7/3/0900", "07/03/0900",
279-
LocalDate.of(900, Month.MARCH, 7));
280-
281-
setInputValueAndAssert(localePicker, "6/3/900", "06/03/0900",
282-
LocalDate.of(900, Month.MARCH, 6));
283-
setInputValueAndAssert(localePicker, "5/3/0087", "05/03/0087",
284-
LocalDate.of(87, Month.MARCH, 5));
285-
setInputValueAndAssert(localePicker, "6/3/87", "06/03/1987",
286-
LocalDate.of(1987, Month.MARCH, 6));
287-
setInputValueAndAssert(localePicker, "7/3/20", "07/03/2020",
288-
LocalDate.of(2020, Month.MARCH, 7));
289-
setInputValueAndAssert(localePicker, "8/3/0020", "08/03/0020",
290-
LocalDate.of(20, Month.MARCH, 8));
291-
292-
$("button").id("Locale-CHINA").click();
293-
Assert.assertEquals("0020/3/8", localePicker.getInputValue());
294-
295-
setInputValueAndAssert(localePicker, "0900/3/7",
296-
LocalDate.of(900, Month.MARCH, 7));
297-
setInputValueAndAssert(localePicker, "900/3/6", "0900/3/6",
298-
LocalDate.of(900, Month.MARCH, 6));
299-
setInputValueAndAssert(localePicker, "0087/3/5",
300-
LocalDate.of(87, Month.MARCH, 5));
301-
setInputValueAndAssert(localePicker, "87/3/6", "1987/3/6",
302-
LocalDate.of(1987, Month.MARCH, 6));
303-
setInputValueAndAssert(localePicker, "20/3/7", "2020/3/7",
304-
LocalDate.of(2020, Month.MARCH, 7));
305-
setInputValueAndAssert(localePicker, "0020/3/8",
306-
LocalDate.of(20, Month.MARCH, 8));
307-
308-
$("button").id("Locale-US").click();
309-
Assert.assertEquals("3/8/0020", localePicker.getInputValue());
310-
}
311-
312-
@Test
313-
public void datePickerInsideDisabledParent_pickerIsDisabled() {
314-
WebElement picker = findElement(By.id("picker-inside-disabled-parent"));
315-
Assert.assertFalse(
316-
"The date picker should be disabled, when the parent component is disabled.",
317-
picker.isEnabled());
318-
}
319-
320-
@Test
321-
public void datePickerInsideDisabledParent_enableParent_pickerIsEnabled() {
322-
WebElement picker = findElement(By.id("picker-inside-disabled-parent"));
323-
findElement(By.id("enable-parent")).click();
324-
Assert.assertTrue(
325-
"The date picker should be enabled after parent component is enabled.",
326-
picker.isEnabled());
327-
}
328-
329124
@Test
330125
public void datePicker_OpenedChangeListener() {
331126
WebElement message = findElement(

0 commit comments

Comments
 (0)