diff options
author | Tingting Wang <tingtingw@google.com> | 2021-10-05 20:34:31 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2021-10-05 20:34:31 +0000 |
commit | 69b0c629789db9f097b139579ec30a9fa6cd1771 (patch) | |
tree | 22e85807902acd03391b60c1e60d3d2d0e5879a8 /tests/src/com/android | |
parent | 575c56ea67af8bc658cb5be22781e70419638696 (diff) | |
parent | 24b79b55c7599daac0ee00a10ba0020cb0f39a47 (diff) | |
download | ContactsProvider-69b0c629789db9f097b139579ec30a9fa6cd1771.tar.gz |
Merge "Set/get default account to/from CP2 DB."
Diffstat (limited to 'tests/src/com/android')
-rw-r--r-- | tests/src/com/android/providers/contacts/ContactsDatabaseHelperTest.java | 25 | ||||
-rw-r--r-- | tests/src/com/android/providers/contacts/ContactsProvider2Test.java | 61 |
2 files changed, 86 insertions, 0 deletions
diff --git a/tests/src/com/android/providers/contacts/ContactsDatabaseHelperTest.java b/tests/src/com/android/providers/contacts/ContactsDatabaseHelperTest.java index 396bb151..143cc6c6 100644 --- a/tests/src/com/android/providers/contacts/ContactsDatabaseHelperTest.java +++ b/tests/src/com/android/providers/contacts/ContactsDatabaseHelperTest.java @@ -18,6 +18,7 @@ package com.android.providers.contacts; import android.content.ContentValues; import android.database.ContentObserver; +import android.accounts.Account; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.net.Uri; @@ -533,4 +534,28 @@ public class ContactsDatabaseHelperTest extends BaseContactsProvider2Test { assertEquals(creationTime, dbHelper2.getDatabaseCreationTime()); } + + public void testGetAndSetDefaultAccount() { + Account account = mDbHelper.getDefaultAccount(); + assertNull(account); + + mDbHelper.setDefaultAccount("a", "b"); + account = mDbHelper.getDefaultAccount(); + assertEquals("a", account.name); + assertEquals("b", account.type); + + mDbHelper.setDefaultAccount("c", "d"); + account = mDbHelper.getDefaultAccount(); + assertEquals("c", account.name); + assertEquals("d", account.type); + + mDbHelper.setDefaultAccount(null, null); + account = mDbHelper.getDefaultAccount(); + assertNull(account); + + // invalid account name does nothing. + mDbHelper.setDefaultAccount(")--", null); + account = mDbHelper.getDefaultAccount(); + assertNull(account); + } } diff --git a/tests/src/com/android/providers/contacts/ContactsProvider2Test.java b/tests/src/com/android/providers/contacts/ContactsProvider2Test.java index 0bcab462..dd582d0d 100644 --- a/tests/src/com/android/providers/contacts/ContactsProvider2Test.java +++ b/tests/src/com/android/providers/contacts/ContactsProvider2Test.java @@ -9124,6 +9124,67 @@ public class ContactsProvider2Test extends BaseContactsProvider2Test { ); } + public void testDefaultAccountSet_throwException() { + try { + mResolver.call(ContactsContract.AUTHORITY_URI, Settings.SET_DEFAULT_ACCOUNT_METHOD, + null, null); + fail(); + } catch (SecurityException expected) { + } + + mActor.addPermissions("android.permission.SET_DEFAULT_ACCOUNT_FOR_CONTACTS"); + try { + Bundle bundle = new Bundle(); + bundle.putString(Settings.ACCOUNT_NAME, "a"); // no account type specified + mResolver.call(ContactsContract.AUTHORITY_URI, Settings.SET_DEFAULT_ACCOUNT_METHOD, + null, bundle); + fail(); + } catch (IllegalArgumentException expected) { + } + + try { + Bundle bundle = new Bundle(); + bundle.putString(Settings.ACCOUNT_NAME, "a"); + bundle.putString(Settings.ACCOUNT_TYPE, "b"); + bundle.putString(Settings.DATA_SET, "c"); + mResolver.call(ContactsContract.AUTHORITY_URI, Settings.SET_DEFAULT_ACCOUNT_METHOD, + null, bundle); + fail(); + } catch (IllegalArgumentException expected) { + } + } + + public void testDefaultAccountSetAndQuery() { + Bundle response = mResolver.call(ContactsContract.AUTHORITY_URI, + Settings.QUERY_DEFAULT_ACCOUNT_METHOD, null, null); + Account account = response.getParcelable(Settings.KEY_DEFAULT_ACCOUNT); + assertNull(account); + + mActor.addPermissions("android.permission.SET_DEFAULT_ACCOUNT_FOR_CONTACTS"); + // Set (a, b) account as the default account. + Bundle bundle = new Bundle(); + bundle.putString(Settings.ACCOUNT_NAME, "a"); + bundle.putString(Settings.ACCOUNT_TYPE, "b"); + mResolver.call(ContactsContract.AUTHORITY_URI, Settings.SET_DEFAULT_ACCOUNT_METHOD, + null, bundle); + + response = mResolver.call(ContactsContract.AUTHORITY_URI, + Settings.QUERY_DEFAULT_ACCOUNT_METHOD, null, null); + account = response.getParcelable(Settings.KEY_DEFAULT_ACCOUNT); + assertEquals("a", account.name); + assertEquals("b", account.type); + + // Set NULL account as default account. + bundle = new Bundle(); + mResolver.call(ContactsContract.AUTHORITY_URI, Settings.SET_DEFAULT_ACCOUNT_METHOD, + null, bundle); + + response = mResolver.call(ContactsContract.AUTHORITY_URI, + Settings.QUERY_DEFAULT_ACCOUNT_METHOD, null, null); + account = response.getParcelable(Settings.KEY_DEFAULT_ACCOUNT); + assertNull(account); + } + public void testPinnedPositionsDemoteIllegalArguments() { try { mResolver.call(ContactsContract.AUTHORITY_URI, PinnedPositions.UNDEMOTE_METHOD, |