1 /*
2 * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23 /*
24 * @test
25 * @bug 8149452 8151876
26 * @summary Check the missing time zone names.
27 */
28 import java.text.DateFormatSymbols;
29 import java.util.ArrayList;
30 import java.util.TimeZone;
31 import java.util.Arrays;
32 import java.util.List;
33
34 public class Bug8149452 {
35
36 public static void main(String[] args) {
37
38 List<String> listNotFound = new ArrayList<>();
39 String[][] zoneStrings = DateFormatSymbols.getInstance()
40 .getZoneStrings();
41 for (String tzID : TimeZone.getAvailableIDs()) {
42 if (!Arrays.stream(zoneStrings)
43 .anyMatch(zone -> tzID.equalsIgnoreCase(zone[0]))) {
44 // to ignore names for Etc/GMT[+-][0-9]+ which are not supported
45 // Also ignore the TimeZone DisplayNames with GMT[+-]:hh:mm
46 if (!tzID.startsWith("Etc/GMT")
47 && !tzID.startsWith("GMT")
48 && !TimeZone.getTimeZone(tzID).getDisplayName().startsWith("GMT")) {
49 listNotFound.add(tzID);
50 }
51 }
52 }
53
54 if (!listNotFound.isEmpty()) {
55 throw new RuntimeException("Test Failed: Time Zone Strings for "
56 + listNotFound + " not found");
57 }
58
59 }
60
61 }
|
1 /*
2 * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23 /*
24 * @test
25 * @bug 8149452 8151876 8181157
26 * @summary Check the missing time zone names.
27 */
28 import java.text.DateFormatSymbols;
29 import java.util.ArrayList;
30 import java.util.TimeZone;
31 import java.util.Arrays;
32 import java.util.List;
33
34 public class Bug8149452 {
35
36 public static void main(String[] args) {
37 // These zone ids are new in tzdb and yet to be reflected in
38 // CLDR data. Needs to be excluded from the test.
39 // This list is as of CLDR version 29, and should be examined
40 // on the CLDR data upgrade.
41 List<String> NEW_ZONEIDS = List.of(
42 "America/Punta_Arenas",
43 "Asia/Atyrau",
44 "Asia/Barnaul",
45 "Asia/Famagusta",
46 "Asia/Tomsk",
47 "Europe/Astrakhan",
48 "Europe/Kirov",
49 "Europe/Saratov",
50 "Europe/Ulyanovsk");
51
52 List<String> listNotFound = new ArrayList<>();
53 String[][] zoneStrings = DateFormatSymbols.getInstance()
54 .getZoneStrings();
55 for (String tzID : TimeZone.getAvailableIDs()) {
56 if (!Arrays.stream(zoneStrings)
57 .anyMatch(zone -> tzID.equalsIgnoreCase(zone[0]))) {
58 // to ignore names for Etc/GMT[+-][0-9]+ which are not supported
59 if (!tzID.startsWith("Etc/GMT")
60 && !tzID.startsWith("GMT")
61 && !NEW_ZONEIDS.contains(tzID)) {
62 listNotFound.add(tzID);
63 }
64 }
65 }
66
67 if (!listNotFound.isEmpty()) {
68 throw new RuntimeException("Test Failed: Time Zone Strings for "
69 + listNotFound + " not found");
70 }
71
72 }
73
74 }
|