]> gitweb.fperrin.net Git - Dictionary.git/blob - jars/icu4j-4_4_2-src/main/tests/packaging/src/com/ibm/icu/dev/test/TestLocaleNamePackaging.java
go
[Dictionary.git] / jars / icu4j-4_4_2-src / main / tests / packaging / src / com / ibm / icu / dev / test / TestLocaleNamePackaging.java
1 /*\r
2  *******************************************************************************\r
3  * Copyright (C) 2009-2010, International Business Machines Corporation and    *\r
4  * others. All Rights Reserved.                                                *\r
5  *******************************************************************************\r
6  */\r
7 package com.ibm.icu.dev.test;\r
8 \r
9 import static com.ibm.icu.impl.LocaleDisplayNamesImpl.DataTableType.LANG;\r
10 import static com.ibm.icu.impl.LocaleDisplayNamesImpl.DataTableType.REGION;\r
11 \r
12 import com.ibm.icu.impl.LocaleDisplayNamesImpl;\r
13 import com.ibm.icu.text.LocaleDisplayNames;\r
14 import com.ibm.icu.text.LocaleDisplayNames.DialectHandling;\r
15 import com.ibm.icu.util.ULocale;\r
16 \r
17 public class TestLocaleNamePackaging extends TestFmwk {\r
18 \r
19     public static void main(String[] args) {\r
20         new TestLocaleNamePackaging().run(args);\r
21     }\r
22 \r
23     public TestLocaleNamePackaging() {\r
24     }\r
25 \r
26     public boolean validate() {\r
27         warnln("language data: " + LocaleDisplayNamesImpl.haveData(LANG));\r
28         warnln("  region data: " + LocaleDisplayNamesImpl.haveData(REGION));\r
29         return true;\r
30     }\r
31 \r
32     private static ULocale[] locales = {\r
33         ULocale.ROOT, ULocale.US, new ULocale("es_ES"), ULocale.GERMANY,\r
34         new ULocale("und_TH")\r
35     };\r
36 \r
37     public void testRegionDisplayNames() {\r
38         String[] expectedWithRegionData = {\r
39             "",\r
40             "US",\r
41             "ES",\r
42             "DE",\r
43             "TH",\r
44             "",\r
45             "United States",\r
46             "Spain",\r
47             "Germany",\r
48             "Thailand",\r
49             "",\r
50             "Estados Unidos",\r
51             "Espa\u00f1a",\r
52             "Alemania",\r
53             "Tailandia",\r
54             "",\r
55             "Vereinigte Staaten",\r
56             "Spanien",\r
57             "Deutschland",\r
58             "Thailand",\r
59             "",\r
60             "United States",\r
61             "Spain",\r
62             "Germany",\r
63             "Thailand",\r
64         };\r
65         String[] expectedWithoutRegionData = {\r
66             "",\r
67             "US",\r
68             "ES",\r
69             "DE",\r
70             "TH",\r
71         };\r
72         String[] expected = LocaleDisplayNamesImpl.haveData(REGION) ? \r
73             expectedWithRegionData : expectedWithoutRegionData;\r
74 \r
75         int n = 0;\r
76         for (ULocale displayLocale : locales) {\r
77             LocaleDisplayNames dn = LocaleDisplayNames.getInstance(displayLocale);\r
78             for (ULocale targetLocale : locales) {\r
79                 String result = dn.regionDisplayName(targetLocale.getCountry());\r
80                 assertEquals(targetLocale + " in " + displayLocale, expected[n++], result);\r
81                 if (n == expected.length) {\r
82                     n = 0;\r
83                 }\r
84             }\r
85         }\r
86     }\r
87 \r
88     public void testLanguageDisplayNames() {\r
89         String[] expectedWithLanguageData = {\r
90             "",\r
91             "en",\r
92             "es",\r
93             "de",\r
94             "und",\r
95             "",\r
96             "English",\r
97             "Spanish",\r
98             "German",\r
99             "Unknown or Invalid Language",\r
100             "",\r
101             "ingl\u00E9s",\r
102             "espa\u00F1ol",\r
103             "alem\u00E1n",\r
104             "indeterminada",\r
105             "",\r
106             "Englisch",\r
107             "Spanisch",\r
108             "Deutsch",\r
109             "Unbestimmte Sprache",\r
110             "",\r
111             "English",\r
112             "Spanish",\r
113             "German",\r
114             "Unknown or Invalid Language",\r
115         };\r
116         String[] expectedWithoutLanguageData = {\r
117             "",\r
118             "en",\r
119             "es",\r
120             "de",\r
121             "und"\r
122         };\r
123         String[] expected = LocaleDisplayNamesImpl.haveData(LANG) ?\r
124             expectedWithLanguageData : expectedWithoutLanguageData;\r
125 \r
126         int n = 0;\r
127         for (ULocale displayLocale : locales) {\r
128             LocaleDisplayNames dn = LocaleDisplayNames.getInstance(displayLocale);\r
129             for (ULocale targetLocale : locales) {\r
130                 String result = dn.languageDisplayName(targetLocale.getLanguage());\r
131                 assertEquals(targetLocale + " in " + displayLocale, expected[n++], result);\r
132                 if (n == expected.length) {\r
133                     n = 0;\r
134                 }\r
135             }\r
136         }\r
137     }\r
138 \r
139     // test a 'root' locale, with keywords\r
140     public void testLocaleDisplayNameWithKeywords() {\r
141         String[] expectedWithLanguageData = {\r
142             "root (collation=phonebook)",\r
143             "Root (collation=Phonebook Sort Order)",\r
144             "ra\u00EDz (intercalaci\u00F3n=orden de list\u00EDn telef\u00F3nico)",\r
145             "Root (Sortierung=Telefonbuch-Sortierregeln)",\r
146             "Root (collation=Phonebook Sort Order)",\r
147         };\r
148         String[] expectedWithoutLanguageData = {\r
149             "root (collation=phonebook)",\r
150         };\r
151         String[] expected = LocaleDisplayNamesImpl.haveData(LANG) ?\r
152             expectedWithLanguageData : expectedWithoutLanguageData;\r
153 \r
154         ULocale kl = new ULocale("@collation=phonebook");\r
155 \r
156         int n = 0;\r
157         for (ULocale displayLocale : locales) {\r
158             LocaleDisplayNames dn = LocaleDisplayNames.getInstance(displayLocale);\r
159             String result = dn.localeDisplayName(kl);\r
160             assertEquals(kl + " in " + displayLocale, expected[n++], result);\r
161             if (n == expected.length) {\r
162                 n = 0;\r
163             }\r
164         }\r
165     }\r
166 \r
167     public void testLanguageDisplayNameDoesNotTranslateRoot() {\r
168         // "root" is not a language code-- the fact that we have our data organized this\r
169         // way is immaterial.  "root" remains untranslated whether we have data or not.\r
170         LocaleDisplayNames dn = LocaleDisplayNames.getInstance(ULocale.US);\r
171         assertEquals("root", "root", dn.languageDisplayName("root"));\r
172     }\r
173 \r
174     public void testLanguageDisplayNameDoesNotTranslateDialects() {\r
175         // Dialect ids are also not language codes.\r
176         LocaleDisplayNames dn = LocaleDisplayNames.getInstance(ULocale.US,\r
177                                                                DialectHandling.DIALECT_NAMES);\r
178         assertEquals("dialect", "en_GB", dn.languageDisplayName("en_GB"));\r
179 \r
180         String target = LocaleDisplayNamesImpl.haveData(LANG)\r
181             ? "British English"\r
182             : (LocaleDisplayNamesImpl.haveData(REGION)\r
183                ? "en (United Kingdom)"\r
184                : "en (GB)");\r
185         assertEquals("dialect 2", target, dn.localeDisplayName("en_GB"));\r
186     }\r
187 }\r