diff options
Diffstat (limited to 'tests')
4 files changed, 102 insertions, 5 deletions
diff --git a/tests/src/com/android/providers/media/photopicker/sync/MediaSetsResetWorkerTest.java b/tests/src/com/android/providers/media/photopicker/sync/MediaSetsResetWorkerTest.java index 3f7b2d262..c318151d5 100644 --- a/tests/src/com/android/providers/media/photopicker/sync/MediaSetsResetWorkerTest.java +++ b/tests/src/com/android/providers/media/photopicker/sync/MediaSetsResetWorkerTest.java @@ -17,6 +17,10 @@ package com.android.providers.media.photopicker.sync; import static com.android.providers.media.photopicker.PickerSyncController.LOCAL_PICKER_PROVIDER_AUTHORITY; +import static com.android.providers.media.photopicker.sync.PickerSyncManager.SYNC_CLOUD_ONLY; +import static com.android.providers.media.photopicker.sync.PickerSyncManager.SYNC_WORKER_INPUT_AUTHORITY; +import static com.android.providers.media.photopicker.sync.PickerSyncManager.SYNC_WORKER_INPUT_CATEGORY_ID; +import static com.android.providers.media.photopicker.sync.PickerSyncManager.SYNC_WORKER_INPUT_SYNC_SOURCE; import static com.android.providers.media.photopicker.sync.SyncWorkerTestUtils.initializeTestWorkManager; import static com.android.providers.media.photopicker.util.PickerDbTestUtils.CLOUD_ID_1; import static com.android.providers.media.photopicker.util.PickerDbTestUtils.CLOUD_ID_2; @@ -43,6 +47,7 @@ import android.database.sqlite.SQLiteDatabase; import android.provider.CloudMediaProviderContract; import androidx.test.platform.app.InstrumentationRegistry; +import androidx.work.Data; import androidx.work.OneTimeWorkRequest; import androidx.work.WorkInfo; import androidx.work.WorkManager; @@ -65,6 +70,7 @@ import org.mockito.Mock; import java.io.File; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.concurrent.ExecutionException; public class MediaSetsResetWorkerTest { @@ -147,6 +153,10 @@ public class MediaSetsResetWorkerTest { // Setup final OneTimeWorkRequest request = new OneTimeWorkRequest.Builder(MediaSetsResetWorker.class) + .setInputData(new Data(Map.of( + SYNC_WORKER_INPUT_SYNC_SOURCE, SYNC_CLOUD_ONLY, + SYNC_WORKER_INPUT_CATEGORY_ID, mCategoryId, + SYNC_WORKER_INPUT_AUTHORITY, mAuthority))) .build(); final WorkManager workManager = WorkManager.getInstance(mContext); diff --git a/tests/src/com/android/providers/media/photopicker/sync/PickerSyncManagerTest.java b/tests/src/com/android/providers/media/photopicker/sync/PickerSyncManagerTest.java index 60e43e934..59473d7e1 100644 --- a/tests/src/com/android/providers/media/photopicker/sync/PickerSyncManagerTest.java +++ b/tests/src/com/android/providers/media/photopicker/sync/PickerSyncManagerTest.java @@ -800,6 +800,15 @@ public class PickerSyncManagerTest { assertThat(resetRequest.getWorkSpec().isPeriodic()).isFalse(); assertThat(resetRequest.getWorkSpec().id).isNotNull(); assertThat(resetRequest.getWorkSpec().constraints.requiresBatteryNotLow()).isFalse(); + assertThat(resetRequest.getWorkSpec().input + .getInt(SYNC_WORKER_INPUT_SYNC_SOURCE, -1)) + .isEqualTo(SYNC_LOCAL_ONLY); + assertThat(resetRequest.getWorkSpec().input + .getString(SYNC_WORKER_INPUT_CATEGORY_ID)) + .isEqualTo(categoryId); + assertThat(resetRequest.getWorkSpec().input + .getString(SYNC_WORKER_INPUT_AUTHORITY)) + .isEqualTo(SearchProvider.AUTHORITY); WorkRequest syncRequest = workRequestList.get(1).get(0); assertThat(syncRequest.getWorkSpec().workerClassName) @@ -860,6 +869,15 @@ public class PickerSyncManagerTest { assertThat(resetRequest.getWorkSpec().isPeriodic()).isFalse(); assertThat(resetRequest.getWorkSpec().id).isNotNull(); assertThat(resetRequest.getWorkSpec().constraints.requiresBatteryNotLow()).isFalse(); + assertThat(resetRequest.getWorkSpec().input + .getInt(SYNC_WORKER_INPUT_SYNC_SOURCE, -1)) + .isEqualTo(SYNC_CLOUD_ONLY); + assertThat(resetRequest.getWorkSpec().input + .getString(SYNC_WORKER_INPUT_CATEGORY_ID)) + .isEqualTo(categoryId); + assertThat(resetRequest.getWorkSpec().input + .getString(SYNC_WORKER_INPUT_AUTHORITY)) + .isEqualTo(SearchProvider.AUTHORITY); WorkRequest syncRequest = workRequestList.get(1).get(0); assertThat(syncRequest.getWorkSpec().workerClassName) diff --git a/tests/src/com/android/providers/media/photopicker/v2/sqlite/MediaInMediaSetsDatabaseUtilTest.java b/tests/src/com/android/providers/media/photopicker/v2/sqlite/MediaInMediaSetsDatabaseUtilTest.java index cbf7baa36..bdb7944d3 100644 --- a/tests/src/com/android/providers/media/photopicker/v2/sqlite/MediaInMediaSetsDatabaseUtilTest.java +++ b/tests/src/com/android/providers/media/photopicker/v2/sqlite/MediaInMediaSetsDatabaseUtilTest.java @@ -620,6 +620,7 @@ public class MediaInMediaSetsDatabaseUtilTest { assertAddMediaOperation(mFacade, CLOUD_PROVIDER, cursor3, 1); Long mediaSetPickerId = 1L; + Long secondMediaSetPickerId = 2L; final long cloudRowsInsertedCount = MediaInMediaSetsDatabaseUtil.cacheMediaOfMediaSet( mDatabase, List.of( @@ -632,10 +633,22 @@ public class MediaInMediaSetsDatabaseUtilTest { .that(cloudRowsInsertedCount) .isEqualTo(3); + final long secondCloudRowsInsertedCount = MediaInMediaSetsDatabaseUtil.cacheMediaOfMediaSet( + mDatabase, List.of( + getContentValues(null, CLOUD_ID_3, secondMediaSetPickerId), + getContentValues(LOCAL_ID_2, CLOUD_ID_2, secondMediaSetPickerId), + getContentValues(LOCAL_ID_1, CLOUD_ID_1, secondMediaSetPickerId) + ), CLOUD_PROVIDER); + + assertWithMessage("Unexpected number of rows inserted in the search results table") + .that(secondCloudRowsInsertedCount) + .isEqualTo(3); + // Clear the data - MediaInMediaSetsDatabaseUtil.clearMediaInMediaSetsCache(mDatabase); + MediaInMediaSetsDatabaseUtil.clearMediaInMediaSetsCache( + mDatabase, List.of(mediaSetPickerId.toString())); - // Retrieved cursor should be empty + // Retrieved cursor for mediaSetPickerId should be empty Bundle extras = new Bundle(); extras.putInt("page_size", 100); extras.putStringArrayList("providers", @@ -648,6 +661,19 @@ public class MediaInMediaSetsDatabaseUtilTest { assertNotNull(mediaCursor); assertEquals(/*expected*/0, /*actual*/ mediaCursor.getCount()); + // Retrieved cursor for secondmediaSetPickerId should be non-empty + Bundle secondExtras = new Bundle(); + secondExtras.putInt("page_size", 100); + secondExtras.putStringArrayList("providers", + new ArrayList<>(Arrays.asList(LOCAL_PROVIDER, CLOUD_PROVIDER))); + secondExtras.putString("intent_action", MediaStore.ACTION_PICK_IMAGES); + MediaInMediaSetsQuery secondMediaInMediaSetQuery = new MediaInMediaSetsQuery( + secondExtras, secondMediaSetPickerId); + Cursor secondMediaCursor = MediaInMediaSetsDatabaseUtil.queryMediaInMediaSet( + mMockSyncController, secondMediaInMediaSetQuery, LOCAL_PROVIDER, CLOUD_PROVIDER); + assertNotNull(secondMediaCursor); + assertEquals(/*expected*/3, /*actual*/ secondMediaCursor.getCount()); + } private ContentValues getContentValues( diff --git a/tests/src/com/android/providers/media/photopicker/v2/sqlite/MediaSetsDatabaseUtilsTest.java b/tests/src/com/android/providers/media/photopicker/v2/sqlite/MediaSetsDatabaseUtilsTest.java index 336bccc4a..432f76a32 100644 --- a/tests/src/com/android/providers/media/photopicker/v2/sqlite/MediaSetsDatabaseUtilsTest.java +++ b/tests/src/com/android/providers/media/photopicker/v2/sqlite/MediaSetsDatabaseUtilsTest.java @@ -238,7 +238,26 @@ public class MediaSetsDatabaseUtilsTest { } @Test - public void testClearMediaSetsCache() throws RequestObsoleteException { + public void testGetMediaSetPickerIdsForCategoryId() { + Cursor c = getCursorForMediaSetInsertionTest(); + List<String> mimeTypes = new ArrayList<>(); + mimeTypes.add(mMimeType); + + long mediaSetsInserted = MediaSetsDatabaseUtil.cacheMediaSets( + mDatabase, c, mCategoryId, mAuthority, mimeTypes); + // Assert successful insertion + assertEquals("Count of inserted media sets should be equal to the cursor size", + /*expected*/ c.getCount(), /*actual*/ mediaSetsInserted); + + List<String> mediaSetPickerIds = MediaSetsDatabaseUtil + .getMediaSetPickerIdsForGivenCategoryId(mDatabase, mCategoryId, mAuthority); + // Assert that the list has some sqlite generated ids + assertNotNull(mediaSetPickerIds); + assertTrue(!mediaSetPickerIds.isEmpty()); + } + + @Test + public void testClearMediaSetsCache() { // Insert metadata into the table Cursor c = getCursorForMediaSetInsertionTest(); List<String> mimeTypes = new ArrayList<>(); @@ -249,10 +268,17 @@ public class MediaSetsDatabaseUtilsTest { assertEquals("Count of inserted media sets should be equal to the cursor size", /*expected*/ c.getCount(), /*actual*/ mediaSetsInserted); + String secondCategoryId = "secCategoryId"; + int mediaSetsInserted2 = MediaSetsDatabaseUtil.cacheMediaSets( + mDatabase, c, secondCategoryId, mAuthority, mimeTypes); + assertEquals("Count of inserted media sets should be equal to the cursor size", + /*expected*/ c.getCount(), /*actual*/ mediaSetsInserted2); + + // Delete the inserted items - MediaSetsDatabaseUtil.clearMediaSetsCache(mDatabase); + MediaSetsDatabaseUtil.clearMediaSetsCache(mDatabase, mCategoryId, mAuthority); - // Retrieved cursor should be empty + // Retrieved cursor should be empty for mCategoryId Bundle extras = new Bundle(); extras.putString(MediaSetsSyncRequestParams.KEY_PARENT_CATEGORY_AUTHORITY, mAuthority); extras.putString(MediaSetsSyncRequestParams.KEY_PARENT_CATEGORY_ID, mCategoryId); @@ -265,6 +291,23 @@ public class MediaSetsDatabaseUtilsTest { mDatabase, requestParams); assertNotNull(mediaSetCursor); assertEquals(/*expected*/ 0, /*actual*/ mediaSetCursor.getCount()); + + // Retrieved cursor should not be empty for secondCategoryId since only the media sets for + // mCategoryId have been deleted in the previous call + Bundle secondExtras = new Bundle(); + secondExtras.putString( + MediaSetsSyncRequestParams.KEY_PARENT_CATEGORY_AUTHORITY, mAuthority); + secondExtras.putString(MediaSetsSyncRequestParams.KEY_PARENT_CATEGORY_ID, secondCategoryId); + secondExtras.putStringArrayList( + MediaSetsSyncRequestParams.KEY_MIME_TYPES, + new ArrayList<String>(mimeTypes)); + MediaSetsSyncRequestParams secondRequestParams = + new MediaSetsSyncRequestParams(secondExtras); + + Cursor secondMediaSetCursor = MediaSetsDatabaseUtil.getMediaSetsForCategory( + mDatabase, secondRequestParams); + assertNotNull(secondMediaSetCursor); + assertEquals(/*expected*/ 1, /*actual*/ secondMediaSetCursor.getCount()); } private Cursor getCursorForMediaSetInsertionTest() { |