Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(995)

Side by Side Diff: base/android/javatests/src/org/chromium/base/LocaleUtilsTest.java

Issue 2481293004: Use LocaleList in Android/Webview locale representation (Closed)
Patch Set: Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 package org.chromium.base;
6
7 import android.annotation.SuppressLint;
8 import android.os.LocaleList;
9 import android.test.InstrumentationTestCase;
10 import android.test.suitebuilder.annotation.SmallTest;
11
12 import java.util.Locale;
13
14 /**
15 * Tests for the LocaleUtils class.
16 */
17 public class LocaleUtilsTest extends InstrumentationTestCase {
18 // This is also a part of test for toLanguageTag when API level is equal or higher than 24
19 @SmallTest
20 public void testGetUpdatedLanguageForChromium() {
21 String language = "en";
22 String updatedLanguage = LocaleUtils.getUpdatedLanguageForChromium(langu age);
23 assertEquals(language, updatedLanguage);
24
25 language = "iw";
26 updatedLanguage = LocaleUtils.getUpdatedLanguageForChromium(language);
27 assertEquals("he", updatedLanguage);
28
29 language = "ji";
30 updatedLanguage = LocaleUtils.getUpdatedLanguageForChromium(language);
31 assertEquals("yi", updatedLanguage);
32
33 language = "in";
34 updatedLanguage = LocaleUtils.getUpdatedLanguageForChromium(language);
35 assertEquals("id", updatedLanguage);
36
37 language = "tl";
38 updatedLanguage = LocaleUtils.getUpdatedLanguageForChromium(language);
39 assertEquals("fil", updatedLanguage);
40 }
41
42 // This is also a part of test for forLanguageTag when API level is equal or higher than 21
43 @SmallTest
44 public void testGetUpdatedLanguageForAndroid() {
45 String language = "en";
46 String updatedLanguage = LocaleUtils.getUpdatedLanguageForAndroid(langua ge);
47 assertEquals(language, updatedLanguage);
48
49 language = "und";
50 updatedLanguage = LocaleUtils.getUpdatedLanguageForAndroid(language);
51 assertEquals("", updatedLanguage);
52
53 language = "fil";
54 updatedLanguage = LocaleUtils.getUpdatedLanguageForAndroid(language);
55 assertEquals("tl", updatedLanguage);
56 }
57
58 // Test for toLanguageTag when API level is lower than 24
59 @SmallTest
60 public void testToLanguageTag() {
61 Locale locale = new Locale("en", "US");
62 String localeString = LocaleUtils.toLanguageTag(locale);
63 assertEquals("en-US", localeString);
64
65 locale = new Locale("jp");
66 localeString = LocaleUtils.toLanguageTag(locale);
67 assertEquals("jp", localeString);
68
69 locale = new Locale("mas");
70 localeString = LocaleUtils.toLanguageTag(locale);
71 assertEquals("mas", localeString);
72
73 locale = new Locale("es", "005");
74 localeString = LocaleUtils.toLanguageTag(locale);
75 assertEquals("es-005", localeString);
76
77 locale = new Locale("iw");
78 localeString = LocaleUtils.toLanguageTag(locale);
79 assertEquals("he", localeString);
80
81 locale = new Locale("ji");
82 localeString = LocaleUtils.toLanguageTag(locale);
83 assertEquals("yi", localeString);
84
85 locale = new Locale("in", "ID");
86 localeString = LocaleUtils.toLanguageTag(locale);
87 assertEquals("id-ID", localeString);
88
89 locale = new Locale("tl", "PH");
90 localeString = LocaleUtils.toLanguageTag(locale);
91 assertEquals("fil-PH", localeString);
92
93 locale = new Locale("no", "NO", "NY");
94 localeString = LocaleUtils.toLanguageTag(locale);
95 assertEquals("nn-NO", localeString);
96 }
97
98 // Test for toLanguageTags when API level is 24 or higher
99 @SmallTest
100 @SuppressLint("NewApi")
101 public void testToLanguageTags() {
102 Locale locale1 = new Locale("en", "US");
103 Locale locale2 = new Locale("es", "005");
104 LocaleList localeList = new LocaleList(locale1, locale2);
105 String localeString = LocaleUtils.toLanguageTags(localeList);
106 assertEquals("en-US,es-005", localeString);
107
108 locale1 = new Locale("jp");
109 locale2 = new Locale("mas");
110 localeList = new LocaleList(locale1, locale2);
111 localeString = LocaleUtils.toLanguageTags(localeList);
112 assertEquals("jp,mas", localeString);
113
114 locale1 = new Locale("iw");
115 locale2 = new Locale("ji");
116 localeList = new LocaleList(locale1, locale2);
117 localeString = LocaleUtils.toLanguageTags(localeList);
118 assertEquals("he,yi", localeString);
119
120 locale1 = new Locale("in", "ID");
121 locale2 = new Locale("tl", "PH");
122 localeList = new LocaleList(locale1, locale2);
123 localeString = LocaleUtils.toLanguageTags(localeList);
124 assertEquals("id-ID,fil-PH", localeString);
125
126 locale1 = new Locale("no", "NO", "NY");
127 localeList = new LocaleList(locale1);
Seigo Nonaka 2016/11/08 09:31:11 Looks like this test doesn't work on M and before.
Yirui Huang 2016/11/08 10:39:31 Yes, this is only for Android N. For Android M and
Seigo Nonaka 2016/11/08 17:26:41 I meant this test also runs on Android M and befor
Yirui Huang 2016/11/09 04:18:31 Thanks for the information. I think now I can also
128 localeString = LocaleUtils.toLanguageTags(localeList);
129 assertEquals("nn-NO", localeString);
130 }
131
132 // Test for forLanguageTag when API level is lower than 21
133 @SmallTest
134 public void testForLanguageTagCompat() {
135 String languageTag = "";
136 Locale locale = new Locale("");
137 assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag));
138
139 languageTag = "und";
140 locale = new Locale("");
141 assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag));
142
143 languageTag = "en";
144 locale = new Locale("en");
145 assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag));
146
147 languageTag = "mas";
148 locale = new Locale("mas");
149 assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag));
150
151 languageTag = "en-GB";
152 locale = new Locale("en", "GB");
153 assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag));
154
155 languageTag = "es-419";
156 locale = new Locale("es", "419");
157 assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag));
158
159 // Tests if updated Chromium language code and deprecated language code
160 // are pointing to the same Locale Object.
161 languageTag = "he";
162 locale = new Locale("iw");
163 assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag));
164
165 languageTag = "iw";
166 locale = new Locale("he");
167 assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag));
168
169 languageTag = "ji";
170 locale = new Locale("yi");
171 assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag));
172
173 languageTag = "yi";
174 locale = new Locale("ji");
175 assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag));
176
177 languageTag = "in";
178 locale = new Locale("id");
179 assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag));
180
181 languageTag = "id";
182 locale = new Locale("in");
183 assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag));
184
185 // Tests for Tagalog/Filipino if updated Chromium language code and
186 // language code are pointing to the same Locale Object.
187 languageTag = "tl";
188 locale = new Locale("tl");
189 assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag));
190
191 languageTag = "fil";
192 locale = new Locale("tl");
193 assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag));
194
195 // Test with invalid inputs.
196 languageTag = "notValidLanguage";
197 locale = new Locale("");
198 assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag));
199
200 languageTag = "en-notValidCountry";
201 locale = new Locale("en");
202 assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag));
203 }
204 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698