30 public static void main(String[] args) {
31 String methodName = args[0];
32
33 switch (methodName) {
34 case "getPlatformLocale":
35 if (args[1].equals("format")) {
36 getPlatformLocale(Locale.Category.FORMAT);
37 } else {
38 getPlatformLocale(Locale.Category.DISPLAY);
39 }
40 break;
41
42 case "adapterTest":
43 adapterTest(args[1], args[2], (args.length >= 4 ? args[3] : ""));
44 break;
45
46 case "bug7198834Test":
47 bug7198834Test();
48 break;
49
50 default:
51 throw new RuntimeException("Test method '"+methodName+"' not found.");
52 }
53 }
54
55 static void getPlatformLocale(Locale.Category cat) {
56 Locale defloc = Locale.getDefault(cat);
57 System.out.printf("%s,%s\n", defloc.getLanguage(), defloc.getCountry());
58 }
59
60 static void adapterTest(String expected, String lang, String ctry) {
61 Locale testLocale = new Locale(lang, ctry);
62 String preference = System.getProperty("java.locale.providers", "");
63 LocaleProviderAdapter lda = LocaleProviderAdapter.getAdapter(DateFormatProvider.class, testLocale);
64 LocaleProviderAdapter.Type type = lda.getAdapterType();
65 System.out.printf("testLocale: %s, got: %s, expected: %s\n", testLocale, type, expected);
66 if (!type.toString().equals(expected)) {
67 throw new RuntimeException("Returned locale data adapter is not correct.");
68 }
69 }
70
71 static void bug7198834Test() {
72 LocaleProviderAdapter lda = LocaleProviderAdapter.getAdapter(DateFormatProvider.class, Locale.US);
73 LocaleProviderAdapter.Type type = lda.getAdapterType();
74 if (type == LocaleProviderAdapter.Type.HOST && System.getProperty("os.name").startsWith("Windows")) {
75 DateFormat df = DateFormat.getDateInstance(DateFormat.FULL, Locale.US);
76 String date = df.format(new Date());
77 if (date.charAt(date.length()-1) == ' ') {
78 throw new RuntimeException("Windows Host Locale Provider returns a trailing space.");
79 }
80 } else {
81 System.out.println("Windows HOST locale adapter not found. Ignoring this test.");
82 }
83 }
84 }
|
30 public static void main(String[] args) {
31 String methodName = args[0];
32
33 switch (methodName) {
34 case "getPlatformLocale":
35 if (args[1].equals("format")) {
36 getPlatformLocale(Locale.Category.FORMAT);
37 } else {
38 getPlatformLocale(Locale.Category.DISPLAY);
39 }
40 break;
41
42 case "adapterTest":
43 adapterTest(args[1], args[2], (args.length >= 4 ? args[3] : ""));
44 break;
45
46 case "bug7198834Test":
47 bug7198834Test();
48 break;
49
50 case "tzNameTest":
51 tzNameTest(args[1]);
52 break;
53
54 default:
55 throw new RuntimeException("Test method '"+methodName+"' not found.");
56 }
57 }
58
59 static void getPlatformLocale(Locale.Category cat) {
60 Locale defloc = Locale.getDefault(cat);
61 System.out.printf("%s,%s\n", defloc.getLanguage(), defloc.getCountry());
62 }
63
64 static void adapterTest(String expected, String lang, String ctry) {
65 Locale testLocale = new Locale(lang, ctry);
66 String preference = System.getProperty("java.locale.providers", "");
67 LocaleProviderAdapter lda = LocaleProviderAdapter.getAdapter(DateFormatProvider.class, testLocale);
68 LocaleProviderAdapter.Type type = lda.getAdapterType();
69 System.out.printf("testLocale: %s, got: %s, expected: %s\n", testLocale, type, expected);
70 if (!type.toString().equals(expected)) {
71 throw new RuntimeException("Returned locale data adapter is not correct.");
72 }
73 }
74
75 static void bug7198834Test() {
76 LocaleProviderAdapter lda = LocaleProviderAdapter.getAdapter(DateFormatProvider.class, Locale.US);
77 LocaleProviderAdapter.Type type = lda.getAdapterType();
78 if (type == LocaleProviderAdapter.Type.HOST && System.getProperty("os.name").startsWith("Windows")) {
79 DateFormat df = DateFormat.getDateInstance(DateFormat.FULL, Locale.US);
80 String date = df.format(new Date());
81 if (date.charAt(date.length()-1) == ' ') {
82 throw new RuntimeException("Windows Host Locale Provider returns a trailing space.");
83 }
84 } else {
85 System.out.println("Windows HOST locale adapter not found. Ignoring this test.");
86 }
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 }
96 }
|