summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/src/com/android/providers/media/photopicker/sync/MediaSetsResetWorkerTest.java10
-rw-r--r--tests/src/com/android/providers/media/photopicker/sync/PickerSyncManagerTest.java18
-rw-r--r--tests/src/com/android/providers/media/photopicker/v2/sqlite/MediaInMediaSetsDatabaseUtilTest.java30
-rw-r--r--tests/src/com/android/providers/media/photopicker/v2/sqlite/MediaSetsDatabaseUtilsTest.java49
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() {