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);