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

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

Issue 2406203002: Use BCP47 compliant format for locale representation (Closed)
Patch Set: BCP 47, change in description Created 4 years, 2 months 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « base/android/java/src/org/chromium/base/ResourceExtractor.java ('k') | base/android/locale_utils.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/android/junit/src/org/chromium/base/LocaleUtilsTest.java
diff --git a/base/android/junit/src/org/chromium/base/LocaleUtilsTest.java b/base/android/junit/src/org/chromium/base/LocaleUtilsTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..d8aa1ff80cd8a5c2e3633119079610426149f55f
--- /dev/null
+++ b/base/android/junit/src/org/chromium/base/LocaleUtilsTest.java
@@ -0,0 +1,174 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.base;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.annotation.Config;
+
+import org.chromium.testing.local.LocalRobolectricTestRunner;
+
+import java.util.Locale;
+
+/** Unit tests for the LocaleUtils class. */
+@RunWith(LocalRobolectricTestRunner.class)
+@Config(manifest = Config.NONE)
+public class LocaleUtilsTest {
+ // TODO(yirui): update tests for LocaleList once SDK Roll is completed.
+
+ // This is also a part of test for toLanguageTag when API level is equal or higher than 24
+ @Test
+ public void testGetUpdatedLanguageForChromium() {
+ String language = "en";
+ String updatedLanguage = LocaleUtils.getUpdatedLanguageForChromium(language);
+ Assert.assertEquals(language, updatedLanguage);
+
+ language = "iw";
+ updatedLanguage = LocaleUtils.getUpdatedLanguageForChromium(language);
+ Assert.assertEquals("he", updatedLanguage);
+
+ language = "ji";
+ updatedLanguage = LocaleUtils.getUpdatedLanguageForChromium(language);
+ Assert.assertEquals("yi", updatedLanguage);
+
+ language = "in";
+ updatedLanguage = LocaleUtils.getUpdatedLanguageForChromium(language);
+ Assert.assertEquals("id", updatedLanguage);
+
+ language = "tl";
+ updatedLanguage = LocaleUtils.getUpdatedLanguageForChromium(language);
+ Assert.assertEquals("fil", updatedLanguage);
+ }
+
+ // This is also a part of test for forLanguageTag when API level is equal or higher than 21
+ @Test
+ public void testGetUpdatedLanguageForAndroid() {
+ String language = "en";
+ String updatedLanguage = LocaleUtils.getUpdatedLanguageForAndroid(language);
+ Assert.assertEquals(language, updatedLanguage);
+
+ language = "und";
+ updatedLanguage = LocaleUtils.getUpdatedLanguageForAndroid(language);
+ Assert.assertEquals("", updatedLanguage);
+
+ language = "fil";
+ updatedLanguage = LocaleUtils.getUpdatedLanguageForAndroid(language);
+ Assert.assertEquals("tl", updatedLanguage);
+ }
+
+ // Test for toLanguageTag when API level is lower than 24
+ @Test
+ public void testToLanguageTagCompat() {
+ Locale locale = new Locale("en", "US");
+ String localeString = LocaleUtils.toLanguageTagCompat(locale);
+ Assert.assertEquals("en-US", localeString);
+
+ locale = new Locale("jp");
+ localeString = LocaleUtils.toLanguageTagCompat(locale);
+ Assert.assertEquals("jp", localeString);
+
+ locale = new Locale("mas");
+ localeString = LocaleUtils.toLanguageTagCompat(locale);
+ Assert.assertEquals("mas", localeString);
+
+ locale = new Locale("es", "005");
+ localeString = LocaleUtils.toLanguageTagCompat(locale);
+ Assert.assertEquals("es-005", localeString);
+
+ locale = new Locale("iw");
+ localeString = LocaleUtils.toLanguageTagCompat(locale);
+ Assert.assertEquals("he", localeString);
+
+ locale = new Locale("ji");
+ localeString = LocaleUtils.toLanguageTagCompat(locale);
+ Assert.assertEquals("yi", localeString);
+
+ locale = new Locale("in", "ID");
+ localeString = LocaleUtils.toLanguageTagCompat(locale);
+ Assert.assertEquals("id-ID", localeString);
+
+ locale = new Locale("tl", "PH");
+ localeString = LocaleUtils.toLanguageTagCompat(locale);
+ Assert.assertEquals("fil-PH", localeString);
+
+ locale = new Locale("no", "NO", "NY");
+ localeString = LocaleUtils.toLanguageTagCompat(locale);
+ Assert.assertEquals("nn-NO", localeString);
+ }
+
+ // Test for forLanguageTag when API level is lower than 21
+ @Test
+ public void testForLanguageTagCompat() {
+ String languageTag = "";
+ Locale locale = new Locale("");
+ Assert.assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag));
+
+ languageTag = "und";
+ locale = new Locale("");
+ Assert.assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag));
+
+ languageTag = "en";
+ locale = new Locale("en");
+ Assert.assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag));
+
+ languageTag = "mas";
+ locale = new Locale("mas");
+ Assert.assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag));
+
+ languageTag = "en-GB";
+ locale = new Locale("en", "GB");
+ Assert.assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag));
+
+ languageTag = "es-419";
+ locale = new Locale("es", "419");
+ Assert.assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag));
+
+ // Tests if updated Chromium language code and deprecated language code
+ // are pointing to the same Locale Object.
+ languageTag = "he";
+ locale = new Locale("iw");
+ Assert.assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag));
+
+ languageTag = "iw";
+ locale = new Locale("he");
+ Assert.assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag));
+
+ languageTag = "ji";
+ locale = new Locale("yi");
+ Assert.assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag));
+
+ languageTag = "yi";
+ locale = new Locale("ji");
+ Assert.assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag));
+
+ languageTag = "in";
+ locale = new Locale("id");
+ Assert.assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag));
+
+ languageTag = "id";
+ locale = new Locale("in");
+ Assert.assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag));
+
+ // Tests for Tagalog/Filipino if updated Chromium language code and
+ // language code are pointing to the same Locale Object.
+ languageTag = "tl";
+ locale = new Locale("tl");
+ Assert.assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag));
+
+ languageTag = "fil";
+ locale = new Locale("tl");
+ Assert.assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag));
+
+ // Test with invalid inputs.
+ languageTag = "notValidLanguage";
+ locale = new Locale("");
+ Assert.assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag));
+
+ languageTag = "en-notValidCountry";
+ locale = new Locale("en");
+ Assert.assertEquals(locale, LocaleUtils.forLanguageTagCompat(languageTag));
+ }
+}
« no previous file with comments | « base/android/java/src/org/chromium/base/ResourceExtractor.java ('k') | base/android/locale_utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698