From 2c85bb7cd666fd01f4ac884e81ee2b26cb1acdbb Mon Sep 17 00:00:00 2001 From: Chilun Huang Date: Thu, 10 Nov 2022 15:39:10 +0800 Subject: Reland "Extand the long press duration" This relands commit 8dc06e533523855764a16f84f5daa35b1c3ab800 The Different from the original patch: Ignore the layers of popup windows. The original CL description: Align the long press duration to AutomationUtils. Bug: 257099231 Bug: 258787797 Test: atest WMShellFlickerTests:CopyContentInSplit Change-Id: I391e0e4e71aa0ae13221ecd571e187e1c10f7c96 --- .../wm/shell/flicker/splitscreen/CopyContentInSplit.kt | 18 ++++++++++++++++-- .../wm/shell/flicker/splitscreen/SplitScreenUtils.kt | 18 ++++++++---------- 2 files changed, 24 insertions(+), 12 deletions(-) (limited to 'libs') diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/CopyContentInSplit.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/CopyContentInSplit.kt index 2bce8e45c553..9533b9182b6c 100644 --- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/CopyContentInSplit.kt +++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/CopyContentInSplit.kt @@ -24,6 +24,8 @@ import com.android.server.wm.flicker.FlickerParametersRunnerFactory import com.android.server.wm.flicker.FlickerTestParameter import com.android.server.wm.flicker.FlickerTestParameterFactory import com.android.server.wm.flicker.dsl.FlickerBuilder +import com.android.server.wm.traces.common.ComponentNameMatcher +import com.android.server.wm.traces.common.EdgeExtensionComponentMatcher import com.android.wm.shell.flicker.SPLIT_SCREEN_DIVIDER_COMPONENT import com.android.wm.shell.flicker.appWindowIsVisibleAtEnd import com.android.wm.shell.flicker.appWindowIsVisibleAtStart @@ -49,6 +51,8 @@ import org.junit.runners.Parameterized @FixMethodOrder(MethodSorters.NAME_ASCENDING) class CopyContentInSplit(testSpec: FlickerTestParameter) : SplitScreenBase(testSpec) { private val textEditApp = SplitScreenUtils.getIme(instrumentation) + private val MagnifierLayer = ComponentNameMatcher("", "magnifier surface bbq wrapper#") + private val PopupWindowLayer = ComponentNameMatcher("", "PopupWindow:") override val transition: FlickerBuilder.() -> Unit get() = { @@ -159,8 +163,18 @@ class CopyContentInSplit(testSpec: FlickerTestParameter) : SplitScreenBase(testS /** {@inheritDoc} */ @Presubmit @Test - override fun visibleLayersShownMoreThanOneConsecutiveEntry() = - super.visibleLayersShownMoreThanOneConsecutiveEntry() + override fun visibleLayersShownMoreThanOneConsecutiveEntry() { + testSpec.assertLayers { + this.visibleLayersShownMoreThanOneConsecutiveEntry( + ignoreLayers = listOf( + ComponentNameMatcher.SPLASH_SCREEN, + ComponentNameMatcher.SNAPSHOT, + ComponentNameMatcher.IME_SNAPSHOT, + EdgeExtensionComponentMatcher(), + MagnifierLayer, + PopupWindowLayer)) + } + } /** {@inheritDoc} */ @Presubmit diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/SplitScreenUtils.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/SplitScreenUtils.kt index ead451f07653..4a3284e1953b 100644 --- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/SplitScreenUtils.kt +++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/SplitScreenUtils.kt @@ -41,6 +41,7 @@ import com.android.server.wm.traces.parser.toFlickerComponent import com.android.server.wm.traces.parser.windowmanager.WindowManagerStateHelper import com.android.wm.shell.flicker.LAUNCHER_UI_PACKAGE_NAME import com.android.wm.shell.flicker.SYSTEM_UI_PACKAGE_NAME +import org.junit.Assert.assertNotNull import java.util.Collections internal object SplitScreenUtils { @@ -50,7 +51,7 @@ internal object SplitScreenUtils { private const val DIVIDER_BAR = "docked_divider_handle" private const val OVERVIEW_SNAPSHOT = "snapshot" private const val GESTURE_STEP_MS = 16L - private const val LONG_PRESS_TIME_MS = 100L + private val LONG_PRESS_TIME_MS = ViewConfiguration.getLongPressTimeout() * 2L private val SPLIT_DECOR_MANAGER = ComponentNameMatcher("", "SplitDecorManager#") private val notificationScrollerSelector: BySelector @@ -275,13 +276,6 @@ internal object SplitScreenUtils { } } - fun longPress(instrumentation: Instrumentation, point: Point) { - val downTime = SystemClock.uptimeMillis() - touch(instrumentation, MotionEvent.ACTION_DOWN, downTime, downTime, TIMEOUT_MS, point) - SystemClock.sleep(LONG_PRESS_TIME_MS) - touch(instrumentation, MotionEvent.ACTION_UP, downTime, downTime, TIMEOUT_MS, point) - } - fun createShortcutOnHotseatIfNotExist(tapl: LauncherInstrumentation, appName: String) { tapl.workspace.deleteAppIcon(tapl.workspace.getHotseatAppIcon(0)) val allApps = tapl.workspace.switchToAllApps() @@ -353,9 +347,11 @@ internal object SplitScreenUtils { Until.findObject(By.res(sourceApp.packageName, "SplitScreenTest")), TIMEOUT_MS ) - longPress(instrumentation, textView.visibleCenter) + assertNotNull("Unable to find the TextView", textView) + textView.click(LONG_PRESS_TIME_MS) val copyBtn = device.wait(Until.findObject(By.text("Copy")), TIMEOUT_MS) + assertNotNull("Unable to find the copy button", copyBtn) copyBtn.click() // Paste text to destinationApp @@ -364,9 +360,11 @@ internal object SplitScreenUtils { Until.findObject(By.res(destinationApp.packageName, "plain_text_input")), TIMEOUT_MS ) - longPress(instrumentation, editText.visibleCenter) + assertNotNull("Unable to find the EditText", editText) + editText.click(LONG_PRESS_TIME_MS) val pasteBtn = device.wait(Until.findObject(By.text("Paste")), TIMEOUT_MS) + assertNotNull("Unable to find the paste button", pasteBtn) pasteBtn.click() // Verify text -- cgit v1.2.3-59-g8ed1b