summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorDmitri Plotnikov <dplotnikov@google.com>2011-02-11 15:20:55 -0800
committerDmitri Plotnikov <dplotnikov@google.com>2011-02-11 15:20:55 -0800
commit92ddc5cdc4d89ee2c6e861ae7b3a3a913ffa0100 (patch)
treecfd2616a96285de6ad6446282e3f6fc8df63c1d1 /tests
parent174f7d319b987aa2aeeb6f2563f4b939acb8d791 (diff)
downloadpackages_providers_ContactsProvider-92ddc5cdc4d89ee2c6e861ae7b3a3a913ffa0100.zip
packages_providers_ContactsProvider-92ddc5cdc4d89ee2c6e861ae7b3a3a913ffa0100.tar.gz
packages_providers_ContactsProvider-92ddc5cdc4d89ee2c6e861ae7b3a3a913ffa0100.tar.bz2
Full text search: Asian language support
Bug: 2078420 Change-Id: I1a99ad05bb6e30b539134d60f669134b87dbf180
Diffstat (limited to 'tests')
-rw-r--r--tests/src/com/android/providers/contacts/BaseContactsProvider2Test.java2
-rw-r--r--tests/src/com/android/providers/contacts/NameLookupBuilderTest.java21
-rw-r--r--tests/src/com/android/providers/contacts/SearchIndexManagerTest.java111
3 files changed, 117 insertions, 17 deletions
diff --git a/tests/src/com/android/providers/contacts/BaseContactsProvider2Test.java b/tests/src/com/android/providers/contacts/BaseContactsProvider2Test.java
index 55f38c9..a62f9c5 100644
--- a/tests/src/com/android/providers/contacts/BaseContactsProvider2Test.java
+++ b/tests/src/com/android/providers/contacts/BaseContactsProvider2Test.java
@@ -776,6 +776,8 @@ public abstract class BaseContactsProvider2Test extends AndroidTestCase {
String value = null;
Cursor c = mResolver.query(uri, new String[] { column }, selection, selectionArgs, null);
try {
+ assertEquals("Record count", 1, c.getCount());
+
if (c.moveToFirst()) {
value = c.getString(c.getColumnIndex(column));
}
diff --git a/tests/src/com/android/providers/contacts/NameLookupBuilderTest.java b/tests/src/com/android/providers/contacts/NameLookupBuilderTest.java
index 91ab761..a5cff7a 100644
--- a/tests/src/com/android/providers/contacts/NameLookupBuilderTest.java
+++ b/tests/src/com/android/providers/contacts/NameLookupBuilderTest.java
@@ -191,17 +191,12 @@ public class NameLookupBuilderTest extends TestCase {
mBuilder.insertNameLookup(0, 0, "\u695A\u8FAD", FullNameStyle.CHINESE);
assertEquals(
"(0:\u695A\u8FAD)" +
- "(2:\u695A\u8FAD)" +
- "(6:\u695A\u8FAD)" +
- "(6:CI)" +
- "(6:\u8FAD)" +
- "(6:CHUCI)" +
- "(6:CC)" +
- "(6:C)", mBuilder.inserted());
+ "(2:\u695A\u8FAD)",
+ mBuilder.inserted());
}
public void testKoreanName() {
- // Only run this test when Chinese collation is supported.
+ // Only run this test when Korean collation is supported.
if (!Arrays.asList(Collator.getAvailableLocales()).contains(Locale.KOREA)) {
return;
}
@@ -210,10 +205,7 @@ public class NameLookupBuilderTest extends TestCase {
mBuilder.insertNameLookup(0, 0, "\uC774\uC0C1\uC77C", FullNameStyle.KOREAN);
assertEquals(
"(0:\uC774\uC0C1\uC77C)" + // Lee Sang Il
- "(2:\uC774\uC0C1\uC77C)" + // Lee Sang Il
- "(6:\uC0C1\uC77C)" + // Sang Il : given name
- "(7:\u1109\u110B)" + // SIOS IEUNG : consonants of given name
- "(7:\u110B\u1109\u110B)", // RIEUL SIOS IEUNG : consonants of fullname
+ "(2:\uC774\uC0C1\uC77C)",
mBuilder.inserted());
}
@@ -227,10 +219,7 @@ public class NameLookupBuilderTest extends TestCase {
mBuilder.insertNameLookup(0, 0, "\uC120\uC6B0\uC6A9\uB140", FullNameStyle.KOREAN);
assertEquals(
"(0:\uC120\uC6B0\uC6A9\uB140)" + // Sun Woo Young Nyeu
- "(2:\uC120\uC6B0\uC6A9\uB140)" + // Sun Woo Young Nyeu
- "(6:\uC6A9\uB140)" + // Young Nyeu : given name
- "(7:\u110B\u1102)" + // IEUNG NIEUN : consonants of given name
- "(7:\u1109\u110B\u110B\u1102)", // SIOS IEUNG IEUNG NIEUN : consonants of fullname
+ "(2:\uC120\uC6B0\uC6A9\uB140)", // Sun Woo Young Nyeu
mBuilder.inserted());
}
diff --git a/tests/src/com/android/providers/contacts/SearchIndexManagerTest.java b/tests/src/com/android/providers/contacts/SearchIndexManagerTest.java
index 09e7924..52ed18f 100644
--- a/tests/src/com/android/providers/contacts/SearchIndexManagerTest.java
+++ b/tests/src/com/android/providers/contacts/SearchIndexManagerTest.java
@@ -27,6 +27,10 @@ import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.SearchSnippetColumns;
import android.test.suitebuilder.annotation.MediumTest;
+import java.text.Collator;
+import java.util.Arrays;
+import java.util.Locale;
+
/**
* Unit tests for {@link SearchIndexManager}.
*
@@ -57,7 +61,112 @@ public class SearchIndexManagerTest extends BaseContactsProvider2Test {
insertStructuredName(rawContactId, values);
assertSearchIndex(
- contactId, null, "Doe John Parr Bob I. Mrs. Parr Helen I. PhD par helen parhelen");
+ contactId, null, "John Doe Bob I Parr Helen I Parr PhD par helen parhelen");
+ }
+
+ public void testSearchIndexForChineseName() {
+ // Only run this test when Chinese collation is supported
+ if (!Arrays.asList(Collator.getAvailableLocales()).contains(Locale.CHINA)) {
+ return;
+ }
+
+ long rawContactId = createRawContact();
+ long contactId = queryContactId(rawContactId);
+ ContentValues values = new ContentValues();
+ values.put(StructuredName.DISPLAY_NAME, "\u695A\u8FAD"); // CHUCI
+ insertStructuredName(rawContactId, values);
+
+ assertSearchIndex(
+ contactId, null, "\u695A\u8FAD \u695A\u8FAD CI \u8FAD CHUCI CC C");
+ }
+
+ public void testSearchByChineseName() {
+ // Only run this test when Chinese collation is supported
+ if (!Arrays.asList(Collator.getAvailableLocales()).contains(Locale.CHINA)) {
+ return;
+ }
+
+ long rawContactId = createRawContact();
+ long contactId = queryContactId(rawContactId);
+ ContentValues values = new ContentValues();
+ values.put(StructuredName.DISPLAY_NAME, "\u695A\u8FAD"); // CHUCI
+ insertStructuredName(rawContactId, values);
+
+ assertStoredValue(buildSearchUri("\u695A\u8FAD"), SearchSnippetColumns.SNIPPET, null);
+ assertStoredValue(buildSearchUri("\u8FAD"), SearchSnippetColumns.SNIPPET, null);
+ assertStoredValue(buildSearchUri("CI"), SearchSnippetColumns.SNIPPET, null);
+ assertStoredValue(buildSearchUri("CHUCI"), SearchSnippetColumns.SNIPPET, null);
+ assertStoredValue(buildSearchUri("CC"), SearchSnippetColumns.SNIPPET, null);
+ assertStoredValue(buildSearchUri("C"), SearchSnippetColumns.SNIPPET, null);
+ }
+
+ public void testSearchIndexForKoreanName() {
+ // Only run this test when Korean collation is supported
+ if (!Arrays.asList(Collator.getAvailableLocales()).contains(Locale.KOREA)) {
+ return;
+ }
+
+ long rawContactId = createRawContact();
+ long contactId = queryContactId(rawContactId);
+ ContentValues values = new ContentValues();
+ values.put(StructuredName.DISPLAY_NAME, "\uC774\uC0C1\uC77C"); // Lee Sang Il
+ insertStructuredName(rawContactId, values);
+
+ assertSearchIndex(
+ contactId, null, "\uC774\uC0C1\uC77C \uC0C1\uC77C \u1109\u110B \u110B\u1109\u110B");
+ }
+
+ public void testSearchByKoreanName() {
+ // Only run this test when Korean collation is supported
+ if (!Arrays.asList(Collator.getAvailableLocales()).contains(Locale.KOREA)) {
+ return;
+ }
+
+ long rawContactId = createRawContact();
+ ContentValues values = new ContentValues();
+ values.put(StructuredName.DISPLAY_NAME, "\uC774\uC0C1\uC77C"); // Lee Sang Il
+ insertStructuredName(rawContactId, values);
+
+ // Full name: Lee Sang Il
+ assertStoredValue(buildSearchUri("\uC774\uC0C1\uC77C"), SearchSnippetColumns.SNIPPET, null);
+
+ // Given name: Sang Il
+ assertStoredValue(buildSearchUri("\uC0C1\uC77C"), SearchSnippetColumns.SNIPPET, null);
+
+ // Consonants of given name: SIOS IEUNG
+ assertStoredValue(buildSearchUri("\u1109\u110B"), SearchSnippetColumns.SNIPPET, null);
+
+ // Consonants of full name: RIEUL SIOS IEUNG
+ assertStoredValue(buildSearchUri("\u110B\u1109\u110B"), SearchSnippetColumns.SNIPPET, null);
+ }
+
+ public void testSearchByKoreanNameWithTwoCharactersFamilyName() {
+ // Only run this test when Korean collation is supported.
+ if (!Arrays.asList(Collator.getAvailableLocales()).contains(Locale.KOREA)) {
+ return;
+ }
+
+ long rawContactId = createRawContact();
+
+ // Sun Woo Young Nyeu
+ ContentValues values = new ContentValues();
+ values.put(StructuredName.DISPLAY_NAME, "\uC120\uC6B0\uC6A9\uB140");
+
+ insertStructuredName(rawContactId, values);
+
+ // Full name: Sun Woo Young Nyeu
+ assertStoredValue(
+ buildSearchUri("\uC120\uC6B0\uC6A9\uB140"), SearchSnippetColumns.SNIPPET, null);
+
+ // Given name: Young Nyeu
+ assertStoredValue(buildSearchUri("\uC6A9\uB140"), SearchSnippetColumns.SNIPPET, null);
+
+ // Consonants of given name: IEUNG NIEUN
+ assertStoredValue(buildSearchUri("\u110B\u1102"), SearchSnippetColumns.SNIPPET, null);
+
+ // Consonants of full name: SIOS IEUNG IEUNG NIEUN
+ assertStoredValue(
+ buildSearchUri("\u1109\u110B\u110B\u1102"), SearchSnippetColumns.SNIPPET, null);
}
public void testSearchIndexForOrganization() {