summaryrefslogtreecommitdiff
path: root/java/tests
diff options
context:
space:
mode:
author Andrey Epin <ayepin@google.com> 2023-04-11 17:21:22 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2023-04-11 17:21:22 +0000
commit11b9cf84dc1c3a8bf1add401423e48cb44293a10 (patch)
tree9820a39d7de64f4c17eca4bfd96c2155161ed31d /java/tests
parentfc7ddd61dd62105dae67594517b9344afca163ff (diff)
parent8ae8c4a3f25cc5c0da3196fa0a3f0f07dfe87066 (diff)
Merge "Hide thumbnail prview if no preview has loaded" into udc-dev
Diffstat (limited to 'java/tests')
-rw-r--r--java/tests/src/com/android/intentresolver/ChooserActivityOverrideData.java5
-rw-r--r--java/tests/src/com/android/intentresolver/ChooserWrapperActivity.java6
-rw-r--r--java/tests/src/com/android/intentresolver/TestPreviewImageLoader.kt12
-rw-r--r--java/tests/src/com/android/intentresolver/UnbundledChooserActivityTest.java131
4 files changed, 113 insertions, 41 deletions
diff --git a/java/tests/src/com/android/intentresolver/ChooserActivityOverrideData.java b/java/tests/src/com/android/intentresolver/ChooserActivityOverrideData.java
index f9093b8f..2a4d654a 100644
--- a/java/tests/src/com/android/intentresolver/ChooserActivityOverrideData.java
+++ b/java/tests/src/com/android/intentresolver/ChooserActivityOverrideData.java
@@ -24,7 +24,6 @@ import static org.mockito.Mockito.when;
import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.database.Cursor;
-import android.graphics.Bitmap;
import android.os.UserHandle;
import com.android.intentresolver.AbstractMultiProfilePagerAdapter.CrossProfileIntentsChecker;
@@ -64,7 +63,7 @@ public class ChooserActivityOverrideData {
public boolean isImageType;
public Cursor resolverCursor;
public boolean resolverForceException;
- public Bitmap previewThumbnail;
+ public ImageLoader imageLoader;
public ChooserActivityLogger chooserActivityLogger;
public int alternateProfileSetting;
public Resources resources;
@@ -83,7 +82,7 @@ public class ChooserActivityOverrideData {
onSafelyStartInternalCallback = null;
isVoiceInteraction = null;
createPackageManager = null;
- previewThumbnail = null;
+ imageLoader = null;
isImageType = false;
resolverCursor = null;
resolverForceException = false;
diff --git a/java/tests/src/com/android/intentresolver/ChooserWrapperActivity.java b/java/tests/src/com/android/intentresolver/ChooserWrapperActivity.java
index 8886892f..dc9baade 100644
--- a/java/tests/src/com/android/intentresolver/ChooserWrapperActivity.java
+++ b/java/tests/src/com/android/intentresolver/ChooserWrapperActivity.java
@@ -194,9 +194,9 @@ public class ChooserWrapperActivity
@Override
protected ImageLoader createPreviewImageLoader() {
- return new TestPreviewImageLoader(
- super.createPreviewImageLoader(),
- () -> sOverrides.previewThumbnail);
+ return sOverrides.imageLoader == null
+ ? super.createPreviewImageLoader()
+ : sOverrides.imageLoader;
}
@Override
diff --git a/java/tests/src/com/android/intentresolver/TestPreviewImageLoader.kt b/java/tests/src/com/android/intentresolver/TestPreviewImageLoader.kt
index cfe041dd..2f240d58 100644
--- a/java/tests/src/com/android/intentresolver/TestPreviewImageLoader.kt
+++ b/java/tests/src/com/android/intentresolver/TestPreviewImageLoader.kt
@@ -21,18 +21,12 @@ import android.net.Uri
import java.util.function.Consumer
internal class TestPreviewImageLoader(
- private val imageLoader: ImageLoader,
- private val imageOverride: () -> Bitmap?
+ private val bitmaps: Map<Uri, Bitmap>
) : ImageLoader {
override fun loadImage(uri: Uri, callback: Consumer<Bitmap?>) {
- val override = imageOverride()
- if (override != null) {
- callback.accept(override)
- } else {
- imageLoader.loadImage(uri, callback)
- }
+ callback.accept(bitmaps[uri])
}
- override suspend fun invoke(uri: Uri): Bitmap? = imageOverride() ?: imageLoader(uri)
+ override suspend fun invoke(uri: Uri): Bitmap? = bitmaps[uri]
override fun prePopulate(uris: List<Uri>) = Unit
}
diff --git a/java/tests/src/com/android/intentresolver/UnbundledChooserActivityTest.java b/java/tests/src/com/android/intentresolver/UnbundledChooserActivityTest.java
index 39357a4d..0a60b8c7 100644
--- a/java/tests/src/com/android/intentresolver/UnbundledChooserActivityTest.java
+++ b/java/tests/src/com/android/intentresolver/UnbundledChooserActivityTest.java
@@ -26,6 +26,7 @@ import static androidx.test.espresso.assertion.ViewAssertions.doesNotExist;
import static androidx.test.espresso.assertion.ViewAssertions.matches;
import static androidx.test.espresso.matcher.ViewMatchers.hasSibling;
import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
+import static androidx.test.espresso.matcher.ViewMatchers.isEnabled;
import static androidx.test.espresso.matcher.ViewMatchers.withEffectiveVisibility;
import static androidx.test.espresso.matcher.ViewMatchers.withId;
import static androidx.test.espresso.matcher.ViewMatchers.withText;
@@ -125,6 +126,7 @@ import org.mockito.Mockito;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
+import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -422,10 +424,12 @@ public class UnbundledChooserActivityTest {
@Test
public void visiblePreviewTitleAndThumbnail() throws InterruptedException {
String previewTitle = "My Content Preview Title";
- Intent sendIntent = createSendTextIntentWithPreview(previewTitle,
- Uri.parse("android.resource://com.android.frameworks.coretests/"
- + R.drawable.test320x240));
- ChooserActivityOverrideData.getInstance().previewThumbnail = createBitmap();
+ Uri uri = Uri.parse(
+ "android.resource://com.android.frameworks.coretests/"
+ + R.drawable.test320x240);
+ Intent sendIntent = createSendTextIntentWithPreview(previewTitle, uri);
+ ChooserActivityOverrideData.getInstance().imageLoader =
+ createImageLoader(uri, createBitmap());
List<ResolvedComponentInfo> resolvedComponentInfos = createResolvedComponentsForTest(2);
setupResolverControllers(resolvedComponentInfos);
@@ -688,10 +692,12 @@ public class UnbundledChooserActivityTest {
@Test
public void testImagePlusTextSharing_ExcludeText() {
- Intent sendIntent = createSendImageIntent(
- Uri.parse("android.resource://com.android.frameworks.coretests/"
- + R.drawable.test320x240));
- ChooserActivityOverrideData.getInstance().previewThumbnail = createBitmap();
+ Uri uri = Uri.parse(
+ "android.resource://com.android.frameworks.coretests/"
+ + R.drawable.test320x240);
+ Intent sendIntent = createSendImageIntent(uri);
+ ChooserActivityOverrideData.getInstance().imageLoader =
+ createImageLoader(uri, createBitmap());
ChooserActivityOverrideData.getInstance().isImageType = true;
sendIntent.putExtra(Intent.EXTRA_TEXT, "https://google.com/search?q=google");
@@ -728,10 +734,12 @@ public class UnbundledChooserActivityTest {
@Test
public void testImagePlusTextSharing_RemoveAndAddBackText() {
- Intent sendIntent = createSendImageIntent(
- Uri.parse("android.resource://com.android.frameworks.coretests/"
- + R.drawable.test320x240));
- ChooserActivityOverrideData.getInstance().previewThumbnail = createBitmap();
+ Uri uri = Uri.parse(
+ "android.resource://com.android.frameworks.coretests/"
+ + R.drawable.test320x240);
+ Intent sendIntent = createSendImageIntent(uri);
+ ChooserActivityOverrideData.getInstance().imageLoader =
+ createImageLoader(uri, createBitmap());
ChooserActivityOverrideData.getInstance().isImageType = true;
final String text = "https://google.com/search?q=google";
sendIntent.putExtra(Intent.EXTRA_TEXT, text);
@@ -772,10 +780,12 @@ public class UnbundledChooserActivityTest {
@Test
public void testImagePlusTextSharing_TextExclusionDoesNotAffectAlternativeIntent() {
- Intent sendIntent = createSendImageIntent(
- Uri.parse("android.resource://com.android.frameworks.coretests/"
- + R.drawable.test320x240));
- ChooserActivityOverrideData.getInstance().previewThumbnail = createBitmap();
+ Uri uri = Uri.parse(
+ "android.resource://com.android.frameworks.coretests/"
+ + R.drawable.test320x240);
+ Intent sendIntent = createSendImageIntent(uri);
+ ChooserActivityOverrideData.getInstance().imageLoader =
+ createImageLoader(uri, createBitmap());
ChooserActivityOverrideData.getInstance().isImageType = true;
sendIntent.putExtra(Intent.EXTRA_TEXT, "https://google.com/search?q=google");
@@ -815,6 +825,42 @@ public class UnbundledChooserActivityTest {
}
@Test
+ public void testImagePlusTextSharing_failedThumbnailAndExcludedText_textRemainsVisible() {
+ Uri uri = Uri.parse(
+ "android.resource://com.android.frameworks.coretests/"
+ + R.drawable.test320x240);
+ Intent sendIntent = createSendImageIntent(uri);
+ ChooserActivityOverrideData.getInstance().imageLoader =
+ new TestPreviewImageLoader(Collections.emptyMap());
+ ChooserActivityOverrideData.getInstance().isImageType = true;
+ sendIntent.putExtra(Intent.EXTRA_TEXT, "https://google.com/search?q=google");
+
+ List<ResolvedComponentInfo> resolvedComponentInfos = Arrays.asList(
+ ResolverDataProvider.createResolvedComponentInfo(
+ new ComponentName("org.imageviewer", "ImageTarget"),
+ sendIntent, PERSONAL_USER_HANDLE),
+ ResolverDataProvider.createResolvedComponentInfo(
+ new ComponentName("org.textviewer", "UriTarget"),
+ new Intent("VIEW_TEXT"), PERSONAL_USER_HANDLE)
+ );
+
+ setupResolverControllers(resolvedComponentInfos);
+
+ mActivityRule.launchActivity(Intent.createChooser(sendIntent, null));
+ waitForIdle();
+
+ onView(withId(R.id.include_text_action))
+ .check(matches(isDisplayed()))
+ .perform(click());
+ waitForIdle();
+
+ onView(withId(R.id.scrollable_image_preview))
+ .check(matches(withEffectiveVisibility(ViewMatchers.Visibility.GONE)));
+ onView(withId(com.android.internal.R.id.content_preview_text))
+ .check(matches(allOf(isDisplayed(), not(isEnabled()))));
+ }
+
+ @Test
public void copyTextToClipboard() throws Exception {
Intent sendIntent = createSendTextIntent();
List<ResolvedComponentInfo> resolvedComponentInfos = createResolvedComponentsForTest(2);
@@ -879,11 +925,12 @@ public class UnbundledChooserActivityTest {
@Test @Ignore
public void testEditImageLogs() throws Exception {
- Intent sendIntent = createSendImageIntent(
- Uri.parse("android.resource://com.android.frameworks.coretests/"
- + R.drawable.test320x240));
-
- ChooserActivityOverrideData.getInstance().previewThumbnail = createBitmap();
+ Uri uri = Uri.parse(
+ "android.resource://com.android.frameworks.coretests/"
+ + R.drawable.test320x240);
+ Intent sendIntent = createSendImageIntent(uri);
+ ChooserActivityOverrideData.getInstance().imageLoader =
+ createImageLoader(uri, createBitmap());
ChooserActivityOverrideData.getInstance().isImageType = true;
List<ResolvedComponentInfo> resolvedComponentInfos = createResolvedComponentsForTest(2);
@@ -910,7 +957,8 @@ public class UnbundledChooserActivityTest {
uris.add(uri);
Intent sendIntent = createSendUriIntentWithPreview(uris);
- ChooserActivityOverrideData.getInstance().previewThumbnail = createBitmap();
+ ChooserActivityOverrideData.getInstance().imageLoader =
+ createImageLoader(uri, createBitmap());
ChooserActivityOverrideData.getInstance().isImageType = true;
List<ResolvedComponentInfo> resolvedComponentInfos = createResolvedComponentsForTest(2);
@@ -933,6 +981,29 @@ public class UnbundledChooserActivityTest {
}
@Test
+ public void allThumbnailsFailedToLoad_hidePreview() {
+ Uri uri = Uri.parse("android.resource://com.android.frameworks.coretests/"
+ + R.drawable.test320x240);
+
+ ArrayList<Uri> uris = new ArrayList<>();
+ uris.add(uri);
+ uris.add(uri);
+
+ Intent sendIntent = createSendUriIntentWithPreview(uris);
+ ChooserActivityOverrideData.getInstance().imageLoader =
+ new TestPreviewImageLoader(Collections.emptyMap());
+ ChooserActivityOverrideData.getInstance().isImageType = true;
+
+ List<ResolvedComponentInfo> resolvedComponentInfos = createResolvedComponentsForTest(2);
+
+ setupResolverControllers(resolvedComponentInfos);
+ mActivityRule.launchActivity(Intent.createChooser(sendIntent, null));
+ waitForIdle();
+ onView(withId(R.id.scrollable_image_preview))
+ .check(matches(withEffectiveVisibility(ViewMatchers.Visibility.GONE)));
+ }
+
+ @Test
public void testManyVisibleImagePreview_ScrollableImagePreview() {
Uri uri = Uri.parse("android.resource://com.android.frameworks.coretests/"
+ R.drawable.test320x240);
@@ -950,7 +1021,8 @@ public class UnbundledChooserActivityTest {
uris.add(uri);
Intent sendIntent = createSendUriIntentWithPreview(uris);
- ChooserActivityOverrideData.getInstance().previewThumbnail = createBitmap();
+ ChooserActivityOverrideData.getInstance().imageLoader =
+ createImageLoader(uri, createBitmap());
ChooserActivityOverrideData.getInstance().isImageType = true;
List<ResolvedComponentInfo> resolvedComponentInfos = createResolvedComponentsForTest(2);
@@ -980,7 +1052,8 @@ public class UnbundledChooserActivityTest {
Intent sendIntent = createSendUriIntentWithPreview(uris);
sendIntent.putExtra(Intent.EXTRA_TEXT, sharedText);
- ChooserActivityOverrideData.getInstance().previewThumbnail = createBitmap();
+ ChooserActivityOverrideData.getInstance().imageLoader =
+ createImageLoader(uri, createBitmap());
ChooserActivityOverrideData.getInstance().isImageType = true;
List<ResolvedComponentInfo> resolvedComponentInfos = createResolvedComponentsForTest(2);
@@ -1004,7 +1077,8 @@ public class UnbundledChooserActivityTest {
Intent sendIntent = createSendUriIntentWithPreview(uris);
sendIntent.putExtra(Intent.EXTRA_TEXT, sharedText);
- ChooserActivityOverrideData.getInstance().previewThumbnail = createBitmap();
+ ChooserActivityOverrideData.getInstance().imageLoader =
+ createImageLoader(uri, createBitmap());
ChooserActivityOverrideData.getInstance().isImageType = true;
List<ResolvedComponentInfo> resolvedComponentInfos = createResolvedComponentsForTest(2);
@@ -1093,7 +1167,8 @@ public class UnbundledChooserActivityTest {
uris.add(uri);
Intent sendIntent = createSendUriIntentWithPreview(uris);
- ChooserActivityOverrideData.getInstance().previewThumbnail = createBitmap();
+ ChooserActivityOverrideData.getInstance().imageLoader =
+ createImageLoader(uri, createBitmap());
ChooserActivityOverrideData.getInstance().isImageType = true;
List<ResolvedComponentInfo> resolvedComponentInfos = createResolvedComponentsForTest(2);
@@ -2866,4 +2941,8 @@ public class UnbundledChooserActivityTest {
};
return shortcutLoaders;
}
+
+ private static ImageLoader createImageLoader(Uri uri, Bitmap bitmap) {
+ return new TestPreviewImageLoader(Collections.singletonMap(uri, bitmap));
+ }
}