Reland "Extand the long press duration"
This relands commit 8dc06e5335
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
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user