Merge "Fix CP2 unit tests" into nyc-dev
diff --git a/src/com/android/providers/contacts/ContactsProvider2.java b/src/com/android/providers/contacts/ContactsProvider2.java
index 871793e..5fd357c 100644
--- a/src/com/android/providers/contacts/ContactsProvider2.java
+++ b/src/com/android/providers/contacts/ContactsProvider2.java
@@ -5572,7 +5572,8 @@
// Make sure authority is CP2 not other providers
if (!ContactsContract.AUTHORITY.equals(localUri.getAuthority())) {
Log.w(TAG, "Invalid authority: " + localUri.getAuthority());
- return createEmptyCursor(localUri, projection);
+ throw new IllegalArgumentException(
+ "Authority " + localUri.getAuthority() + " is not a valid CP2 authority.");
}
final Uri remoteUri = maybeAddUserId(localUri, corpUserId);
Cursor cursor = getContext().getContentResolver().query(remoteUri, projection, selection,
diff --git a/src/com/android/providers/contacts/enterprise/EnterprisePolicyGuard.java b/src/com/android/providers/contacts/enterprise/EnterprisePolicyGuard.java
index 0e7907b..3a39e80 100644
--- a/src/com/android/providers/contacts/enterprise/EnterprisePolicyGuard.java
+++ b/src/com/android/providers/contacts/enterprise/EnterprisePolicyGuard.java
@@ -67,7 +67,6 @@
final boolean isCallerIdEnabled = !mDpm.getCrossProfileCallerIdDisabled(currentHandle);
final boolean isContactsSearchEnabled =
!mDpm.getCrossProfileContactsSearchDisabled(currentHandle);
- final boolean isCrossProfileDirectorySupported = isCrossProfileDirectorySupported(uri);
final String directory = uri.getQueryParameter(ContactsContract.DIRECTORY_PARAM_KEY);
if (VERBOSE_LOGGING) {
diff --git a/src/com/android/providers/contacts/util/UserUtils.java b/src/com/android/providers/contacts/util/UserUtils.java
index 891990e..3edbb45 100644
--- a/src/com/android/providers/contacts/util/UserUtils.java
+++ b/src/com/android/providers/contacts/util/UserUtils.java
@@ -46,17 +46,6 @@
/**
* @param context Context
- * @return {@link UserHandle} of the corp user that is linked to the current user,
- * if any. If there's no such user or cross-user contacts access is
- * disallowed by policy, returns null.
- */
- public static UserHandle getCorpUserHandle(Context context) {
- final UserInfo ui = getCorpUserInfo(context);
- return ui == null ? null : ui.getUserHandle();
- }
-
- /**
- * @param context Context
* @return {@link UserInfo} of the corp user that is linked to the current user,
* if any. If there's no such user or cross-user contacts access is
* disallowed by policy, returns null.
diff --git a/tests/src/com/android/providers/contacts/ContactsProvider2Test.java b/tests/src/com/android/providers/contacts/ContactsProvider2Test.java
index b0c3ef4..e6b8b86 100644
--- a/tests/src/com/android/providers/contacts/ContactsProvider2Test.java
+++ b/tests/src/com/android/providers/contacts/ContactsProvider2Test.java
@@ -2708,16 +2708,40 @@
// No corp user. Primary only.
assertEquals(-1, UserUtils.getCorpUserId(mActor.getProviderContext()));
- assertNull(provider.queryCorpContactsProvider(enterpriseUri, null, null, null,
- null, null));
+ assertEquals(0, provider.queryCorpContactsProvider(enterpriseUri, null, null, null,
+ null, null).getCount());
final SynchronousContactsProvider2 corpCp2 = setUpCorpProvider();
+ // Insert a contact to the corp CP2
+ long rawContactId = ContentUris.parseId(
+ corpCp2.insert(RawContacts.CONTENT_URI, new ContentValues()));
+ // Insert a name
+ ContentValues cv = cv(
+ Data.RAW_CONTACT_ID, rawContactId,
+ Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE,
+ StructuredName.DISPLAY_NAME, "Contact2 Corp",
+ StructuredName.GIVEN_NAME, "Contact2",
+ StructuredName.FAMILY_NAME, "Corp");
+ corpCp2.insert(ContactsContract.Data.CONTENT_URI, cv);
+ // Insert a number
+ cv = cv(
+ Data.RAW_CONTACT_ID, rawContactId,
+ Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE,
+ Phone.NUMBER, "408-222-2222",
+ Phone.TYPE, Phone.TYPE_HOME);
+ corpCp2.insert(ContactsContract.Data.CONTENT_URI, cv);
// Primary + corp
um.setUsers(MockUserManager.PRIMARY_USER, MockUserManager.CORP_USER);
- assertNotNull(provider.queryCorpContactsProvider(enterpriseUri, null, null, null,
- null, null));
- assertNull(provider.queryCorpContactsProvider(invalidAuthorityUri, null, null,
- null, null, null));
+ // It returns 2 identical rows, probably because of the join in phone_lookup.
+ assertEquals(2, provider.queryCorpContactsProvider(enterpriseUri, null, null, null,
+ null, null).getCount());
+ try {
+ provider.queryCorpContactsProvider(invalidAuthorityUri, null, null,
+ null, null, null);
+ fail(invalidAuthorityUri.toString() + " should throw IllegalArgumentException");
+ } catch (IllegalArgumentException e) {
+ // Expected
+ }
}
/**
diff --git a/tests/src/com/android/providers/contacts/util/UserUtilsTest.java b/tests/src/com/android/providers/contacts/util/UserUtilsTest.java
index 7193637..611ad3f 100644
--- a/tests/src/com/android/providers/contacts/util/UserUtilsTest.java
+++ b/tests/src/com/android/providers/contacts/util/UserUtilsTest.java
@@ -48,18 +48,15 @@
// No corp user. Primary only.
assertEquals(-1, UserUtils.getCorpUserId(c));
- assertNull(UserUtils.getCorpUserHandle(c));
// Primary + corp
um.setUsers(MockUserManager.PRIMARY_USER, MockUserManager.CORP_USER);
um.myUser = MockUserManager.PRIMARY_USER.id;
assertEquals(MockUserManager.CORP_USER.id, UserUtils.getCorpUserId(c));
- assertNotNull(UserUtils.getCorpUserHandle(c));
um.myUser = MockUserManager.CORP_USER.id;
assertEquals(-1, UserUtils.getCorpUserId(c));
- assertNull(UserUtils.getCorpUserHandle(c));
// Primary + secondary + corp
um.setUsers(MockUserManager.PRIMARY_USER, MockUserManager.SECONDARY_USER,
@@ -67,25 +64,20 @@
um.myUser = MockUserManager.PRIMARY_USER.id;
assertEquals(MockUserManager.CORP_USER.id, UserUtils.getCorpUserId(c));
- assertNotNull(UserUtils.getCorpUserHandle(c));
um.myUser = MockUserManager.CORP_USER.id;
assertEquals(-1, UserUtils.getCorpUserId(c));
- assertNull(UserUtils.getCorpUserHandle(c));
um.myUser = MockUserManager.SECONDARY_USER.id;
assertEquals(-1, UserUtils.getCorpUserId(c));
- assertNull(UserUtils.getCorpUserHandle(c));
// Primary + secondary
um.setUsers(MockUserManager.PRIMARY_USER, MockUserManager.SECONDARY_USER);
um.myUser = MockUserManager.PRIMARY_USER.id;
assertEquals(-1, UserUtils.getCorpUserId(c));
- assertNull(UserUtils.getCorpUserHandle(c));
um.myUser = MockUserManager.SECONDARY_USER.id;
assertEquals(-1, UserUtils.getCorpUserId(c));
- assertNull(UserUtils.getCorpUserHandle(c));
}
}