aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMakoto Onuki <omakoto@google.com>2016-01-28 03:12:11 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2016-01-28 03:12:11 +0000
commit5a9557efdbd30b9e3ea7bffea428cfa36de2518b (patch)
treecb6dab06baa0d77f267ff0526e5594c5d7e57265 /tests
parent107886e618f5af5dce9ea343cfa12ddc44c6ce17 (diff)
parent2a237a4ade82ac8b3c3b9d6ce36cfb0fe6afe702 (diff)
downloadContactsProvider-5a9557efdbd30b9e3ea7bffea428cfa36de2518b.tar.gz
Merge "Use LocaleList to support multi-locale to improve name "bucketing"."
Diffstat (limited to 'tests')
-rw-r--r--tests/src/com/android/providers/contacts/ContactLocaleUtilsTest.java188
-rw-r--r--tests/src/com/android/providers/contacts/ContactsProvider2Test.java12
-rw-r--r--tests/src/com/android/providers/contacts/LocaleSetTest.java164
-rw-r--r--tests/src/com/android/providers/contacts/SearchIndexManagerTest.java2
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();