diff options
| author | Yasmin <yasmo@google.com> | 2019-04-10 15:28:20 +0100 |
|---|---|---|
| committer | Yasmin Molazadeh <yasmo@google.com> | 2019-05-03 15:17:56 +0000 |
| commit | 9437165cf6415d07d3933bb9638ec43fa55a565b (patch) | |
| tree | 2250d0ca95b1f4d9737844a407824a5914a4296f | |
| parent | 74359b568fba67f75f8c0050731624f4e187fccd (diff) | |
| download | platform_packages_providers_CalendarProvider-android10-dev.tar.gz platform_packages_providers_CalendarProvider-android10-dev.tar.bz2 platform_packages_providers_CalendarProvider-android10-dev.zip | |
Throw exception when work profile doesn't exist or disabled or calendar app is not whitelisted or setting for calendar integration is disabled.android-mainline-10.0.0_r9android-mainline-10.0.0_r4android-mainline-10.0.0_r10android-10.0.0_r9android-10.0.0_r8android-10.0.0_r7android-10.0.0_r45android-10.0.0_r44android-10.0.0_r43android-10.0.0_r42android-10.0.0_r41android-10.0.0_r40android-10.0.0_r39android-10.0.0_r38android-10.0.0_r37android-10.0.0_r36android-10.0.0_r35android-10.0.0_r34android-10.0.0_r33android-10.0.0_r32android-10.0.0_r31android-10.0.0_r30android-10.0.0_r14android-10.0.0_r13android-10.0.0_r12android10-qpr3-s1-releaseandroid10-qpr3-releaseandroid10-qpr2-s4-releaseandroid10-qpr2-s3-releaseandroid10-qpr2-s2-releaseandroid10-qpr2-s1-releaseandroid10-qpr2-releaseandroid10-qpr1-mainline-releaseandroid10-mainline-media-releaseandroid10-devandroid10-d4-s1-releaseandroid10-d4-releaseandroid10-c2f2-s2-releaseandroid10-c2f2-s1-releaseandroid10-c2f2-release
Test: atest ManagedProfileTest#testCrossProfileCalendar
atest CalendarProvider2Test
Bug: 130284827
Change-Id: I3f5d2794c801b7a379893962eb815e89cc7da6b4
| -rw-r--r-- | src/com/android/providers/calendar/CalendarProvider2.java | 10 | ||||
| -rw-r--r-- | tests/src/com/android/providers/calendar/CalendarProvider2Test.java | 17 |
2 files changed, 17 insertions, 10 deletions
diff --git a/src/com/android/providers/calendar/CalendarProvider2.java b/src/com/android/providers/calendar/CalendarProvider2.java index e6cf42b..4a6bd22 100644 --- a/src/com/android/providers/calendar/CalendarProvider2.java +++ b/src/com/android/providers/calendar/CalendarProvider2.java @@ -929,6 +929,12 @@ public class CalendarProvider2 extends SQLiteContentProvider implements OnAccoun : selection + " AND (" + SELECTION_PRIMARY_CALENDAR + ")"; } + /* + * Throw UnsupportedOperationException if + * <p>1. Work profile doesn't exits or disabled. + * <p>2. Calling package is not allowed to access cross profile calendar. + * <p>3. CROSS_PROFILE_CALENDAR_ENABLED is turned off in Settings. + */ private Cursor queryWorkProfileProvider(Uri localUri, String[] projection, String selection, String[] selectionArgs, String sortOrder, List<String> additionalPathSegments) { @@ -936,10 +942,10 @@ public class CalendarProvider2 extends SQLiteContentProvider implements OnAccoun // allowed columns. projection = mCrossProfileCalendarHelper.getCalibratedProjection( projection, localUri); - // Return empty cursor if cross profile calendar is currently not available. + // Throw exception if cross profile calendar is currently not available. final int workProfileUserId = getWorkProfileUserId(); if (!canAccessCrossProfileCalendar(workProfileUserId)) { - return createEmptyCursor(projection); + throw new UnsupportedOperationException("Can't access cross profile for " + localUri); } Uri remoteUri = maybeAddUserId( diff --git a/tests/src/com/android/providers/calendar/CalendarProvider2Test.java b/tests/src/com/android/providers/calendar/CalendarProvider2Test.java index f420622..e0a4edf 100644 --- a/tests/src/com/android/providers/calendar/CalendarProvider2Test.java +++ b/tests/src/com/android/providers/calendar/CalendarProvider2Test.java @@ -3600,14 +3600,15 @@ public class CalendarProvider2Test extends AndroidTestCase { // Assume cross profile uri access is not allowed by policy or disabled in settings. MockCrossProfileCalendarHelper.setPackageAllowedToAccessCalendar(false); - // Test empty cursor is returned if cross profile calendar is disabled in settings. - final Cursor cursor = mResolver.query( - Calendars.ENTERPRISE_CONTENT_URI, - new String[]{}, null, null, null); - assertTrue(cursor != null); - assertTrue(cursor.getCount() == 0); - cursor.close(); - + // Throw exception if cross profile calendar is disabled in settings. + try { + final Cursor cursor = mResolver.query( + Calendars.ENTERPRISE_CONTENT_URI, + new String[]{}, null, null, null); + fail("Unsupported operation exception should have been raised."); + } catch (UnsupportedOperationException e) { + // Exception expected. + } cleanupEnterpriseTestForCalendars(1); } |
