summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2022-05-25 15:13:39 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2022-05-25 15:13:39 +0000
commit07db87c24be61bb635458916cc4738c2e9a7e250 (patch)
treee443a946d27cd0738343b94a103a3cf00a29066d
parentb2bbef92e42dc83fefc98f88b27c7429859f79e0 (diff)
parentc10d39d47152a8feec9ddd2754bf0bd78de42fcb (diff)
downloadcts-android12-mainline-mediaprovider-release.tar.gz
Merge cherrypicks of [17950696] into sparse-8561228-L61200000954771861.android-mainline-12.0.0_r121aml_mpr_311911090android12-mainline-mediaprovider-release
Change-Id: Iffb2c16d8e904f55b127497c97aa399ac63d3d15
-rw-r--r--tests/PhotoPicker/src/android/photopicker/cts/PhotoPickerBaseTest.java4
-rw-r--r--tests/PhotoPicker/src/android/photopicker/cts/PhotoPickerPickImagesIntentTest.java138
-rw-r--r--tests/PhotoPicker/src/android/photopicker/cts/PhotoPickerTest.java304
-rw-r--r--tests/PhotoPicker/src/android/photopicker/cts/util/PhotoPickerUiUtils.java6
4 files changed, 147 insertions, 305 deletions
diff --git a/tests/PhotoPicker/src/android/photopicker/cts/PhotoPickerBaseTest.java b/tests/PhotoPicker/src/android/photopicker/cts/PhotoPickerBaseTest.java
index deba5f14226..79d4b2bebb5 100644
--- a/tests/PhotoPicker/src/android/photopicker/cts/PhotoPickerBaseTest.java
+++ b/tests/PhotoPicker/src/android/photopicker/cts/PhotoPickerBaseTest.java
@@ -16,13 +16,17 @@
package android.photopicker.cts;
+import android.Manifest;
import android.app.Instrumentation;
import android.content.Context;
import android.content.Intent;
+import android.provider.DeviceConfig;
import androidx.test.InstrumentationRegistry;
import androidx.test.uiautomator.UiDevice;
+import com.android.modules.utils.build.SdkLevel;
+
import org.junit.Before;
/**
diff --git a/tests/PhotoPicker/src/android/photopicker/cts/PhotoPickerPickImagesIntentTest.java b/tests/PhotoPicker/src/android/photopicker/cts/PhotoPickerPickImagesIntentTest.java
deleted file mode 100644
index 802acd5e93a..00000000000
--- a/tests/PhotoPicker/src/android/photopicker/cts/PhotoPickerPickImagesIntentTest.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.photopicker.cts;
-
-import static android.photopicker.cts.util.PhotoPickerAssertionsUtils.assertPersistedGrant;
-import static android.photopicker.cts.util.PhotoPickerAssertionsUtils.assertPickerUriFormat;
-import static android.photopicker.cts.util.PhotoPickerAssertionsUtils.assertRedactedReadOnlyAccess;
-import static android.photopicker.cts.util.PhotoPickerFilesUtils.createImages;
-import static android.photopicker.cts.util.PhotoPickerFilesUtils.deleteMedia;
-import static android.photopicker.cts.util.PhotoPickerUiUtils.SHORT_TIMEOUT;
-import static android.photopicker.cts.util.PhotoPickerUiUtils.clickAndWait;
-import static android.photopicker.cts.util.PhotoPickerUiUtils.findAddButton;
-import static android.photopicker.cts.util.PhotoPickerUiUtils.findItemList;
-
-import static com.google.common.truth.Truth.assertThat;
-import static com.google.common.truth.Truth.assertWithMessage;
-
-import android.app.Activity;
-import android.content.ClipData;
-import android.content.Intent;
-import android.net.Uri;
-import android.provider.MediaStore;
-
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-import androidx.test.uiautomator.UiObject;
-import androidx.test.uiautomator.UiSelector;
-
-import org.junit.After;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Photo Picker tests for {@link MediaStore#ACTION_PICK_IMAGES} intent exclusively
- */
-@RunWith(AndroidJUnit4.class)
-public class PhotoPickerPickImagesIntentTest extends PhotoPickerBaseTest {
-
- private List<Uri> mUriList = new ArrayList<>();
-
- @After
- public void tearDown() throws Exception {
- for (Uri uri : mUriList) {
- deleteMedia(uri, mContext);
- }
- mUriList.clear();
-
- if (mActivity != null) {
- mActivity.finish();
- }
- }
-
- @Test
- public void testMultiSelect_invalidParam() throws Exception {
- final Intent intent = new Intent(MediaStore.ACTION_PICK_IMAGES);
- intent.putExtra(MediaStore.EXTRA_PICK_IMAGES_MAX, MediaStore.getPickImagesMaxLimit() + 1);
- mActivity.startActivityForResult(intent, REQUEST_CODE);
- final GetResultActivity.Result res = mActivity.getResult();
- assertThat(res.resultCode).isEqualTo(Activity.RESULT_CANCELED);
- }
-
- @Test
- public void testMultiSelect_invalidNegativeParam() throws Exception {
- final Intent intent = new Intent(MediaStore.ACTION_PICK_IMAGES);
- intent.putExtra(MediaStore.EXTRA_PICK_IMAGES_MAX, -1);
- mActivity.startActivityForResult(intent, REQUEST_CODE);
- final GetResultActivity.Result res = mActivity.getResult();
- assertThat(res.resultCode).isEqualTo(Activity.RESULT_CANCELED);
- }
-
- @Test
- public void testMultiSelect_returnsNotMoreThanMax() throws Exception {
- final int maxCount = 2;
- final int imageCount = maxCount + 1;
- createImages(imageCount, mContext.getUserId(), mUriList);
- final Intent intent = new Intent(MediaStore.ACTION_PICK_IMAGES);
- intent.putExtra(MediaStore.EXTRA_PICK_IMAGES_MAX, maxCount);
- mActivity.startActivityForResult(intent, REQUEST_CODE);
-
- final List<UiObject> itemList = findItemList(imageCount);
- final int itemCount = itemList.size();
- assertThat(itemCount).isEqualTo(imageCount);
- // Select maxCount + 1 item
- for (int i = 0; i < itemCount; i++) {
- clickAndWait(mDevice, itemList.get(i));
- }
-
- UiObject snackbarTextView = mDevice.findObject(new UiSelector().text(
- "Select up to 2 items"));
- assertWithMessage("Timed out while waiting for snackbar to appear").that(
- snackbarTextView.waitForExists(SHORT_TIMEOUT)).isTrue();
-
- assertWithMessage("Timed out waiting for snackbar to disappear").that(
- snackbarTextView.waitUntilGone(SHORT_TIMEOUT)).isTrue();
-
- clickAndWait(mDevice, findAddButton());
-
- final ClipData clipData = mActivity.getResult().data.getClipData();
- final int count = clipData.getItemCount();
- assertThat(count).isEqualTo(maxCount);
- }
-
- @Test
- public void testDoesNotRespectExtraAllowMultiple() throws Exception {
- final int imageCount = 2;
- createImages(imageCount, mContext.getUserId(), mUriList);
- final Intent intent = new Intent(MediaStore.ACTION_PICK_IMAGES);
- intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
- mActivity.startActivityForResult(intent, REQUEST_CODE);
-
- final List<UiObject> itemList = findItemList(imageCount);
- final int itemCount = itemList.size();
- assertThat(itemCount).isEqualTo(imageCount);
- // Select 1 item
- clickAndWait(mDevice, itemList.get(0));
-
- final Uri uri = mActivity.getResult().data.getData();
- assertPickerUriFormat(uri, mContext.getUserId());
- assertPersistedGrant(uri, mContext.getContentResolver());
- assertRedactedReadOnlyAccess(uri);
- }
-}
diff --git a/tests/PhotoPicker/src/android/photopicker/cts/PhotoPickerTest.java b/tests/PhotoPicker/src/android/photopicker/cts/PhotoPickerTest.java
index 47ade548718..92c96a6cadb 100644
--- a/tests/PhotoPicker/src/android/photopicker/cts/PhotoPickerTest.java
+++ b/tests/PhotoPicker/src/android/photopicker/cts/PhotoPickerTest.java
@@ -26,7 +26,6 @@ import static android.photopicker.cts.util.PhotoPickerFilesUtils.createVideos;
import static android.photopicker.cts.util.PhotoPickerFilesUtils.deleteMedia;
import static android.photopicker.cts.util.PhotoPickerUiUtils.REGEX_PACKAGE_NAME;
import static android.photopicker.cts.util.PhotoPickerUiUtils.SHORT_TIMEOUT;
-import static android.photopicker.cts.util.PhotoPickerUiUtils.clickAndWait;
import static android.photopicker.cts.util.PhotoPickerUiUtils.findAddButton;
import static android.photopicker.cts.util.PhotoPickerUiUtils.findItemList;
import static android.photopicker.cts.util.PhotoPickerUiUtils.findPreviewAddButton;
@@ -35,56 +34,32 @@ import static android.photopicker.cts.util.PhotoPickerUiUtils.findPreviewAddOrSe
import static com.google.common.truth.Truth.assertThat;
import static com.google.common.truth.Truth.assertWithMessage;
+import android.app.Activity;
import android.content.ClipData;
import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
import android.net.Uri;
import android.provider.MediaStore;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.runner.AndroidJUnit4;
import androidx.test.uiautomator.UiObject;
import androidx.test.uiautomator.UiObjectNotFoundException;
import androidx.test.uiautomator.UiSelector;
import org.junit.After;
-import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-import org.junit.runners.Parameterized.Parameter;
-import org.junit.runners.Parameterized.Parameters;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.List;
/**
* Photo Picker Device only tests for common flows.
*/
-@RunWith(Parameterized.class)
+@RunWith(AndroidJUnit4.class)
public class PhotoPickerTest extends PhotoPickerBaseTest {
-
- @Parameter(0)
- public String mAction;
-
- @Parameters
- public static Iterable<? extends Object> data() {
- return PhotoPickerTest.getTestParameters();
- }
-
private List<Uri> mUriList = new ArrayList<>();
- @Before
- public void setUp() throws Exception {
- super.setUp();
-
- if (mAction.equals(Intent.ACTION_GET_CONTENT)) {
- clearDocumentsUiPackageData();
- }
- }
-
@After
public void tearDown() throws Exception {
for (Uri uri : mUriList) {
@@ -102,11 +77,11 @@ public class PhotoPickerTest extends PhotoPickerBaseTest {
final int itemCount = 1;
createImages(itemCount, mContext.getUserId(), mUriList);
- final Intent intent = new Intent(mAction);
- launchPhotoPickerForIntent(intent);
+ final Intent intent = new Intent(MediaStore.ACTION_PICK_IMAGES);
+ mActivity.startActivityForResult(intent, REQUEST_CODE);
final UiObject item = findItemList(itemCount).get(0);
- clickAndWait(mDevice, item);
+ clickAndWait(item);
final Uri uri = mActivity.getResult().data.getData();
assertPickerUriFormat(uri, mContext.getUserId());
@@ -119,16 +94,17 @@ public class PhotoPickerTest extends PhotoPickerBaseTest {
final int itemCount = 1;
createImages(itemCount, mContext.getUserId(), mUriList, true);
- final Intent intent = new Intent(mAction);
- launchPhotoPickerForIntent(intent);
+ final Intent intent = new Intent(MediaStore.ACTION_PICK_IMAGES);
+ mActivity.startActivityForResult(intent, REQUEST_CODE);
- UiObject albumsTab = mDevice.findObject(new UiSelector().text("Albums"));
- clickAndWait(mDevice, albumsTab);
+ UiObject albumsTab = mDevice.findObject(new UiSelector().text(
+ "Albums"));
+ clickAndWait(albumsTab);
final UiObject album = findItemList(1).get(0);
- clickAndWait(mDevice, album);
+ clickAndWait(album);
final UiObject item = findItemList(itemCount).get(0);
- clickAndWait(mDevice, item);
+ clickAndWait(item);
final Uri uri = mActivity.getResult().data.getData();
assertPickerUriFormat(uri, mContext.getUserId());
@@ -140,27 +116,27 @@ public class PhotoPickerTest extends PhotoPickerBaseTest {
final int videoCount = 2;
createVideos(videoCount, mContext.getUserId(), mUriList);
- Intent intent = new Intent(mAction);
+ final Intent intent = new Intent(MediaStore.ACTION_PICK_IMAGES);
intent.setType("video/*");
- intent = addMultipleSelectionFlag(intent);
- launchPhotoPickerForIntent(intent);
+ intent.putExtra(MediaStore.EXTRA_PICK_IMAGES_MAX, MediaStore.getPickImagesMaxLimit());
+ mActivity.startActivityForResult(intent, REQUEST_CODE);
UiObject albumsTab = mDevice.findObject(new UiSelector().text(
"Albums"));
- clickAndWait(mDevice, albumsTab);
+ clickAndWait(albumsTab);
final UiObject album = findItemList(1).get(0);
- clickAndWait(mDevice, album);
+ clickAndWait(album);
final List<UiObject> itemList = findItemList(videoCount);
final int itemCount = itemList.size();
assertThat(itemCount).isEqualTo(videoCount);
- for (UiObject uiObject : itemList) {
- clickAndWait(mDevice, uiObject);
+ for (int i = 0; i < itemCount; i++) {
+ clickAndWait(itemList.get(i));
}
- clickAndWait(mDevice, findViewSelectedButton());
+ clickAndWait(findViewSelectedButton());
// Wait for playback to start. This is needed in some devices where playback
// buffering -> ready state takes around 10s.
@@ -173,8 +149,8 @@ public class PhotoPickerTest extends PhotoPickerBaseTest {
final int itemCount = 1;
createImages(itemCount, mContext.getUserId(), mUriList);
- final Intent intent = new Intent(mAction);
- launchPhotoPickerForIntent(intent);
+ final Intent intent = new Intent(MediaStore.ACTION_PICK_IMAGES);
+ mActivity.startActivityForResult(intent, REQUEST_CODE);
final UiObject item = findItemList(itemCount).get(0);
item.longClick();
@@ -182,7 +158,7 @@ public class PhotoPickerTest extends PhotoPickerBaseTest {
final UiObject addButton = findPreviewAddOrSelectButton();
assertThat(addButton.waitForExists(1000)).isTrue();
- clickAndWait(mDevice, addButton);
+ clickAndWait(addButton);
final Uri uri = mActivity.getResult().data.getData();
assertPickerUriFormat(uri, mContext.getUserId());
@@ -190,22 +166,91 @@ public class PhotoPickerTest extends PhotoPickerBaseTest {
}
@Test
+ public void testMultiSelect_invalidParam() throws Exception {
+ final Intent intent = new Intent(MediaStore.ACTION_PICK_IMAGES);
+ intent.putExtra(MediaStore.EXTRA_PICK_IMAGES_MAX, MediaStore.getPickImagesMaxLimit() + 1);
+ mActivity.startActivityForResult(intent, REQUEST_CODE);
+ final GetResultActivity.Result res = mActivity.getResult();
+ assertThat(res.resultCode).isEqualTo(Activity.RESULT_CANCELED);
+ }
+
+ @Test
+ public void testMultiSelect_invalidNegativeParam() throws Exception {
+ final Intent intent = new Intent(MediaStore.ACTION_PICK_IMAGES);
+ intent.putExtra(MediaStore.EXTRA_PICK_IMAGES_MAX, -1);
+ mActivity.startActivityForResult(intent, REQUEST_CODE);
+ final GetResultActivity.Result res = mActivity.getResult();
+ assertThat(res.resultCode).isEqualTo(Activity.RESULT_CANCELED);
+ }
+
+ @Test
+ public void testMultiSelect_returnsNotMoreThanMax() throws Exception {
+ final int maxCount = 2;
+ final int imageCount = maxCount + 1;
+ createImages(imageCount, mContext.getUserId(), mUriList);
+ final Intent intent = new Intent(MediaStore.ACTION_PICK_IMAGES);
+ intent.putExtra(MediaStore.EXTRA_PICK_IMAGES_MAX, maxCount);
+ mActivity.startActivityForResult(intent, REQUEST_CODE);
+
+ final List<UiObject> itemList = findItemList(imageCount);
+ final int itemCount = itemList.size();
+ assertThat(itemCount).isEqualTo(imageCount);
+ // Select maxCount + 1 item
+ for (int i = 0; i < itemCount; i++) {
+ clickAndWait(itemList.get(i));
+ }
+
+ UiObject snackbarTextView = mDevice.findObject(new UiSelector().text(
+ "Select up to 2 items"));
+ assertWithMessage("Timed out while waiting for snackbar to appear").that(
+ snackbarTextView.waitForExists(SHORT_TIMEOUT)).isTrue();
+
+ assertWithMessage("Timed out waiting for snackbar to disappear").that(
+ snackbarTextView.waitUntilGone(SHORT_TIMEOUT)).isTrue();
+
+ clickAndWait(findAddButton());
+
+ final ClipData clipData = mActivity.getResult().data.getClipData();
+ final int count = clipData.getItemCount();
+ assertThat(count).isEqualTo(maxCount);
+ }
+
+ @Test
+ public void testDoesNotRespectExtraAllowMultiple() throws Exception {
+ final int imageCount = 2;
+ createImages(imageCount, mContext.getUserId(), mUriList);
+ final Intent intent = new Intent(MediaStore.ACTION_PICK_IMAGES);
+ intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
+ mActivity.startActivityForResult(intent, REQUEST_CODE);
+
+ final List<UiObject> itemList = findItemList(imageCount);
+ final int itemCount = itemList.size();
+ assertThat(itemCount).isEqualTo(imageCount);
+ // Select 1 item
+ clickAndWait(itemList.get(0));
+
+ final Uri uri = mActivity.getResult().data.getData();
+ assertPickerUriFormat(uri, mContext.getUserId());
+ assertPersistedGrant(uri, mContext.getContentResolver());
+ assertRedactedReadOnlyAccess(uri);
+ }
+
+ @Test
public void testMultiSelect() throws Exception {
final int imageCount = 4;
createImages(imageCount, mContext.getUserId(), mUriList);
-
- Intent intent = new Intent(mAction);
- intent = addMultipleSelectionFlag(intent);
- launchPhotoPickerForIntent(intent);
+ final Intent intent = new Intent(MediaStore.ACTION_PICK_IMAGES);
+ intent.putExtra(MediaStore.EXTRA_PICK_IMAGES_MAX, MediaStore.getPickImagesMaxLimit());
+ mActivity.startActivityForResult(intent, REQUEST_CODE);
final List<UiObject> itemList = findItemList(imageCount);
final int itemCount = itemList.size();
assertThat(itemCount).isEqualTo(imageCount);
- for (UiObject uiObject : itemList) {
- clickAndWait(mDevice, uiObject);
+ for (int i = 0; i < itemCount; i++) {
+ clickAndWait(itemList.get(i));
}
- clickAndWait(mDevice, findAddButton());
+ clickAndWait(findAddButton());
final ClipData clipData = mActivity.getResult().data.getClipData();
final int count = clipData.getItemCount();
@@ -222,18 +267,17 @@ public class PhotoPickerTest extends PhotoPickerBaseTest {
public void testMultiSelect_longPress() throws Exception {
final int videoCount = 3;
createDNGVideos(videoCount, mContext.getUserId(), mUriList);
-
- Intent intent = new Intent(mAction);
- intent = addMultipleSelectionFlag(intent);
+ final Intent intent = new Intent(MediaStore.ACTION_PICK_IMAGES);
+ intent.putExtra(MediaStore.EXTRA_PICK_IMAGES_MAX, MediaStore.getPickImagesMaxLimit());
intent.setType("video/*");
- launchPhotoPickerForIntent(intent);
+ mActivity.startActivityForResult(intent, REQUEST_CODE);
final List<UiObject> itemList = findItemList(videoCount);
final int itemCount = itemList.size();
assertThat(itemCount).isEqualTo(videoCount);
// Select one item from Photo grid
- clickAndWait(mDevice, itemList.get(0));
+ clickAndWait(itemList.get(0));
// Preview the item
UiObject item = itemList.get(1);
@@ -245,14 +289,14 @@ public class PhotoPickerTest extends PhotoPickerBaseTest {
.that(addOrSelectButton.waitForExists(1000)).isTrue();
// Select the item from Preview
- clickAndWait(mDevice, addOrSelectButton);
+ clickAndWait(addOrSelectButton);
mDevice.pressBack();
// Select one more item from Photo grid
- clickAndWait(mDevice, itemList.get(2));
+ clickAndWait(itemList.get(2));
- clickAndWait(mDevice, findAddButton());
+ clickAndWait(findAddButton());
// Verify that all 3 items are returned
final ClipData clipData = mActivity.getResult().data.getClipData();
@@ -270,19 +314,18 @@ public class PhotoPickerTest extends PhotoPickerBaseTest {
public void testMultiSelect_preview() throws Exception {
final int imageCount = 4;
createImages(imageCount, mContext.getUserId(), mUriList);
-
- Intent intent = new Intent(mAction);
- intent = addMultipleSelectionFlag(intent);
- launchPhotoPickerForIntent(intent);
+ final Intent intent = new Intent(MediaStore.ACTION_PICK_IMAGES);
+ intent.putExtra(MediaStore.EXTRA_PICK_IMAGES_MAX, MediaStore.getPickImagesMaxLimit());
+ mActivity.startActivityForResult(intent, REQUEST_CODE);
final List<UiObject> itemList = findItemList(imageCount);
final int itemCount = itemList.size();
assertThat(itemCount).isEqualTo(imageCount);
- for (UiObject uiObject : itemList) {
- clickAndWait(mDevice, uiObject);
+ for (int i = 0; i < itemCount; i++) {
+ clickAndWait(itemList.get(i));
}
- clickAndWait(mDevice, findViewSelectedButton());
+ clickAndWait(findViewSelectedButton());
// Swipe left three times
swipeLeftAndWait();
@@ -290,10 +333,10 @@ public class PhotoPickerTest extends PhotoPickerBaseTest {
swipeLeftAndWait();
// Deselect one item
- clickAndWait(mDevice, findPreviewSelectedCheckButton());
+ clickAndWait(findPreviewSelectedCheckButton());
// Return selected items
- clickAndWait(mDevice, findPreviewAddButton());
+ clickAndWait(findPreviewAddButton());
final ClipData clipData = mActivity.getResult().data.getClipData();
final int count = clipData.getItemCount();
@@ -340,20 +383,20 @@ public class PhotoPickerTest extends PhotoPickerBaseTest {
// Test 2: Click Mute Button
// Click to unmute the audio
- clickAndWait(mDevice, muteButton);
+ clickAndWait(muteButton);
// Check that mute button state is unmute, i.e., it shows `volume up` icon
assertMuteButtonState(muteButton, /* isMuted */ false);
// Click on the muteButton and check that mute button status is now 'mute'
- clickAndWait(mDevice, muteButton);
+ clickAndWait(muteButton);
assertMuteButtonState(muteButton, /* isMuted */ true);
// Click on the muteButton and check that mute button status is now unmute
- clickAndWait(mDevice, muteButton);
+ clickAndWait(muteButton);
assertMuteButtonState(muteButton, /* isMuted */ false);
// Test 3: Next preview resumes mute state
// Go back and launch preview again
mDevice.pressBack();
- clickAndWait(mDevice, findViewSelectedButton());
+ clickAndWait(findViewSelectedButton());
// check that player controls are visible
assertPlayerControlsVisible(playPauseButton, muteButton);
@@ -384,7 +427,7 @@ public class PhotoPickerTest extends PhotoPickerBaseTest {
// Test 2: Swipe resumes mute state, with state of mute button 'volume up' / 'unmute'
// Click muteButton again to check the next video resumes the previous video's mute state
- clickAndWait(mDevice, muteButton);
+ clickAndWait(muteButton);
assertMuteButtonState(muteButton, /* isMuted */ false);
// check that next video resumed previous video's mute state
swipeLeftAndWait();
@@ -410,7 +453,7 @@ public class PhotoPickerTest extends PhotoPickerBaseTest {
final UiObject playerView = findPlayerView();
// Click on StyledPlayerView to make the video controls visible
- clickAndWait(mDevice, playerView);
+ clickAndWait(playerView);
assertPlayerControlsVisible(playPauseButton, muteButton);
// Wait for 1s and check that controls are still visible
@@ -427,7 +470,7 @@ public class PhotoPickerTest extends PhotoPickerBaseTest {
assertPlayerControlsHidden(playPauseButton, muteButton);
// Click on the StyledPlayerView and check that controls appear
- clickAndWait(mDevice, playerView);
+ clickAndWait(playerView);
assertPlayerControlsVisible(playPauseButton, muteButton);
// Swipe left to check that controls are now visible on swipe
@@ -450,20 +493,20 @@ public class PhotoPickerTest extends PhotoPickerBaseTest {
final String mimeType = "video/dng";
- Intent intent = new Intent(mAction);
- intent = addMultipleSelectionFlag(intent);
+ final Intent intent = new Intent(MediaStore.ACTION_PICK_IMAGES);
+ intent.putExtra(MediaStore.EXTRA_PICK_IMAGES_MAX, MediaStore.getPickImagesMaxLimit());
intent.setType(mimeType);
- launchPhotoPickerForIntent(intent);
+ mActivity.startActivityForResult(intent, REQUEST_CODE);
// find all items
final List<UiObject> itemList = findItemList(-1);
final int itemCount = itemList.size();
assertThat(itemCount).isAtLeast(videoCount);
- for (UiObject uiObject : itemList) {
- clickAndWait(mDevice, uiObject);
+ for (int i = 0; i < itemCount; i++) {
+ clickAndWait(itemList.get(i));
}
- clickAndWait(mDevice, findAddButton());
+ clickAndWait(findAddButton());
final ClipData clipData = mActivity.getResult().data.getClipData();
final int count = clipData.getItemCount();
@@ -496,38 +539,37 @@ public class PhotoPickerTest extends PhotoPickerBaseTest {
assertPlayerControlsAutoHide(playPauseButton, muteButton);
// Click on StyledPlayerView to make the video controls visible
- clickAndWait(mDevice, findPlayerView());
+ clickAndWait(findPlayerView());
// PlayPause button is now pause button, click the button to pause the video.
- clickAndWait(mDevice, playPauseButton);
+ clickAndWait(playPauseButton);
// Wait for 1s and check that play button is not auto hidden
assertPlayerControlsDontAutoHide(playPauseButton, muteButton);
// PlayPause button is now play button, click the button to play the video.
- clickAndWait(mDevice, playPauseButton);
+ clickAndWait(playPauseButton);
// Check that pause button auto-hides in 1s.
assertPlayerControlsAutoHide(playPauseButton, muteButton);
}
private void launchPreviewMultipleWithVideos(int videoCount) throws Exception {
createVideos(videoCount, mContext.getUserId(), mUriList);
-
- Intent intent = new Intent(mAction);
- intent = addMultipleSelectionFlag(intent);
+ final Intent intent = new Intent(MediaStore.ACTION_PICK_IMAGES);
+ intent.putExtra(MediaStore.EXTRA_PICK_IMAGES_MAX, MediaStore.getPickImagesMaxLimit());
intent.setType("video/*");
- launchPhotoPickerForIntent(intent);
+ mActivity.startActivityForResult(intent, REQUEST_CODE);
final List<UiObject> itemList = findItemList(videoCount);
final int itemCount = itemList.size();
assertThat(itemCount).isEqualTo(videoCount);
- for (UiObject uiObject : itemList) {
- clickAndWait(mDevice, uiObject);
+ for (int i = 0; i < itemCount; i++) {
+ clickAndWait(itemList.get(i));
}
- clickAndWait(mDevice, findViewSelectedButton());
+ clickAndWait(findViewSelectedButton());
// Wait for playback to start. This is needed in some devices where playback
// buffering -> ready state takes around 10s.
@@ -540,7 +582,7 @@ public class PhotoPickerTest extends PhotoPickerBaseTest {
// Wait for 1s or Play/Pause button to hide
playPauseButton.waitUntilGone(1000);
// Click on StyledPlayerView to make the video controls visible
- clickAndWait(mDevice, playerView);
+ clickAndWait(playerView);
assertPlayerControlsVisible(playPauseButton, muteButton);
}
@@ -607,75 +649,15 @@ public class PhotoPickerTest extends PhotoPickerBaseTest {
REGEX_PACKAGE_NAME + ":id/preview_video_image"));
}
+ private void clickAndWait(UiObject uiObject) throws Exception {
+ uiObject.click();
+ mDevice.waitForIdle();
+ }
+
private void swipeLeftAndWait() {
final int width = mDevice.getDisplayWidth();
final int height = mDevice.getDisplayHeight();
mDevice.swipe(15 * width / 20, height / 2, width / 20, height / 2, 10);
mDevice.waitForIdle();
}
-
-
- static List<String> getTestParameters() {
- return Arrays.asList(
- MediaStore.ACTION_PICK_IMAGES,
- Intent.ACTION_GET_CONTENT
- );
- }
-
- private Intent addMultipleSelectionFlag(Intent intent) {
- switch (intent.getAction()) {
- case MediaStore.ACTION_PICK_IMAGES:
- intent.putExtra(MediaStore.EXTRA_PICK_IMAGES_MAX,
- MediaStore.getPickImagesMaxLimit());
- break;
- case Intent.ACTION_GET_CONTENT:
- intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
- break;
- default:
- // do nothing
- }
-
- return intent;
- }
-
- private void launchPhotoPickerForIntent(Intent intent) throws Exception {
- switch (intent.getAction()) {
- case MediaStore.ACTION_PICK_IMAGES:
- mActivity.startActivityForResult(intent, REQUEST_CODE);
- break;
- case Intent.ACTION_GET_CONTENT:
- if (intent.getType() == null) {
- intent.setType("*/*");
- }
- mActivity.startActivityForResult(intent, REQUEST_CODE);
- findAndLaunchPicker();
- break;
- default:
- // do nothing
- }
- }
-
- /**
- * Clears the DocumentsUI package data.
- */
- private void clearDocumentsUiPackageData() throws Exception {
- final PackageManager pm = mContext.getPackageManager();
- final Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
- intent.setType("*/*");
- final ResolveInfo ri = pm.resolveActivity(intent, 0);
- InstrumentationRegistry.getInstrumentation().getUiAutomation()
- .executeShellCommand("pm clear " + ri.activityInfo.packageName);
- }
-
- private void findAndLaunchPicker() throws Exception {
- mDevice.waitForIdle();
- UiObject photoPickerApp = new UiObject(new UiSelector().textMatches("Photo picker"));
-
- assertWithMessage("Timed out while waiting for Photo picker app to appear")
- .that(photoPickerApp.waitForExists(SHORT_TIMEOUT))
- .isTrue();
-
- clickAndWait(mDevice, photoPickerApp);
- mDevice.waitForIdle();
- }
}
diff --git a/tests/PhotoPicker/src/android/photopicker/cts/util/PhotoPickerUiUtils.java b/tests/PhotoPicker/src/android/photopicker/cts/util/PhotoPickerUiUtils.java
index 9da6c9c35bd..d20dcd6665b 100644
--- a/tests/PhotoPicker/src/android/photopicker/cts/util/PhotoPickerUiUtils.java
+++ b/tests/PhotoPicker/src/android/photopicker/cts/util/PhotoPickerUiUtils.java
@@ -20,7 +20,6 @@ import static com.google.common.truth.Truth.assertWithMessage;
import android.text.format.DateUtils;
-import androidx.test.uiautomator.UiDevice;
import androidx.test.uiautomator.UiObject;
import androidx.test.uiautomator.UiObjectNotFoundException;
import androidx.test.uiautomator.UiScrollable;
@@ -93,9 +92,4 @@ public class PhotoPickerUiUtils {
return new UiObject(new UiSelector().resourceIdMatches(
REGEX_PACKAGE_NAME + ":id/profile_button"));
}
-
- public static void clickAndWait(UiDevice uiDevice, UiObject uiObject) throws Exception {
- uiObject.click();
- uiDevice.waitForIdle();
- }
}