summaryrefslogtreecommitdiff
path: root/java/tests
diff options
context:
space:
mode:
author Anthony Alridge <anthonyalridge@google.com> 2023-05-02 09:30:05 +0000
committer Anthony Alridge <anthonyalridge@google.com> 2023-05-10 16:01:11 +0000
commit0e19f669c3703a6c29baece731b09011e01e1790 (patch)
tree8a03ce121ba8eecad1c2adc918d8705db635eebd /java/tests
parentb6db5913d41b01476ef027d7e40f032f4f3c4ed9 (diff)
Remove auto-launching for single target, multiple tabs
This can lead to poor UX when auto-launching across tabs. If the intent picker should be shown (e.g dev calls startActivity), and there is only a single app to handle the intent, then this has no affect. It is handled in either IntentForwarderActivity, or in ResolverActivity (mini-resolver). However, if the dev calls Intent.createChooser/ACTION_CHOOSER, without an ACTION_SEND intent (ChooserActivity), then we show something that looks like an intent picker, which has this incorrect auto-launching logic. For now we simply remove the logic because it doesn't make sesnse in an actual sharing context, and if ACTION_SEND is not used it leads to a security vulnerability and very poor UX (b/270700718). In a future release we can hopefully improve this and treat this case in-line with the intent-picker (e.g., showing the mini-resolver). Bug: 272208024 Bug: 270700718 Test: atest ResolverActivityTest Test: atest UnbundledChoserActivityTest Test: Manually tested, attached screenshots in bug Change-Id: I1a340cab94230cada1e7e805195070b032e7c5ff
Diffstat (limited to 'java/tests')
-rw-r--r--java/tests/src/com/android/intentresolver/ResolverActivityTest.java5
-rw-r--r--java/tests/src/com/android/intentresolver/UnbundledChooserActivityTest.java4
2 files changed, 5 insertions, 4 deletions
diff --git a/java/tests/src/com/android/intentresolver/ResolverActivityTest.java b/java/tests/src/com/android/intentresolver/ResolverActivityTest.java
index 5cece092..31c0a498 100644
--- a/java/tests/src/com/android/intentresolver/ResolverActivityTest.java
+++ b/java/tests/src/com/android/intentresolver/ResolverActivityTest.java
@@ -34,6 +34,7 @@ import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.not;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
import static org.junit.Assert.fail;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.when;
@@ -741,7 +742,7 @@ public class ResolverActivityTest {
}
@Test
- public void testWorkTab_onePersonalTarget_emptyStateOnWorkTarget_autolaunch() {
+ public void testWorkTab_onePersonalTarget_emptyStateOnWorkTarget_doesNotAutoLaunch() {
markWorkProfileUserAvailable();
int workProfileTargets = 4;
List<ResolvedComponentInfo> personalResolvedComponentInfos =
@@ -763,7 +764,7 @@ public class ResolverActivityTest {
mActivityRule.launchActivity(sendIntent);
waitForIdle();
- assertThat(chosen[0], is(personalResolvedComponentInfos.get(1).getResolveInfoAt(0)));
+ assertNull(chosen[0]);
}
@Test
diff --git a/java/tests/src/com/android/intentresolver/UnbundledChooserActivityTest.java b/java/tests/src/com/android/intentresolver/UnbundledChooserActivityTest.java
index 6ba67fa7..c2212bc2 100644
--- a/java/tests/src/com/android/intentresolver/UnbundledChooserActivityTest.java
+++ b/java/tests/src/com/android/intentresolver/UnbundledChooserActivityTest.java
@@ -2341,7 +2341,7 @@ public class UnbundledChooserActivityTest {
}
@Test
- public void testWorkTab_onePersonalTarget_emptyStateOnWorkTarget_autolaunch() {
+ public void testWorkTab_onePersonalTarget_emptyStateOnWorkTarget_doesNotAutoLaunch() {
markWorkProfileUserAvailable();
int workProfileTargets = 4;
List<ResolvedComponentInfo> personalResolvedComponentInfos =
@@ -2360,7 +2360,7 @@ public class UnbundledChooserActivityTest {
mActivityRule.launchActivity(Intent.createChooser(sendIntent, "Test"));
waitForIdle();
- assertThat(chosen[0], is(personalResolvedComponentInfos.get(1).getResolveInfoAt(0)));
+ assertNull(chosen[0]);
}
@Test