summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> 2025-03-17 21:04:09 -0700
committer Android (Google) Code Review <android-gerrit@google.com> 2025-03-17 21:04:09 -0700
commit8f03bda5e1e45faa4c76a6f43da3fe7d91ab6283 (patch)
treea93cdaeda408842404962614862214382f19b85c
parente94c273794af1b165da86f6034d978a125e26379 (diff)
parentff37c941512c0fad21dc1dbae19ee181151dfbc6 (diff)
Merge "Fix up TrampolineActivityTest and make activity closing more robust" into main
-rw-r--r--tests/functional/com/android/documentsui/TrampolineActivityTest.kt43
1 files changed, 22 insertions, 21 deletions
diff --git a/tests/functional/com/android/documentsui/TrampolineActivityTest.kt b/tests/functional/com/android/documentsui/TrampolineActivityTest.kt
index 6bf0975ad..10b31d1eb 100644
--- a/tests/functional/com/android/documentsui/TrampolineActivityTest.kt
+++ b/tests/functional/com/android/documentsui/TrampolineActivityTest.kt
@@ -15,10 +15,8 @@
*/
package com.android.documentsui
-import android.app.Instrumentation
import android.content.Intent
import android.content.Intent.ACTION_GET_CONTENT
-import android.content.IntentFilter
import android.os.Build.VERSION_CODES
import android.platform.test.annotations.RequiresFlagsEnabled
import android.platform.test.flag.junit.CheckFlagsRule
@@ -34,7 +32,6 @@ import com.android.documentsui.flags.Flags.FLAG_REDIRECT_GET_CONTENT_RO
import com.android.documentsui.picker.TrampolineActivity
import java.util.Optional
import java.util.regex.Pattern
-import org.junit.After
import org.junit.Assert.assertNotNull
import org.junit.Before
import org.junit.BeforeClass
@@ -56,25 +53,28 @@ class TrampolineActivityTest() {
const val UI_TIMEOUT = 5000L
val PHOTOPICKER_PACKAGE_REGEX: Pattern = Pattern.compile(".*(photopicker|media\\.module).*")
val DOCUMENTSUI_PACKAGE_REGEX: Pattern = Pattern.compile(".*documentsui.*")
+ val STACK_LIST_REGEX: Pattern = Pattern.compile(
+ "taskId=(?<taskId>[0-9]+):(.+?)(photopicker|media\\.module|documentsui)",
+ Pattern.MULTILINE
+ )
private lateinit var device: UiDevice
- private lateinit var monitor: Instrumentation.ActivityMonitor
+ fun removePhotopickerAndDocumentsUITasks() {
+ // Get the current list of tasks that are visible.
+ val result = device.executeShellCommand("am stack list")
+
+ // Identify any that are from DocumentsUI or Photopicker and close them.
+ val matcher = STACK_LIST_REGEX.matcher(result)
+ while (matcher.find()) {
+ device.executeShellCommand("am stack remove ${matcher.group("taskId")}")
+ }
+ }
@BeforeClass
@JvmStatic
fun setUp() {
device = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
-
- // Monitor to wait for the activity that starts with the `ACTION_GET_CONTENT` intent.
- val intentFilter = IntentFilter().apply { addAction(ACTION_GET_CONTENT) }
- monitor =
- Instrumentation.ActivityMonitor(
- intentFilter,
- null, // Expected result from startActivityForResult.
- true, // Whether to block until activity started or not.
- )
- InstrumentationRegistry.getInstrumentation().addMonitor(monitor)
}
}
@@ -157,24 +157,20 @@ class TrampolineActivityTest() {
@Before
fun setUp() {
+ removePhotopickerAndDocumentsUITasks()
+
val context = InstrumentationRegistry.getInstrumentation().targetContext
val intent = Intent(ACTION_GET_CONTENT)
intent.setClass(context, TrampolineActivity::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
intent.setType(testData.mimeType)
if (testData.extraMimeTypes.isPresent) {
- testData.extraMimeTypes.get()
- .forEach { intent.putExtra(Intent.EXTRA_MIME_TYPES, it) }
+ intent.putExtra(Intent.EXTRA_MIME_TYPES, testData.extraMimeTypes.get())
}
context.startActivity(intent)
}
- @After
- fun tearDown() {
- monitor.waitForActivityWithTimeout(UI_TIMEOUT)?.finish()
- }
-
@Test
fun testCorrectAppIsLaunched() {
val bySelector = when (testData.expectedApp) {
@@ -208,6 +204,11 @@ class TrampolineActivityTest() {
@get:Rule
val checkFlagsRule: CheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule()
+ @Before
+ fun setUp() {
+ removePhotopickerAndDocumentsUITasks()
+ }
+
@Test
fun testReferredGetContentFromPhotopickerShouldNotRedirectBack() {
val context = InstrumentationRegistry.getInstrumentation().targetContext