diff options
Diffstat (limited to 'services/tests/servicestests/src/com/android/server/inputmethod/LocaleUtilsTest.java')
-rw-r--r-- | services/tests/servicestests/src/com/android/server/inputmethod/LocaleUtilsTest.java | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/services/tests/servicestests/src/com/android/server/inputmethod/LocaleUtilsTest.java b/services/tests/servicestests/src/com/android/server/inputmethod/LocaleUtilsTest.java index 255cb6499d8a..26a2bee8cf68 100644 --- a/services/tests/servicestests/src/com/android/server/inputmethod/LocaleUtilsTest.java +++ b/services/tests/servicestests/src/com/android/server/inputmethod/LocaleUtilsTest.java @@ -357,6 +357,29 @@ public class LocaleUtilsTest { assertEquals(1, dest.size()); assertEquals(availableLocales.get(0), dest.get(0)); // "sr-Latn-RS" } + // Locale with deprecated subtag, e.g. CS for Serbia and Montenegro, should not win + // even if the other available locale doesn't have explicit script / country. + // On Android, users don't normally use deprecated subtags unless the application requests. + { + final LocaleList preferredLocales = LocaleList.forLanguageTags("sr-RS"); + final ArrayList<Locale> availableLocales = new ArrayList<>(); + availableLocales.add(Locale.forLanguageTag("sr-Cyrl-CS")); + availableLocales.add(Locale.forLanguageTag("sr-RS")); + final ArrayList<Locale> dest = new ArrayList<>(); + LocaleUtils.filterByLanguage(availableLocales, sIdentityMapper, preferredLocales, dest); + assertEquals(1, dest.size()); + assertEquals(availableLocales.get(1), dest.get(0)); // "sr-RS" + } + { + final LocaleList preferredLocales = LocaleList.forLanguageTags("sr-RS"); + final ArrayList<Locale> availableLocales = new ArrayList<>(); + availableLocales.add(Locale.forLanguageTag("sr-Cyrl-CS")); + availableLocales.add(Locale.forLanguageTag("sr")); + final ArrayList<Locale> dest = new ArrayList<>(); + LocaleUtils.filterByLanguage(availableLocales, sIdentityMapper, preferredLocales, dest); + assertEquals(1, dest.size()); + assertEquals(availableLocales.get(1), dest.get(0)); // "sr" + } } @Test |