Verify startActivityAsUser with ActivityOptions
fixes: 222189824
Test: StartActivityAsUserTests
Change-Id: I12bcd620ae45bf1f291dd26e6bbbb2377e92cc4e
diff --git a/tests/framework/base/windowmanager/src/android/server/wm/StartActivityAsUserTests.java b/tests/framework/base/windowmanager/src/android/server/wm/StartActivityAsUserTests.java
index b1975db..d6728f41 100644
--- a/tests/framework/base/windowmanager/src/android/server/wm/StartActivityAsUserTests.java
+++ b/tests/framework/base/windowmanager/src/android/server/wm/StartActivityAsUserTests.java
@@ -24,6 +24,7 @@
import static org.junit.Assume.assumeTrue;
import android.app.ActivityManager;
+import android.app.ActivityOptions;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
@@ -78,6 +79,25 @@
@Test
public void startActivityValidUser() throws Throwable {
+ verifyStartActivityAsValidUser(false /* withOptions */);
+ }
+
+ @Test
+ public void startActivityInvalidUser() {
+ verifyStartActivityAsInvalidUser(false /* withOptions */);
+ }
+
+ @Test
+ public void startActivityAsValidUserWithOptions() throws Throwable {
+ verifyStartActivityAsValidUser(true /* withOptions */);
+ }
+
+ @Test
+ public void startActivityAsInvalidUserWithOptions() {
+ verifyStartActivityAsInvalidUser(true /* withOptions */);
+ }
+
+ private void verifyStartActivityAsValidUser(boolean withOptions) throws Throwable {
int[] secondUser= {-1};
CountDownLatch latch = new CountDownLatch(1);
RemoteCallback cb = new RemoteCallback((Bundle result) -> {
@@ -102,7 +122,12 @@
try {
runWithShellPermissionIdentity(() -> {
- mContext.startActivityAsUser(intent, secondUserHandle);
+ if (withOptions) {
+ mContext.startActivityAsUser(intent, ActivityOptions.makeBasic().toBundle(),
+ secondUserHandle);
+ } else {
+ mContext.startActivityAsUser(intent, secondUserHandle);
+ }
mAm.switchUser(secondUserHandle);
try {
latch.await(5, TimeUnit.SECONDS);
@@ -120,8 +145,7 @@
returnToOriginalUserLatch.await(20, TimeUnit.SECONDS);
}
- @Test
- public void startActivityInvalidUser() {
+ private void verifyStartActivityAsInvalidUser(boolean withOptions) {
UserHandle secondUserHandle = UserHandle.of(mSecondUserId * 100);
int[] stackId = {-1};
@@ -129,7 +153,12 @@
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
runWithShellPermissionIdentity(() -> {
- mContext.startActivityAsUser(intent, secondUserHandle);
+ if (withOptions) {
+ mContext.startActivityAsUser(intent, ActivityOptions.makeBasic().toBundle(),
+ secondUserHandle);
+ } else {
+ mContext.startActivityAsUser(intent, secondUserHandle);
+ }
WindowManagerState amState = mAmWmState;
amState.computeState();
ComponentName componentName = ComponentName.createRelative(PACKAGE, CLASS);