--- old/test/jdk/sun/util/resources/cldr/TimeZoneNamesTest.java 2020-02-07 13:21:11.000000000 -0800 +++ new/test/jdk/sun/util/resources/cldr/TimeZoneNamesTest.java 2020-02-07 13:21:11.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,19 +23,22 @@ /* * @test - * @bug 8181157 8202537 + * @bug 8181157 8202537 8234347 8236548 * @modules jdk.localedata * @summary Checks CLDR time zone names are generated correctly at runtime * @run testng/othervm -Djava.locale.providers=CLDR TimeZoneNamesTest */ -import static org.testng.Assert.assertEquals; - +import java.text.DateFormatSymbols; import java.time.ZoneId; import java.time.format.TextStyle; +import java.util.Arrays; import java.util.Locale; +import java.util.Objects; import java.util.TimeZone; +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertFalse; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; @@ -51,91 +54,126 @@ // on the CLDR data upgrade. // no "metazone" zones - {"Asia/Srednekolymsk", Locale.US, "Srednekolymsk Time", - "SRET", + {"Asia/Srednekolymsk", Locale.US, "Srednekolymsk Standard Time", + "GMT+11:00", "Srednekolymsk Daylight Time", - "SREDT", + "GMT+11:00", "Srednekolymsk Time", - "SRET"}, + "GMT+11:00"}, {"Asia/Srednekolymsk", Locale.FRANCE, "Srednekolymsk (heure standard)", "UTC+11:00", - "Srednekolymsk (heure standard)", + "Srednekolymsk (heure d\u2019\u00e9t\u00e9)", "UTC+11:00", "heure : Srednekolymsk", "UTC+11:00"}, {"America/Punta_Arenas", Locale.US, "Punta Arenas Standard Time", "GMT-03:00", - "Punta Arenas Standard Time", + "Punta Arenas Daylight Time", "GMT-03:00", "Punta Arenas Time", "GMT-03:00"}, {"America/Punta_Arenas", Locale.FRANCE, "Punta Arenas (heure standard)", "UTC\u221203:00", - "Punta Arenas (heure standard)", + "Punta Arenas (heure d\u2019\u00e9t\u00e9)", "UTC\u221203:00", "heure : Punta Arenas", "UTC\u221203:00"}, - {"Asia/Famagusta", Locale.US, "Eastern European Time", - "EET", - "Eastern European Summer Time", - "EEST", - "Eastern European Time", - "EET"}, + {"Asia/Famagusta", Locale.US, "Famagusta Standard Time", + "GMT+02:00", + "Famagusta Daylight Time", + "GMT+03:00", + "Famagusta Time", + "GMT+02:00"}, {"Asia/Famagusta", Locale.FRANCE, "Famagouste (heure standard)", "UTC+02:00", - "Famagouste (heure standard)", + "Famagouste (heure d\u2019\u00e9t\u00e9)", "UTC+03:00", "heure : Famagouste", "UTC+02:00"}, {"Europe/Astrakhan", Locale.US, "Astrakhan Standard Time", "GMT+04:00", - "Astrakhan Standard Time", + "Astrakhan Daylight Time", "GMT+04:00", "Astrakhan Time", "GMT+04:00"}, {"Europe/Astrakhan", Locale.FRANCE, "Astrakhan (heure standard)", "UTC+04:00", - "Astrakhan (heure standard)", + "Astrakhan (heure d\u2019\u00e9t\u00e9)", "UTC+04:00", "heure : Astrakhan", "UTC+04:00"}, {"Europe/Saratov", Locale.US, "Saratov Standard Time", "GMT+04:00", - "Saratov Standard Time", + "Saratov Daylight Time", "GMT+04:00", "Saratov Time", "GMT+04:00"}, {"Europe/Saratov", Locale.FRANCE, "Saratov (heure standard)", "UTC+04:00", - "Saratov (heure standard)", + "Saratov (heure d\u2019\u00e9t\u00e9)", "UTC+04:00", "heure : Saratov", "UTC+04:00"}, {"Europe/Ulyanovsk", Locale.US, "Ulyanovsk Standard Time", "GMT+04:00", - "Ulyanovsk Standard Time", + "Ulyanovsk Daylight Time", "GMT+04:00", "Ulyanovsk Time", "GMT+04:00"}, {"Europe/Ulyanovsk", Locale.FRANCE, "Oulianovsk (heure standard)", "UTC+04:00", - "Oulianovsk (heure standard)", + "Oulianovsk (heure d\u2019\u00e9t\u00e9)", "UTC+04:00", "heure : Oulianovsk", "UTC+04:00"}, {"Pacific/Bougainville", Locale.US, "Bougainville Standard Time", - "BST", + "GMT+11:00", "Bougainville Daylight Time", - "BST", + "GMT+11:00", "Bougainville Time", - "BT"}, + "GMT+11:00"}, {"Pacific/Bougainville", Locale.FRANCE, "Bougainville (heure standard)", "UTC+11:00", - "Bougainville (heure standard)", + "Bougainville (heure d\u2019\u00e9t\u00e9)", "UTC+11:00", "heure : Bougainville", "UTC+11:00"}, - + {"Europe/Istanbul", Locale.US, "Istanbul Standard Time", + "GMT+03:00", + "Istanbul Daylight Time", + "GMT+03:00", + "Istanbul Time", + "GMT+03:00"}, + {"Europe/Istanbul", Locale.FRANCE, "Istanbul (heure standard)", + "UTC+03:00", + "Istanbul (heure d\u2019\u00e9t\u00e9)", + "UTC+03:00", + "heure : Istanbul", + "UTC+03:00"}, + {"Asia/Istanbul", Locale.US, "Istanbul Standard Time", + "GMT+03:00", + "Istanbul Daylight Time", + "GMT+03:00", + "Istanbul Time", + "GMT+03:00"}, + {"Asia/Istanbul", Locale.FRANCE, "Istanbul (heure standard)", + "UTC+03:00", + "Istanbul (heure d\u2019\u00e9t\u00e9)", + "UTC+03:00", + "heure : Istanbul", + "UTC+03:00"}, + {"Turkey", Locale.US, "Istanbul Standard Time", + "GMT+03:00", + "Istanbul Daylight Time", + "GMT+03:00", + "Istanbul Time", + "GMT+03:00"}, + {"Turkey", Locale.FRANCE, "Istanbul (heure standard)", + "UTC+03:00", + "Istanbul (heure d\u2019\u00e9t\u00e9)", + "UTC+03:00", + "heure : Istanbul", + "UTC+03:00"}, }; } @@ -154,4 +192,20 @@ assertEquals(ZoneId.of(tzid).getDisplayName(TextStyle.FULL, locale), lgen); assertEquals(ZoneId.of(tzid).getDisplayName(TextStyle.SHORT, locale), sgen); } + + // Make sure getZoneStrings() returns non-empty string array + @Test + public void test_getZoneStrings() { + assertFalse( + Arrays.stream(Locale.getAvailableLocales()) + .peek(l -> System.out.println("Locale: " + l)) + .map(l -> DateFormatSymbols.getInstance(l).getZoneStrings()) + .flatMap(zs -> Arrays.stream(zs)) + .peek(names -> System.out.println(" tz: " + names[0])) + .flatMap(names -> Arrays.stream(names)) + .filter(name -> Objects.isNull(name) || name.isEmpty()) + .findAny() + .isPresent(), + "getZoneStrings() returned array containing non-empty string element(s)"); + } }