Print this page
rev 5957 : imported patch 8000245.8000273.8000615
Split |
Close |
Expand all |
Collapse all |
--- old/test/java/util/Locale/LocaleProviders.java
+++ new/test/java/util/Locale/LocaleProviders.java
1 1 /*
2 2 * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
3 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 4 *
5 5 * This code is free software; you can redistribute it and/or modify it
6 6 * under the terms of the GNU General Public License version 2 only, as
7 7 * published by the Free Software Foundation.
8 8 *
9 9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 12 * version 2 for more details (a copy is included in the LICENSE file that
13 13 * accompanied this code).
14 14 *
15 15 * You should have received a copy of the GNU General Public License version
16 16 * 2 along with this work; if not, write to the Free Software Foundation,
17 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 18 *
19 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 20 * or visit www.oracle.com if you need additional information or have any
21 21 * questions.
22 22 */
23 23 import java.text.*;
24 24 import java.text.spi.*;
25 25 import java.util.*;
26 26 import sun.util.locale.provider.LocaleProviderAdapter;
27 27
28 28 public class LocaleProviders {
29 29
30 30 public static void main(String[] args) {
31 31 String methodName = args[0];
32 32
33 33 switch (methodName) {
34 34 case "getPlatformLocale":
35 35 if (args[1].equals("format")) {
36 36 getPlatformLocale(Locale.Category.FORMAT);
37 37 } else {
38 38 getPlatformLocale(Locale.Category.DISPLAY);
39 39 }
↓ open down ↓ |
39 lines elided |
↑ open up ↑ |
40 40 break;
41 41
42 42 case "adapterTest":
43 43 adapterTest(args[1], args[2], (args.length >= 4 ? args[3] : ""));
44 44 break;
45 45
46 46 case "bug7198834Test":
47 47 bug7198834Test();
48 48 break;
49 49
50 + case "tzNameTest":
51 + tzNameTest(args[1]);
52 + break;
53 +
50 54 default:
51 55 throw new RuntimeException("Test method '"+methodName+"' not found.");
52 56 }
53 57 }
54 58
55 59 static void getPlatformLocale(Locale.Category cat) {
56 60 Locale defloc = Locale.getDefault(cat);
57 61 System.out.printf("%s,%s\n", defloc.getLanguage(), defloc.getCountry());
58 62 }
59 63
60 64 static void adapterTest(String expected, String lang, String ctry) {
61 65 Locale testLocale = new Locale(lang, ctry);
62 66 String preference = System.getProperty("java.locale.providers", "");
63 67 LocaleProviderAdapter lda = LocaleProviderAdapter.getAdapter(DateFormatProvider.class, testLocale);
64 68 LocaleProviderAdapter.Type type = lda.getAdapterType();
65 69 System.out.printf("testLocale: %s, got: %s, expected: %s\n", testLocale, type, expected);
66 70 if (!type.toString().equals(expected)) {
67 71 throw new RuntimeException("Returned locale data adapter is not correct.");
68 72 }
69 73 }
70 74
71 75 static void bug7198834Test() {
72 76 LocaleProviderAdapter lda = LocaleProviderAdapter.getAdapter(DateFormatProvider.class, Locale.US);
73 77 LocaleProviderAdapter.Type type = lda.getAdapterType();
↓ open down ↓ |
14 lines elided |
↑ open up ↑ |
74 78 if (type == LocaleProviderAdapter.Type.HOST && System.getProperty("os.name").startsWith("Windows")) {
75 79 DateFormat df = DateFormat.getDateInstance(DateFormat.FULL, Locale.US);
76 80 String date = df.format(new Date());
77 81 if (date.charAt(date.length()-1) == ' ') {
78 82 throw new RuntimeException("Windows Host Locale Provider returns a trailing space.");
79 83 }
80 84 } else {
81 85 System.out.println("Windows HOST locale adapter not found. Ignoring this test.");
82 86 }
83 87 }
88 +
89 + static void tzNameTest(String id) {
90 + TimeZone tz = TimeZone.getTimeZone(id);
91 + String tzName = tz.getDisplayName(false, TimeZone.SHORT, Locale.US);
92 + if (tzName.startsWith("GMT")) {
93 + throw new RuntimeException("JRE's localized time zone name for "+id+" could not be retrieved. Returned name was: "+tzName);
94 + }
95 + }
84 96 }
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX