diff options
author | Makoto Onuki <omakoto@google.com> | 2016-01-28 03:12:11 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2016-01-28 03:12:11 +0000 |
commit | 5a9557efdbd30b9e3ea7bffea428cfa36de2518b (patch) | |
tree | cb6dab06baa0d77f267ff0526e5594c5d7e57265 /tests | |
parent | 107886e618f5af5dce9ea343cfa12ddc44c6ce17 (diff) | |
parent | 2a237a4ade82ac8b3c3b9d6ce36cfb0fe6afe702 (diff) | |
download | ContactsProvider-5a9557efdbd30b9e3ea7bffea428cfa36de2518b.tar.gz |
Merge "Use LocaleList to support multi-locale to improve name "bucketing"."
Diffstat (limited to 'tests')
4 files changed, 191 insertions, 175 deletions
diff --git a/tests/src/com/android/providers/contacts/ContactLocaleUtilsTest.java b/tests/src/com/android/providers/contacts/ContactLocaleUtilsTest.java index 64dcc753..17342726 100644 --- a/tests/src/com/android/providers/contacts/ContactLocaleUtilsTest.java +++ b/tests/src/com/android/providers/contacts/ContactLocaleUtilsTest.java @@ -60,26 +60,26 @@ public class ContactLocaleUtilsTest extends AndroidTestCase { "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "#", ""}; private static final String[] LABELS_JA_JP = { - "", "\u3042", "\u304B", "\u3055", "\u305F", "\u306A", "\u306F", + "…", "\u3042", "\u304B", "\u3055", "\u305F", "\u306A", "\u306F", "\u307E", "\u3084", "\u3089", "\u308F", "\u4ED6", - "", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", + "…", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "#", ""}; private static final String[] LABELS_ZH_TW = { - "", "1\u5283", "2\u5283", "3\u5283", "4\u5283", "5\u5283", "6\u5283", + "…", "1\u5283", "2\u5283", "3\u5283", "4\u5283", "5\u5283", "6\u5283", "7\u5283", "8\u5283", "9\u5283", "10\u5283", "11\u5283", "12\u5283", "13\u5283", "14\u5283", "15\u5283", "16\u5283", "17\u5283", "18\u5283", "19\u5283", "20\u5283", "21\u5283", "22\u5283", "23\u5283", "24\u5283", "25\u5283", "26\u5283", "27\u5283", "28\u5283", "29\u5283", "30\u5283", "31\u5283", "32\u5283", "33\u5283", "35\u5283", "36\u5283", "39\u5283", "48\u5283", - "", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", + "…", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "#", ""}; private static final String[] LABELS_KO = { - "", "\u3131", "\u3134", "\u3137", "\u3139", "\u3141", "\u3142", + "…", "\u3131", "\u3134", "\u3137", "\u3139", "\u3141", "\u3142", "\u3145", "\u3147", "\u3148", "\u314A", "\u314B", "\u314C", "\u314D", - "\u314E", + "\u314E", "…", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "#", ""}; @@ -98,39 +98,8 @@ public class ContactLocaleUtilsTest extends AndroidTestCase { private static final Locale LOCALE_ARABIC = new Locale("ar"); private static final Locale LOCALE_SERBIAN = new Locale("sr"); private static final Locale LOCALE_UKRAINIAN = new Locale("uk"); - private boolean hasSimplifiedChineseCollator; - private boolean hasTraditionalChineseCollator; - private boolean hasJapaneseCollator; - private boolean hasKoreanCollator; - private boolean hasArabicCollator; - private boolean hasGermanCollator; - private boolean hasSerbianCollator; - private boolean hasUkrainianCollator; - - @Override - protected void setUp() throws Exception { - super.setUp(); - final Locale locale[] = Collator.getAvailableLocales(); - for (int i = 0; i < locale.length; i++) { - if (LocaleSet.isLocaleSimplifiedChinese(locale[i])) { - hasSimplifiedChineseCollator = true; - } else if (LocaleSet.isLocaleTraditionalChinese(locale[i])) { - hasTraditionalChineseCollator = true; - } else if (locale[i].equals(Locale.JAPAN)) { - hasJapaneseCollator = true; - } else if (locale[i].equals(Locale.KOREA)) { - hasKoreanCollator = true; - } else if (locale[i].equals(LOCALE_ARABIC)) { - hasArabicCollator = true; - } else if (locale[i].equals(Locale.GERMANY)) { - hasGermanCollator = true; - } else if (locale[i].equals(LOCALE_SERBIAN)) { - hasSerbianCollator = true; - } else if (locale[i].equals(LOCALE_UKRAINIAN)) { - hasUkrainianCollator = true; - } - } - } + private static final Locale LOCALE_SPANISH = new Locale("es"); + private static final Locale LOCALE_GREEK = new Locale("el"); private String getLabel(String name) { ContactLocaleUtils utils = ContactLocaleUtils.getInstance(); @@ -149,7 +118,7 @@ public class ContactLocaleUtilsTest extends AndroidTestCase { } public void testEnglishContactLocaleUtils() throws Exception { - ContactLocaleUtils.setLocale(Locale.ENGLISH); + ContactLocaleUtils.setLocaleForTest(Locale.ENGLISH); assertEquals("#", getLabel(PHONE_NUMBER_1)); assertEquals("#", getLabel(PHONE_NUMBER_2)); assertEquals("J", getLabel(LATIN_NAME)); @@ -157,29 +126,18 @@ public class ContactLocaleUtilsTest extends AndroidTestCase { assertEquals("D", getLabel(CHINESE_LATIN_MIX_NAME_1)); assertEquals("B", getLabel("Bob Smith")); - if (hasArabicCollator) { - assertEquals("\u0646", getLabel(ARABIC_NAME)); - } - if (hasSerbianCollator) { - assertEquals("\u0408", getLabel(SERBIAN_NAME)); - } - if (hasUkrainianCollator) { - // Updated in CLDR 27/ICU 55: - // http://cldr.unicode.org/index/downloads/cldr-27#TOC-Changes-to-Collation - assertEquals("\u0406", getLabel(UKRAINIAN_NAME)); - } + assertEquals("\u0646", getLabel(ARABIC_NAME)); + assertEquals("\u0408", getLabel(SERBIAN_NAME)); + // Updated in CLDR 27/ICU 55: + // http://cldr.unicode.org/index/downloads/cldr-27#TOC-Changes-to-Collation + assertEquals("\u0406", getLabel(UKRAINIAN_NAME)); assertNull(getNameLookupKeys(LATIN_NAME, FullNameStyle.UNDEFINED)); verifyLabels(getLabels(), LABELS_EN_US); } public void testJapaneseContactLocaleUtils() throws Exception { - if (!hasJapaneseCollator) { - Log.w(TAG, "Japanese collator not found; skipping test"); - return; - } - - ContactLocaleUtils.setLocale(Locale.JAPAN); + ContactLocaleUtils.setLocaleForTest(Locale.JAPAN); assertEquals("#", getLabel(PHONE_NUMBER_1)); assertEquals("#", getLabel(PHONE_NUMBER_2)); assertEquals(JAPANESE_MISC, getLabel(KANJI_NAME)); @@ -195,12 +153,7 @@ public class ContactLocaleUtilsTest extends AndroidTestCase { } public void testChineseContactLocaleUtils() throws Exception { - if (!hasSimplifiedChineseCollator) { - Log.w(TAG, "Simplified Chinese collator not found; skipping test"); - return; - } - - ContactLocaleUtils.setLocale(Locale.SIMPLIFIED_CHINESE); + ContactLocaleUtils.setLocaleForTest(Locale.SIMPLIFIED_CHINESE); assertEquals("#", getLabel(PHONE_NUMBER_1)); assertEquals("#", getLabel(PHONE_NUMBER_2)); assertEquals("J", getLabel(LATIN_NAME)); @@ -209,18 +162,14 @@ public class ContactLocaleUtilsTest extends AndroidTestCase { assertEquals("B", getLabel("Bob Smith")); verifyLabels(getLabels(), LABELS_EN_US); - if (hasTraditionalChineseCollator) { - ContactLocaleUtils.setLocale(Locale.TRADITIONAL_CHINESE); - assertEquals("#", getLabel(PHONE_NUMBER_1)); - assertEquals("#", getLabel(PHONE_NUMBER_2)); - assertEquals("J", getLabel(LATIN_NAME)); - assertEquals("7\u5283", getLabel(CHINESE_NAME)); - assertEquals("D", getLabel(CHINESE_LATIN_MIX_NAME_1)); - } else { - Log.w(TAG, "Traditional Chinese collator not found"); - } + ContactLocaleUtils.setLocaleForTest(Locale.TRADITIONAL_CHINESE); + assertEquals("#", getLabel(PHONE_NUMBER_1)); + assertEquals("#", getLabel(PHONE_NUMBER_2)); + assertEquals("J", getLabel(LATIN_NAME)); + assertEquals("7\u5283", getLabel(CHINESE_NAME)); + assertEquals("D", getLabel(CHINESE_LATIN_MIX_NAME_1)); - ContactLocaleUtils.setLocale(Locale.SIMPLIFIED_CHINESE); + ContactLocaleUtils.setLocaleForTest(Locale.SIMPLIFIED_CHINESE); Iterator<String> keys = getNameLookupKeys(CHINESE_NAME, FullNameStyle.CHINESE); verifyKeys(keys, CHINESE_NAME_KEY); @@ -231,21 +180,14 @@ public class ContactLocaleUtilsTest extends AndroidTestCase { keys = getNameLookupKeys(CHINESE_LATIN_MIX_NAME_2, FullNameStyle.CHINESE); verifyKeys(keys, CHINESE_LATIN_MIX_NAME_2_KEY); - if (hasTraditionalChineseCollator) { - ContactLocaleUtils.setLocale(Locale.TRADITIONAL_CHINESE); - assertEquals("B", getLabel("Bob Smith")); - verifyLabels(getLabels(), LABELS_ZH_TW); - } + ContactLocaleUtils.setLocaleForTest(Locale.TRADITIONAL_CHINESE); + assertEquals("B", getLabel("Bob Smith")); + verifyLabels(getLabels(), LABELS_ZH_TW); } public void testPinyinEnabledSecondaryLocale() throws Exception { - if (!hasSimplifiedChineseCollator) { - Log.w(TAG, "Simplified Chinese collator not found; skipping test"); - return; - } - ContactLocaleUtils.setLocales( - new LocaleSet(Locale.ENGLISH, Locale.SIMPLIFIED_CHINESE)); + LocaleSet.newForTest(Locale.ENGLISH, Locale.SIMPLIFIED_CHINESE)); assertEquals("D", getLabel(CHINESE_NAME)); Iterator<String> keys = getNameLookupKeys(CHINESE_NAME, @@ -254,30 +196,20 @@ public class ContactLocaleUtilsTest extends AndroidTestCase { } public void testPinyinDisabledSecondaryLocale() throws Exception { - if (!hasSimplifiedChineseCollator) { - Log.w(TAG, "Simplified Chinese collator not found; skipping test"); - return; - } - ContactLocaleUtils.setLocales( - new LocaleSet(Locale.ENGLISH, Locale.JAPAN)); - assertEquals("", getLabel(CHINESE_NAME)); + LocaleSet.newForTest(Locale.ENGLISH, Locale.JAPAN)); + assertEquals(JAPANESE_MISC, getLabel(CHINESE_NAME)); assertNull(getNameLookupKeys(CHINESE_NAME, FullNameStyle.CHINESE)); assertNull(getNameLookupKeys(CHINESE_NAME, FullNameStyle.CJK)); } public void testChineseStyleNameWithDifferentLocale() throws Exception { - if (!hasSimplifiedChineseCollator) { - Log.w(TAG, "Simplified Chinese collator not found; skipping test"); - return; - } - - ContactLocaleUtils.setLocale(Locale.ENGLISH); + ContactLocaleUtils.setLocaleForTest(Locale.ENGLISH); assertNull(getNameLookupKeys(CHINESE_NAME, FullNameStyle.CHINESE)); assertNull(getNameLookupKeys(CHINESE_NAME, FullNameStyle.CJK)); - ContactLocaleUtils.setLocale(Locale.SIMPLIFIED_CHINESE); + ContactLocaleUtils.setLocaleForTest(Locale.SIMPLIFIED_CHINESE); Iterator<String> keys = getNameLookupKeys(CHINESE_NAME, FullNameStyle.CJK); verifyKeys(keys, CHINESE_NAME_KEY); @@ -286,19 +218,12 @@ public class ContactLocaleUtilsTest extends AndroidTestCase { keys = getNameLookupKeys(LATIN_NAME_2, FullNameStyle.WESTERN); verifyKeys(keys, LATIN_NAME_KEY_2); - if (hasTraditionalChineseCollator) { - ContactLocaleUtils.setLocale(Locale.TRADITIONAL_CHINESE); - assertNull(getNameLookupKeys(CHINESE_NAME, FullNameStyle.CJK)); - } + ContactLocaleUtils.setLocaleForTest(Locale.TRADITIONAL_CHINESE); + assertNull(getNameLookupKeys(CHINESE_NAME, FullNameStyle.CJK)); } public void testKoreanContactLocaleUtils() throws Exception { - if (!hasKoreanCollator) { - Log.w(TAG, "Korean collator not found; skipping test"); - return; - } - - ContactLocaleUtils.setLocale(Locale.KOREA); + ContactLocaleUtils.setLocaleForTest(Locale.KOREA); assertEquals("\u3131", getLabel("\u1100")); assertEquals("\u3131", getLabel("\u3131")); assertEquals("\u3131", getLabel("\u1101")); @@ -308,35 +233,20 @@ public class ContactLocaleUtilsTest extends AndroidTestCase { } public void testArabicContactLocaleUtils() throws Exception { - if (!hasArabicCollator) { - Log.w(TAG, "Arabic collator not found; skipping test"); - return; - } - - ContactLocaleUtils.setLocale(LOCALE_ARABIC); + ContactLocaleUtils.setLocaleForTest(LOCALE_ARABIC); assertEquals("\u0646", getLabel(ARABIC_NAME)); assertEquals("B", getLabel("Bob Smith")); verifyLabels(getLabels(), LABELS_AR); } public void testSerbianContactLocaleUtils() throws Exception { - if (!hasSerbianCollator) { - Log.w(TAG, "Serbian collator not found; skipping test"); - return; - } - - ContactLocaleUtils.setLocale(LOCALE_SERBIAN); + ContactLocaleUtils.setLocaleForTest(LOCALE_SERBIAN); assertEquals("\u0408", getLabel(SERBIAN_NAME)); assertEquals("B", getLabel("Bob Smith")); } public void testUkrainianContactLocaleUtils() throws Exception { - if (!hasUkrainianCollator) { - Log.w(TAG, "Ukrainian collator not found; skipping test"); - return; - } - - ContactLocaleUtils.setLocale(LOCALE_UKRAINIAN); + ContactLocaleUtils.setLocaleForTest(LOCALE_UKRAINIAN); assertEquals("\u0406", getLabel(UKRAINIAN_NAME)); assertEquals("\u0407", getLabel(UKRAINIAN_NAME_2)); assertEquals("\u0490", getLabel(UKRAINIAN_NAME_3)); @@ -344,11 +254,7 @@ public class ContactLocaleUtilsTest extends AndroidTestCase { } public void testGermanContactLocaleUtils() throws Exception { - if (!hasGermanCollator) { - return; - } - - ContactLocaleUtils.setLocale(Locale.GERMANY); + ContactLocaleUtils.setLocaleForTest(Locale.GERMANY); assertEquals("S", getLabel("Sacher")); // ICU 51 has labels Sch and St. These were removed in ICU 52 @@ -357,6 +263,24 @@ public class ContactLocaleUtilsTest extends AndroidTestCase { verifyLabels(getLabels(), LABELS_EN_US); } + public void testOtherLocales() throws Exception { + ContactLocaleUtils.setLocaleForTest(Locale.ENGLISH); + + assertEquals("N", getLabel("n")); + assertEquals("N", getLabel("ñ")); + + ContactLocaleUtils.setLocaleForTest(LOCALE_SPANISH); + + assertEquals("N", getLabel("n")); + assertEquals("Ñ", getLabel("ñ")); + + ContactLocaleUtils.setLocaleForTest(Locale.ENGLISH, LOCALE_SPANISH); + + assertEquals("N", getLabel("n")); + assertEquals("N", getLabel("ñ")); // TODO This should ideally return Ñ. + + } + private void verifyKeys(final Iterator<String> resultKeys, final String[] expectedKeys) throws Exception { HashSet<String> allKeys = new HashSet<String>(); diff --git a/tests/src/com/android/providers/contacts/ContactsProvider2Test.java b/tests/src/com/android/providers/contacts/ContactsProvider2Test.java index d14af722..ddb30d21 100644 --- a/tests/src/com/android/providers/contacts/ContactsProvider2Test.java +++ b/tests/src/com/android/providers/contacts/ContactsProvider2Test.java @@ -4403,7 +4403,7 @@ public class ContactsProvider2Test extends BaseContactsProvider2Test { } public void testContactWithoutPhoneticName() { - ContactLocaleUtils.setLocale(Locale.ENGLISH); + ContactLocaleUtils.setLocaleForTest(Locale.ENGLISH); final long rawContactId = RawContactUtil.createRawContact(mResolver, null); ContentValues values = new ContentValues(); @@ -4451,7 +4451,7 @@ public class ContactsProvider2Test extends BaseContactsProvider2Test { if (!hasChineseCollator()) { return; } - ContactLocaleUtils.setLocale(Locale.SIMPLIFIED_CHINESE); + ContactLocaleUtils.setLocaleForTest(Locale.SIMPLIFIED_CHINESE); long rawContactId = RawContactUtil.createRawContact(mResolver, null); @@ -4498,7 +4498,7 @@ public class ContactsProvider2Test extends BaseContactsProvider2Test { if (!hasJapaneseCollator()) { return; } - ContactLocaleUtils.setLocale(Locale.US); + ContactLocaleUtils.setLocaleForTest(Locale.US); long rawContactId = RawContactUtil.createRawContact(mResolver, null); ContentValues values = new ContentValues(); @@ -4518,7 +4518,7 @@ public class ContactsProvider2Test extends BaseContactsProvider2Test { if (!hasJapaneseCollator()) { return; } - ContactLocaleUtils.setLocale(Locale.JAPAN); + ContactLocaleUtils.setLocaleForTest(Locale.JAPAN); long rawContactId = RawContactUtil.createRawContact(mResolver, null); ContentValues values = new ContentValues(); @@ -4652,7 +4652,7 @@ public class ContactsProvider2Test extends BaseContactsProvider2Test { if (!hasJapaneseCollator()) { return; } - ContactLocaleUtils.setLocale(Locale.JAPAN); + ContactLocaleUtils.setLocaleForTest(Locale.JAPAN); long rawContactId = RawContactUtil.createRawContact(mResolver); long contactId = queryContactId(rawContactId); ContentValues values = new ContentValues(); @@ -4680,7 +4680,7 @@ public class ContactsProvider2Test extends BaseContactsProvider2Test { if (!hasChineseCollator()) { return; } - ContactLocaleUtils.setLocale(Locale.SIMPLIFIED_CHINESE); + ContactLocaleUtils.setLocaleForTest(Locale.SIMPLIFIED_CHINESE); long rawContactId = RawContactUtil.createRawContact(mResolver); long contactId = queryContactId(rawContactId); diff --git a/tests/src/com/android/providers/contacts/LocaleSetTest.java b/tests/src/com/android/providers/contacts/LocaleSetTest.java index 4c1b8d34..d72ffbb3 100644 --- a/tests/src/com/android/providers/contacts/LocaleSetTest.java +++ b/tests/src/com/android/providers/contacts/LocaleSetTest.java @@ -22,41 +22,133 @@ import junit.framework.TestCase; @SmallTest public class LocaleSetTest extends TestCase { - private void testLocaleStringsHelper(Locale primaryLocale, - Locale secondaryLocale, final String expectedString) throws Exception { - final LocaleSet locales = new LocaleSet(primaryLocale, secondaryLocale); - final String localeString = locales.toString(); - assertEquals(expectedString, localeString); - - final LocaleSet parseLocales = LocaleSet.getLocaleSet(localeString); - assertEquals(locales, parseLocales); - } - - @SmallTest - public void testLocaleStrings() throws Exception { - testLocaleStringsHelper(Locale.US, null, "en-US"); - testLocaleStringsHelper(Locale.US, Locale.CHINA, "en-US;zh-CN"); - testLocaleStringsHelper(Locale.JAPAN, Locale.GERMANY, "ja-JP;de-DE"); - } - - private void testNormalizationHelper(String localeString, - Locale expectedPrimary, Locale expectedSecondary) throws Exception { - final LocaleSet expected = new LocaleSet(expectedPrimary, expectedSecondary); - final LocaleSet actual = LocaleSet.getLocaleSet(localeString).normalize(); - assertEquals(expected, actual); - } - - @SmallTest - public void testNormalization() throws Exception { - // Single locale - testNormalizationHelper("en-US", Locale.US, null); - // Disallow secondary with same language as primary - testNormalizationHelper("fr-CA;fr-FR", Locale.CANADA_FRENCH, null); - testNormalizationHelper("en-US;zh-CN", Locale.US, Locale.CHINA); - // Disallow both locales CJK - testNormalizationHelper("ja-JP;zh-CN", Locale.JAPAN, null); - // Disallow en as secondary (happens by default) - testNormalizationHelper("zh-CN;en-US", Locale.CHINA, null); - testNormalizationHelper("zh-CN;de-DE", Locale.CHINA, Locale.GERMANY); + public void testPrimaryLocale() { + final Locale previousDefault = Locale.getDefault(); + try { + assertEquals(Locale.CANADA, LocaleSet.newForTest(Locale.CANADA).getPrimaryLocale()); + assertEquals(Locale.GERMAN, LocaleSet.newForTest(Locale.GERMAN).getPrimaryLocale()); + assertEquals(Locale.GERMAN, LocaleSet.newForTest(Locale.GERMAN, Locale.CANADA) + .getPrimaryLocale()); + + assertEquals(Locale.getDefault(), LocaleSet.newDefault().getPrimaryLocale()); + + Locale.setDefault(Locale.JAPANESE); + + assertEquals(Locale.JAPANESE, LocaleSet.newDefault().getPrimaryLocale()); + } finally { + Locale.setDefault(previousDefault); + } + } + + public void testIsLanguageChinese() { + assertTrue(LocaleSet.isLanguageChinese(Locale.CHINESE)); + assertTrue(LocaleSet.isLanguageChinese(Locale.TRADITIONAL_CHINESE)); + assertTrue(LocaleSet.isLanguageChinese(Locale.SIMPLIFIED_CHINESE)); + + assertFalse(LocaleSet.isLanguageChinese(Locale.JAPANESE)); + assertFalse(LocaleSet.isLanguageChinese(Locale.ENGLISH)); + } + + public void testIsLocaleSimplifiedChinese() { + assertTrue(LocaleSet.isLocaleSimplifiedChinese(Locale.SIMPLIFIED_CHINESE)); + + assertFalse(LocaleSet.isLocaleSimplifiedChinese(Locale.TRADITIONAL_CHINESE)); + assertFalse(LocaleSet.isLocaleTraditionalChinese(Locale.CHINESE)); + assertFalse(LocaleSet.isLocaleSimplifiedChinese(Locale.JAPANESE)); + assertFalse(LocaleSet.isLocaleSimplifiedChinese(Locale.JAPAN)); + assertFalse(LocaleSet.isLocaleSimplifiedChinese(Locale.KOREA)); + assertFalse(LocaleSet.isLocaleSimplifiedChinese(Locale.KOREAN)); + assertFalse(LocaleSet.isLocaleSimplifiedChinese(Locale.ENGLISH)); + + // TODO not sure how to create a Locale with a script set. + } + + public void testIsLocaleTraditionalChinese() { + assertTrue(LocaleSet.isLocaleTraditionalChinese(Locale.TRADITIONAL_CHINESE)); + + assertFalse(LocaleSet.isLocaleTraditionalChinese(Locale.SIMPLIFIED_CHINESE)); + assertFalse(LocaleSet.isLocaleTraditionalChinese(Locale.CHINESE)); + assertFalse(LocaleSet.isLocaleTraditionalChinese(Locale.JAPANESE)); + assertFalse(LocaleSet.isLocaleTraditionalChinese(Locale.JAPAN)); + assertFalse(LocaleSet.isLocaleTraditionalChinese(Locale.KOREA)); + assertFalse(LocaleSet.isLocaleTraditionalChinese(Locale.KOREAN)); + assertFalse(LocaleSet.isLocaleTraditionalChinese(Locale.ENGLISH)); + + // TODO not sure how to create a Locale with a script set. + } + + public void testIsLanguageJapanese() { + assertTrue(LocaleSet.isLanguageJapanese(Locale.JAPANESE)); + assertTrue(LocaleSet.isLanguageJapanese(Locale.JAPAN)); + + assertFalse(LocaleSet.isLanguageJapanese(Locale.TRADITIONAL_CHINESE)); + assertFalse(LocaleSet.isLanguageJapanese(Locale.SIMPLIFIED_CHINESE)); + assertFalse(LocaleSet.isLanguageJapanese(Locale.ENGLISH)); + } + + public void testIsLanguageKorean() { + assertTrue(LocaleSet.isLanguageKorean(Locale.KOREAN)); + assertTrue(LocaleSet.isLanguageKorean(Locale.KOREA)); + + assertFalse(LocaleSet.isLanguageKorean(Locale.TRADITIONAL_CHINESE)); + assertFalse(LocaleSet.isLanguageKorean(Locale.SIMPLIFIED_CHINESE)); + assertFalse(LocaleSet.isLanguageKorean(Locale.JAPANESE)); + assertFalse(LocaleSet.isLanguageKorean(Locale.JAPAN)); + assertFalse(LocaleSet.isLanguageKorean(Locale.ENGLISH)); + } + + public void testIsLocaleCJK() { + assertTrue(LocaleSet.isLocaleCJK(Locale.TRADITIONAL_CHINESE)); + assertTrue(LocaleSet.isLocaleCJK(Locale.SIMPLIFIED_CHINESE)); + assertTrue(LocaleSet.isLocaleCJK(Locale.JAPANESE)); + assertTrue(LocaleSet.isLocaleCJK(Locale.JAPAN)); + assertTrue(LocaleSet.isLocaleCJK(Locale.KOREA)); + assertTrue(LocaleSet.isLocaleCJK(Locale.KOREAN)); + + assertFalse(LocaleSet.isLocaleCJK(Locale.ENGLISH)); + } + + public void testShouldPreferJapanese() { + assertFalse(LocaleSet.newForTest(Locale.ENGLISH) + .shouldPreferJapanese()); + + assertTrue(LocaleSet.newForTest(Locale.JAPAN) + .shouldPreferJapanese()); + assertTrue(LocaleSet.newForTest(Locale.ENGLISH, Locale.KOREAN, Locale.JAPAN) + .shouldPreferJapanese()); + assertTrue(LocaleSet.newForTest(Locale.JAPAN, Locale.TRADITIONAL_CHINESE) + .shouldPreferJapanese()); + assertTrue(LocaleSet.newForTest(Locale.JAPAN, Locale.SIMPLIFIED_CHINESE) + .shouldPreferJapanese()); + assertTrue(LocaleSet.newForTest(Locale.TRADITIONAL_CHINESE, Locale.JAPAN) + .shouldPreferJapanese()); + + // Simplified Chinese wins. + assertFalse(LocaleSet.newForTest(Locale.SIMPLIFIED_CHINESE, Locale.JAPAN) + .shouldPreferJapanese()); + assertFalse(LocaleSet.newForTest(Locale.ENGLISH, Locale.SIMPLIFIED_CHINESE, Locale.JAPAN) + .shouldPreferJapanese()); + } + + public void testShouldPreferSimplifiedChinese() { + assertFalse(LocaleSet.newForTest(Locale.ENGLISH) + .shouldPreferSimplifiedChinese()); + assertFalse(LocaleSet.newForTest(Locale.TRADITIONAL_CHINESE) + .shouldPreferSimplifiedChinese()); + + assertTrue(LocaleSet.newForTest(Locale.SIMPLIFIED_CHINESE) + .shouldPreferSimplifiedChinese()); + assertTrue(LocaleSet.newForTest(Locale.ENGLISH, Locale.KOREAN, Locale.SIMPLIFIED_CHINESE) + .shouldPreferSimplifiedChinese()); + assertTrue(LocaleSet.newForTest(Locale.SIMPLIFIED_CHINESE, Locale.JAPANESE) + .shouldPreferSimplifiedChinese()); + assertTrue(LocaleSet.newForTest(Locale.SIMPLIFIED_CHINESE, Locale.TRADITIONAL_CHINESE) + .shouldPreferSimplifiedChinese()); + + // Simplified Chinese wins. + assertFalse(LocaleSet.newForTest(Locale.JAPAN, Locale.SIMPLIFIED_CHINESE) + .shouldPreferSimplifiedChinese()); + assertFalse(LocaleSet.newForTest(Locale.TRADITIONAL_CHINESE, Locale.SIMPLIFIED_CHINESE) + .shouldPreferSimplifiedChinese()); } } diff --git a/tests/src/com/android/providers/contacts/SearchIndexManagerTest.java b/tests/src/com/android/providers/contacts/SearchIndexManagerTest.java index 05a7e8dd..d41aba67 100644 --- a/tests/src/com/android/providers/contacts/SearchIndexManagerTest.java +++ b/tests/src/com/android/providers/contacts/SearchIndexManagerTest.java @@ -110,7 +110,7 @@ public class SearchIndexManagerTest extends BaseContactsProvider2Test { if (!Arrays.asList(Collator.getAvailableLocales()).contains(Locale.CHINA)) { return; } - ContactLocaleUtils.setLocale(Locale.SIMPLIFIED_CHINESE); + ContactLocaleUtils.setLocaleForTest(Locale.SIMPLIFIED_CHINESE); long rawContactId = RawContactUtil.createRawContact(mResolver); ContentValues values = new ContentValues(); |