summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorDaniel Lehmann <lehmannd@google.com>2010-11-23 17:37:18 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2010-11-23 17:37:18 -0800
commitfdcf0d5bef479819f9715c0bc750d1e8fa0dcd3e (patch)
treea1216358abeb976c1f5094fa36e8cb0e845bf278 /tests
parent359c52a6988dd3e2db2327ec36e5870906fbf359 (diff)
parent6dd371aea88e09cbe56b8c483021f3bf61527331 (diff)
downloadpackages_providers_ContactsProvider-fdcf0d5bef479819f9715c0bc750d1e8fa0dcd3e.zip
packages_providers_ContactsProvider-fdcf0d5bef479819f9715c0bc750d1e8fa0dcd3e.tar.gz
packages_providers_ContactsProvider-fdcf0d5bef479819f9715c0bc750d1e8fa0dcd3e.tar.bz2
Merge "Allow zeroing the primary/super-primary flag"
Diffstat (limited to 'tests')
-rw-r--r--tests/src/com/android/providers/contacts/ContactsProvider2Test.java159
1 files changed, 156 insertions, 3 deletions
diff --git a/tests/src/com/android/providers/contacts/ContactsProvider2Test.java b/tests/src/com/android/providers/contacts/ContactsProvider2Test.java
index f625a39..9277369 100644
--- a/tests/src/com/android/providers/contacts/ContactsProvider2Test.java
+++ b/tests/src/com/android/providers/contacts/ContactsProvider2Test.java
@@ -2496,9 +2496,6 @@ public class ContactsProvider2Test extends BaseContactsProvider2Test {
" AND " + Data.MIMETYPE + "='testmimetype'", null);
assertNetworkNotified(true);
- // Should not be able to change IS_PRIMARY and IS_SUPER_PRIMARY by the above update
- values.put(Data.IS_PRIMARY, 1);
- values.put(Data.IS_SUPER_PRIMARY, 1);
assertStoredValues(uri, values);
int count = mResolver.delete(Data.CONTENT_URI, Data.RAW_CONTACT_ID + "=" + rawContactId
@@ -3005,6 +3002,162 @@ public class ContactsProvider2Test extends BaseContactsProvider2Test {
assertStoredValue(contactUri, Contacts.STARRED, "1");
}
+ public void testSetAndClearSuperPrimaryEmail() {
+ long rawContactId1 = createRawContact(new Account("a", "a"));
+ Uri mailUri11 = insertEmail(rawContactId1, "test1@domain1.com");
+ Uri mailUri12 = insertEmail(rawContactId1, "test2@domain1.com");
+
+ long rawContactId2 = createRawContact(new Account("b", "b"));
+ Uri mailUri21 = insertEmail(rawContactId2, "test1@domain2.com");
+ Uri mailUri22 = insertEmail(rawContactId2, "test2@domain2.com");
+
+ assertStoredValue(mailUri11, Data.IS_PRIMARY, 0);
+ assertStoredValue(mailUri11, Data.IS_SUPER_PRIMARY, 0);
+ assertStoredValue(mailUri12, Data.IS_PRIMARY, 0);
+ assertStoredValue(mailUri12, Data.IS_SUPER_PRIMARY, 0);
+ assertStoredValue(mailUri21, Data.IS_PRIMARY, 0);
+ assertStoredValue(mailUri21, Data.IS_SUPER_PRIMARY, 0);
+ assertStoredValue(mailUri22, Data.IS_PRIMARY, 0);
+ assertStoredValue(mailUri22, Data.IS_SUPER_PRIMARY, 0);
+
+ // Set super primary on the first pair, primary on the second
+ {
+ ContentValues values = new ContentValues();
+ values.put(Data.IS_SUPER_PRIMARY, 1);
+ mResolver.update(mailUri11, values, null, null);
+ }
+ {
+ ContentValues values = new ContentValues();
+ values.put(Data.IS_SUPER_PRIMARY, 1);
+ mResolver.update(mailUri22, values, null, null);
+ }
+
+ assertStoredValue(mailUri11, Data.IS_PRIMARY, 1);
+ assertStoredValue(mailUri11, Data.IS_SUPER_PRIMARY, 1);
+ assertStoredValue(mailUri12, Data.IS_PRIMARY, 0);
+ assertStoredValue(mailUri12, Data.IS_SUPER_PRIMARY, 0);
+ assertStoredValue(mailUri21, Data.IS_PRIMARY, 0);
+ assertStoredValue(mailUri21, Data.IS_SUPER_PRIMARY, 0);
+ assertStoredValue(mailUri22, Data.IS_PRIMARY, 1);
+ assertStoredValue(mailUri22, Data.IS_SUPER_PRIMARY, 1);
+
+ // Clear primary on the first pair, make sure second is not affected and super_primary is
+ // also cleared
+ {
+ ContentValues values = new ContentValues();
+ values.put(Data.IS_PRIMARY, 0);
+ mResolver.update(mailUri11, values, null, null);
+ }
+
+ assertStoredValue(mailUri11, Data.IS_PRIMARY, 0);
+ assertStoredValue(mailUri11, Data.IS_SUPER_PRIMARY, 0);
+ assertStoredValue(mailUri12, Data.IS_PRIMARY, 0);
+ assertStoredValue(mailUri12, Data.IS_SUPER_PRIMARY, 0);
+ assertStoredValue(mailUri21, Data.IS_PRIMARY, 0);
+ assertStoredValue(mailUri21, Data.IS_SUPER_PRIMARY, 0);
+ assertStoredValue(mailUri22, Data.IS_PRIMARY, 1);
+ assertStoredValue(mailUri22, Data.IS_SUPER_PRIMARY, 1);
+
+ // Ensure that we can only clear super_primary, if we specify the correct data row
+ {
+ ContentValues values = new ContentValues();
+ values.put(Data.IS_SUPER_PRIMARY, 0);
+ mResolver.update(mailUri21, values, null, null);
+ }
+
+ assertStoredValue(mailUri21, Data.IS_PRIMARY, 0);
+ assertStoredValue(mailUri21, Data.IS_SUPER_PRIMARY, 0);
+ assertStoredValue(mailUri22, Data.IS_PRIMARY, 1);
+ assertStoredValue(mailUri22, Data.IS_SUPER_PRIMARY, 1);
+
+ // Ensure that we can only clear primary, if we specify the correct data row
+ {
+ ContentValues values = new ContentValues();
+ values.put(Data.IS_PRIMARY, 0);
+ mResolver.update(mailUri21, values, null, null);
+ }
+
+ assertStoredValue(mailUri21, Data.IS_PRIMARY, 0);
+ assertStoredValue(mailUri21, Data.IS_SUPER_PRIMARY, 0);
+ assertStoredValue(mailUri22, Data.IS_PRIMARY, 1);
+ assertStoredValue(mailUri22, Data.IS_SUPER_PRIMARY, 1);
+
+ // Now clear super-primary for real
+ {
+ ContentValues values = new ContentValues();
+ values.put(Data.IS_SUPER_PRIMARY, 0);
+ mResolver.update(mailUri22, values, null, null);
+ }
+
+ assertStoredValue(mailUri11, Data.IS_PRIMARY, 0);
+ assertStoredValue(mailUri11, Data.IS_SUPER_PRIMARY, 0);
+ assertStoredValue(mailUri12, Data.IS_PRIMARY, 0);
+ assertStoredValue(mailUri12, Data.IS_SUPER_PRIMARY, 0);
+ assertStoredValue(mailUri21, Data.IS_PRIMARY, 0);
+ assertStoredValue(mailUri21, Data.IS_SUPER_PRIMARY, 0);
+ assertStoredValue(mailUri22, Data.IS_PRIMARY, 1);
+ assertStoredValue(mailUri22, Data.IS_SUPER_PRIMARY, 0);
+ }
+
+ /**
+ * Common function for the testNewPrimaryIn* functions. Its four configurations
+ * are each called from its own test
+ */
+ public void testChangingPrimary(boolean inUpdate, boolean withSuperPrimary) {
+ long rawContactId = createRawContact(new Account("a", "a"));
+ Uri mailUri1 = insertEmail(rawContactId, "test1@domain1.com", true);
+
+ if (withSuperPrimary) {
+ final ContentValues values = new ContentValues();
+ values.put(Data.IS_SUPER_PRIMARY, 1);
+ mResolver.update(mailUri1, values, null, null);
+ }
+
+ assertStoredValue(mailUri1, Data.IS_PRIMARY, 1);
+ assertStoredValue(mailUri1, Data.IS_SUPER_PRIMARY, withSuperPrimary ? 1 : 0);
+
+ // Insert another item
+ final Uri mailUri2;
+ if (inUpdate) {
+ mailUri2 = insertEmail(rawContactId, "test2@domain1.com");
+
+ assertStoredValue(mailUri1, Data.IS_PRIMARY, 1);
+ assertStoredValue(mailUri1, Data.IS_SUPER_PRIMARY, withSuperPrimary ? 1 : 0);
+ assertStoredValue(mailUri2, Data.IS_PRIMARY, 0);
+ assertStoredValue(mailUri2, Data.IS_SUPER_PRIMARY, 0);
+
+ final ContentValues values = new ContentValues();
+ values.put(Data.IS_PRIMARY, 1);
+ mResolver.update(mailUri2, values, null, null);
+ } else {
+ // directly add as default
+ mailUri2 = insertEmail(rawContactId, "test2@domain1.com", true);
+ }
+
+ // Ensure that primary has been unset on the first
+ // If withSuperPrimary is set, also ensure that is has been moved to the new item
+ assertStoredValue(mailUri1, Data.IS_PRIMARY, 0);
+ assertStoredValue(mailUri1, Data.IS_SUPER_PRIMARY, 0);
+ assertStoredValue(mailUri2, Data.IS_PRIMARY, 1);
+ assertStoredValue(mailUri2, Data.IS_SUPER_PRIMARY, withSuperPrimary ? 1 : 0);
+ }
+
+ public void testNewPrimaryInInsert() {
+ testChangingPrimary(false, false);
+ }
+
+ public void testNewPrimaryInInsertWithSuperPrimary() {
+ testChangingPrimary(false, true);
+ }
+
+ public void testNewPrimaryInUpdate() {
+ testChangingPrimary(true, false);
+ }
+
+ public void testNewPrimaryInUpdateWithSuperPrimary() {
+ testChangingPrimary(true, true);
+ }
+
public void testLiveFolders() {
long rawContactId1 = createRawContactWithName("James", "Sullivan");
insertPhoneNumber(rawContactId1, "5234567890");