From 3654e945b68d5042cbf6254dd559a7ba794a76b3 Mon Sep 17 00:00:00 2001 From: Frank Tang Date: Wed, 22 Jun 2022 09:05:15 -0700 Subject: [PATCH] ICU-22201 Add test to verify ICU-22043 on Java --- .../test/calendar/CalendarRegressionTest.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/calendar/CalendarRegressionTest.java b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/calendar/CalendarRegressionTest.java index 1d21f063305..936ebe4a621 100644 --- a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/calendar/CalendarRegressionTest.java +++ b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/calendar/CalendarRegressionTest.java @@ -2619,5 +2619,26 @@ public class CalendarRegressionTest extends com.ibm.icu.dev.test.TestFmwk { TESTS[i][2], cal.getType()); } } + + void VerifyNoAssertWithSetGregorianChange(String timezone) { + TimeZone zone = TimeZone.getTimeZone(timezone); + GregorianCalendar cal = new GregorianCalendar(zone, Locale.ENGLISH); + cal.setTime(new Date()); + // The beginning of ECMAScript time, namely -(2**53) + long startOfTime = -9007199254740992L; + + cal.setGregorianChange(new Date(startOfTime)); + cal.get(Calendar.ZONE_OFFSET); + cal.get(Calendar.DST_OFFSET); + } + + @Test + public void TestAsiaManilaAfterSetGregorianChange22043() { + VerifyNoAssertWithSetGregorianChange("Asia/Manila"); + for (String id : TimeZone.getAvailableIDs()) { + VerifyNoAssertWithSetGregorianChange(id); + } + } + } //eof -- 2.40.0