Skip to content

Commit cbab6b9

Browse files
authored
Use fixed date in ValidatorLightweightPicker screenshot test to stabilize output (#4738)
* Use java.time for fixed picker screenshot date * Harden screenshot date and iOS PNG chunking * Fix picker date setup without forbidden Date constructor * Harden screenshot chunking and fix picker button dates * Fix iOS screenshot chunk format regression * Revert screenshot helper regressions * Updated Android screenshot Signed-off-by: liannacasper <67953602+liannacasper@users.noreply.github.com> --------- Signed-off-by: liannacasper <67953602+liannacasper@users.noreply.github.com>
1 parent 9ed10e0 commit cbab6b9

3 files changed

Lines changed: 25 additions & 7 deletions

File tree

-28 Bytes
Loading

scripts/hellocodenameone/common/src/main/java/com/codenameone/examples/hellocodenameone/tests/LightweightPickerButtonsScreenshotTest.java

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,31 +6,34 @@
66
import com.codename1.ui.spinner.Picker;
77
import com.codename1.ui.util.UITimer;
88

9-
import java.util.Calendar;
9+
import java.time.LocalDate;
10+
import java.time.ZoneId;
1011
import java.util.Date;
1112

1213
public class LightweightPickerButtonsScreenshotTest extends BaseTest {
1314
private Picker picker;
15+
private Date fixedDate;
16+
private Date fixedDatePlus7;
1417

1518
@Override
1619
public boolean runTest() {
1720
Form form = createForm("Picker Quick Buttons", BoxLayout.y(), "LightweightPickerButtons");
21+
fixedDate = toDate(LocalDate.of(2026, 4, 11));
22+
fixedDatePlus7 = toDate(LocalDate.of(2026, 4, 18));
1823
picker = new Picker();
1924
picker.setType(Display.PICKER_TYPE_DATE);
2025
picker.setUseLightweightPopup(true);
21-
picker.setDate(new Date());
26+
picker.setDate(fixedDate);
2227
picker.addLightweightPopupButton("Today", new Runnable() {
2328
@Override
2429
public void run() {
25-
picker.setDate(new Date());
30+
picker.setDate(fixedDate);
2631
}
2732
});
2833
picker.addLightweightPopupButton("+7 Days", new Runnable() {
2934
@Override
3035
public void run() {
31-
Calendar cal = Calendar.getInstance();
32-
cal.add(Calendar.DAY_OF_MONTH, 7);
33-
picker.setDate(cal.getTime());
36+
picker.setDate(fixedDatePlus7);
3437
}
3538
}, Picker.LightweightPopupButtonPlacement.BELOW_SPINNER);
3639
form.add(picker);
@@ -40,7 +43,12 @@ public void run() {
4043

4144
@Override
4245
protected void registerReadyCallback(Form parent, Runnable run) {
46+
picker.setDate(fixedDate);
4347
picker.startEditingAsync();
4448
UITimer.timer(1000, false, parent, run);
4549
}
50+
51+
private static Date toDate(LocalDate date) {
52+
return new Date(date.atStartOfDay(ZoneId.systemDefault()).toInstant().toEpochMilli());
53+
}
4654
}

scripts/hellocodenameone/common/src/main/java/com/codenameone/examples/hellocodenameone/tests/ValidatorLightweightPickerScreenshotTest.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
import com.codename1.ui.validation.LengthConstraint;
1010
import com.codename1.ui.validation.Validator;
1111

12+
import java.time.LocalDate;
13+
import java.time.ZoneId;
1214
import java.util.ArrayList;
1315
import java.util.Date;
1416
import java.util.List;
@@ -17,14 +19,21 @@ public class ValidatorLightweightPickerScreenshotTest extends BaseTest {
1719
private Picker picker;
1820
private final List<TextField> fields = new ArrayList<>();
1921
private boolean originalValidateOnEveryKey;
22+
private Date fixedBirthDate;
2023

2124
@Override
2225
public boolean runTest() {
2326
Form form = createForm("Validator + Picker", BoxLayout.y(), "ValidatorLightweightPicker");
2427
originalValidateOnEveryKey = Validator.isValidateOnEveryKey();
2528
Validator.setValidateOnEveryKey(true);
2629

27-
PickerComponent birthDate = PickerComponent.createDate(new Date()).label("Birthdate");
30+
fixedBirthDate = new Date(
31+
LocalDate.of(2026, 4, 11)
32+
.atStartOfDay(ZoneId.systemDefault())
33+
.toInstant()
34+
.toEpochMilli()
35+
);
36+
PickerComponent birthDate = PickerComponent.createDate(fixedBirthDate).label("Birthdate");
2837
picker = birthDate.getPicker();
2938
picker.setUseLightweightPopup(true);
3039
form.add(birthDate);
@@ -50,6 +59,7 @@ protected void registerReadyCallback(Form parent, Runnable run) {
5059
for (TextField field : fields) {
5160
field.setText("x");
5261
}
62+
picker.setDate(fixedBirthDate);
5363
picker.startEditingAsync();
5464
UITimer.timer(1000, false, parent, run);
5565
}

0 commit comments

Comments
 (0)