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

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

Issue 2406203002: Use BCP47 compliant format for locale representation (Closed)
Patch Set: Rebased, using .equals(), create compat for forLanguageTag, more tests added 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 org.junit.Assert;
8 import org.junit.Test;
9 import org.junit.runner.RunWith;
10 import org.robolectric.annotation.Config;
11
12 import org.chromium.testing.local.LocalRobolectricTestRunner;
13
14 import java.util.Locale;
15
16 /** Unit tests for the LocaleUtils class. */
17 @RunWith(LocalRobolectricTestRunner.class)
18 @Config(manifest = Config.NONE)
19 public class LocaleUtilsTest {
20 // TODO(yirui): update tests for LocaleList once SDK Roll is completed.
21
22 // This is also a part of test for toLanguageTag when API level is equal or higher than 24
23 @Test
24 public void testGetUpdatedLanguageForChromium() {
25 String language = "en";
26 String updatedLanguage = LocaleUtils.getUpdatedLanguageForChromium(langu age);
27 Assert.assertEquals(language, updatedLanguage);
28
29 language = "iw";
30 updatedLanguage = LocaleUtils.getUpdatedLanguageForChromium(language);
31 Assert.assertEquals("he", updatedLanguage);
32
33 language = "ji";
34 updatedLanguage = LocaleUtils.getUpdatedLanguageForChromium(language);
35 Assert.assertEquals("yi", updatedLanguage);
36
37 language = "in";
38 updatedLanguage = LocaleUtils.getUpdatedLanguageForChromium(language);
39 Assert.assertEquals("id", updatedLanguage);
40
41 language = "tl";
42 updatedLanguage = LocaleUtils.getUpdatedLanguageForChromium(language);
43 Assert.assertEquals("fil", updatedLanguage);
44 }
45
46 // This is also a part of test for forLanguageTag when API level is equal or higher than 21
47 @Test
48 public void testGetUpdatedLanguageForAndroid() {
49 String language = "en";
50 String updatedLanguage = LocaleUtils.getUpdatedLanguageForAndroid(langua ge);
51 Assert.assertEquals(language, updatedLanguage);
52
53 language = "und";
54 updatedLanguage = LocaleUtils.getUpdatedLanguageForAndroid(language);
55 Assert.assertEquals("", updatedLanguage);
56
57 language = "fil";
58 updatedLanguage = LocaleUtils.getUpdatedLanguageForAndroid(language);
59 Assert.assertEquals("tl", updatedLanguage);
60 }
61
62 // Test for toLanguageTag when API level is lower than 24
63 @Test
64 public void testToLanguageTagCompat() {
65 Locale locale = new Locale("en", "US");
66 String localeString = LocaleUtils.toLanguageTagCompat(locale);
67 Assert.assertEquals("en-US", localeString);
68
69 locale = new Locale("jp");
70 localeString = LocaleUtils.toLanguageTagCompat(locale);
71 Assert.assertEquals("jp", localeString);
72
73 locale = new Locale("mas");
74 localeString = LocaleUtils.toLanguageTagCompat(locale);
75 Assert.assertEquals("mas", localeString);
76
77 locale = new Locale("es", "005");
78 localeString = LocaleUtils.toLanguageTagCompat(locale);
79 Assert.assertEquals("es-005", localeString);
80
81 locale = new Locale("iw");
82 localeString = LocaleUtils.toLanguageTagCompat(locale);
83 Assert.assertEquals("he", localeString);
84
85 locale = new Locale("ji");
86 localeString = LocaleUtils.toLanguageTagCompat(locale);
87 Assert.assertEquals("yi", localeString);
88
89 locale = new Locale("in", "ID");
90 localeString = LocaleUtils.toLanguageTagCompat(locale);
91 Assert.assertEquals("id-ID", localeString);
92
93 locale = new Locale("tl", "PH");
94 localeString = LocaleUtils.toLanguageTagCompat(locale);
95 Assert.assertEquals("fil-PH", localeString);
96
97 locale = new Locale("no", "NO", "NY");
98 localeString = LocaleUtils.toLanguageTagCompat(locale);
99 Assert.assertEquals("nn-NO", localeString);
100 }
101
102 // Test for forLanguageTag when API level is lower than 21
103 @Test
104 public void testForLanguageTagCompat() {
105 String languageTag = "";
106 Locale locale = new Locale("");
107 Assert.assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag ));
108
109 languageTag = "und";
110 locale = new Locale("");
111 Assert.assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag ));
112
113 languageTag = "en";
114 locale = new Locale("en");
115 Assert.assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag ));
116
117 languageTag = "mas";
118 locale = new Locale("mas");
119 Assert.assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag ));
120
121 languageTag = "en-GB";
122 locale = new Locale("en", "GB");
123 Assert.assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag ));
124
125 languageTag = "es-419";
126 locale = new Locale("es", "419");
127 Assert.assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag ));
128
129 // Tests if updated Chromium language code and deprecated language code
130 // are pointing to the same Locale Object.
131 languageTag = "he";
132 locale = new Locale("iw");
133 Assert.assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag ));
134
135 languageTag = "iw";
136 locale = new Locale("he");
137 Assert.assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag ));
138
139 languageTag = "ji";
140 locale = new Locale("yi");
141 Assert.assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag ));
142
143 languageTag = "yi";
144 locale = new Locale("ji");
145 Assert.assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag ));
146
147 languageTag = "in";
148 locale = new Locale("id");
149 Assert.assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag ));
150
151 languageTag = "id";
152 locale = new Locale("in");
153 Assert.assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag ));
154
155 // Tests for Tagalog/Filipino if updated Chromium language code and
156 // language code are pointing to the same Locale Object.
157 languageTag = "tl";
158 locale = new Locale("tl");
159 Assert.assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag ));
160
161 languageTag = "fil";
162 locale = new Locale("tl");
163 Assert.assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag ));
164
165 // Test with invalid inputs.
166 languageTag = "notValidLanguage";
167 locale = new Locale("");
168 Assert.assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag ));
169
170 languageTag = "en-notValidCountry";
171 locale = new Locale("en");
172 Assert.assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag ));
173 }
174 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698