27 import sun.util.locale.provider.LocaleProviderAdapter; |
27 import sun.util.locale.provider.LocaleProviderAdapter; |
28 |
28 |
29 public class LocaleProviders { |
29 public class LocaleProviders { |
30 |
30 |
31 private static final boolean IS_WINDOWS = System.getProperty("os.name").startsWith("Windows"); |
31 private static final boolean IS_WINDOWS = System.getProperty("os.name").startsWith("Windows"); |
|
32 private static final boolean IS_MAC = System.getProperty("os.name").startsWith("Mac"); |
32 |
33 |
33 public static void main(String[] args) { |
34 public static void main(String[] args) { |
34 String methodName = args[0]; |
35 String methodName = args[0]; |
35 |
36 |
36 switch (methodName) { |
37 switch (methodName) { |
284 } else { |
289 } else { |
285 System.out.println("bug8228465Test succeeded."); |
290 System.out.println("bug8228465Test succeeded."); |
286 } |
291 } |
287 } |
292 } |
288 } |
293 } |
|
294 |
|
295 static void bug8232871Test() { |
|
296 LocaleProviderAdapter lda = LocaleProviderAdapter.getAdapter(CalendarNameProvider.class, Locale.US); |
|
297 LocaleProviderAdapter.Type type = lda.getAdapterType(); |
|
298 var lang = Locale.getDefault().getLanguage(); |
|
299 var cal = Calendar.getInstance(); |
|
300 var calType = cal.getCalendarType(); |
|
301 var expected = "\u4ee4\u548c1\u5e745\u67081\u65e5 \u6c34\u66dc\u65e5 \u5348\u524d0:00:00 \u30a2\u30e1\u30ea\u30ab\u592a\u5e73\u6d0b\u590f\u6642\u9593"; |
|
302 |
|
303 if (type == LocaleProviderAdapter.Type.HOST && |
|
304 IS_MAC && |
|
305 lang.equals("ja") && |
|
306 calType.equals("japanese")) { |
|
307 cal.set(1, 4, 1, 0, 0, 0); |
|
308 cal.setTimeZone(TimeZone.getTimeZone("America/Los_Angeles")); |
|
309 DateFormat df = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL, |
|
310 Locale.JAPAN); |
|
311 df.setCalendar(cal); |
|
312 var result = df.format(cal.getTime()); |
|
313 if (result.equals(expected)) { |
|
314 System.out.println("bug8232871Test succeeded."); |
|
315 } else { |
|
316 throw new RuntimeException( |
|
317 "Japanese calendar names mismatch. result: " + |
|
318 result + |
|
319 ", expected: " + |
|
320 expected); |
|
321 } |
|
322 } else { |
|
323 System.out.println("Test ignored. Either :-\n" + |
|
324 "OS is not macOS, or\n" + |
|
325 "provider is not HOST: " + type + ", or\n" + |
|
326 "Language is not Japanese: " + lang + ", or\n" + |
|
327 "native calendar is not JapaneseCalendar: " + calType); |
|
328 } |
|
329 } |
289 } |
330 } |