Update enter split-screen flicker tests

Use 'or' transition for notContains and isInvisible.

Update the validation of app layer to match the current transition.

Bug: 244414379
Test: atest com.android.wm.shell.flicker.splitscreen

Change-Id: I13dcbd702b81ba75258083523f89e4505f481cf4
This commit is contained in:
Chilun Huang
2022-09-12 16:30:34 +08:00
parent b234ca2f08
commit d87b6f05d8
4 changed files with 81 additions and 23 deletions

View File

@@ -20,6 +20,7 @@ package com.android.wm.shell.flicker
import android.view.Surface
import com.android.server.wm.flicker.FlickerTestParameter
import com.android.server.wm.flicker.helpers.WindowUtils
import com.android.server.wm.flicker.helpers.isShellTransitionsEnabled
import com.android.server.wm.flicker.traces.layers.LayerTraceEntrySubject
import com.android.server.wm.flicker.traces.layers.LayersTraceSubject
import com.android.server.wm.traces.common.IComponentMatcher
@@ -99,15 +100,9 @@ fun FlickerTestParameter.splitAppLayerBoundsBecomesVisible(
portraitPosTop: Boolean
) {
assertLayers {
// TODO(b/242025948): Use SPLIT_SCREEN_DIVIDER_COMPONENT.or(component) for notContains
// and isInvisible when they are ready.
this.notContains(SPLIT_SCREEN_DIVIDER_COMPONENT)
this.notContains(SPLIT_SCREEN_DIVIDER_COMPONENT.or(component))
.then()
.notContains(component, isOptional = true)
.then()
.isInvisible(SPLIT_SCREEN_DIVIDER_COMPONENT, isOptional = true)
.then()
.isInvisible(component, isOptional = true)
.isInvisible(SPLIT_SCREEN_DIVIDER_COMPONENT.or(component))
.then()
.splitAppLayerBoundsSnapToDivider(
component, landscapePosLeft, portraitPosTop, endRotation)
@@ -118,18 +113,25 @@ fun FlickerTestParameter.splitAppLayerBoundsBecomesVisibleByDrag(
component: IComponentMatcher
) {
assertLayers {
// TODO(b/242025948): Use SPLIT_SCREEN_DIVIDER_COMPONENT.or(component) for notContains
// and isInvisible when they are ready.
this.notContains(SPLIT_SCREEN_DIVIDER_COMPONENT)
.then()
.notContains(component, isOptional = true)
.then()
.isInvisible(SPLIT_SCREEN_DIVIDER_COMPONENT, isOptional = true)
.then()
.isInvisible(component, isOptional = true)
.then()
// TODO(b/245472831): Verify the component should snap to divider.
.isVisible(component)
if (isShellTransitionsEnabled) {
this.notContains(SPLIT_SCREEN_DIVIDER_COMPONENT.or(component))
.then()
.isInvisible(SPLIT_SCREEN_DIVIDER_COMPONENT.or(component))
.then()
// TODO(b/245472831): Verify the component should snap to divider.
.isVisible(component)
} else {
this.notContains(SPLIT_SCREEN_DIVIDER_COMPONENT.or(component))
.then()
.isInvisible(SPLIT_SCREEN_DIVIDER_COMPONENT.or(component))
.then()
// TODO(b/245472831): Verify the component should snap to divider.
.isVisible(component)
.then()
.isInvisible(component, isOptional = true)
.then()
.isVisible(component)
}
}
}

View File

@@ -106,7 +106,26 @@ class EnterSplitScreenByDragFromAllApps(
@Presubmit
@Test
fun secondaryAppLayerBecomesVisible() = testSpec.layerBecomesVisible(secondaryApp)
fun secondaryAppLayerBecomesVisible() {
Assume.assumeFalse(isShellTransitionsEnabled)
testSpec.assertLayers {
this.isInvisible(secondaryApp)
.then()
.isVisible(secondaryApp)
.then()
.isInvisible(secondaryApp)
.then()
.isVisible(secondaryApp)
}
}
// TODO(b/245472831): Align to legacy transition after shell transition ready.
@Presubmit
@Test
fun secondaryAppLayerBecomesVisible_ShellTransit() {
Assume.assumeTrue(isShellTransitionsEnabled)
testSpec.layerBecomesVisible(secondaryApp)
}
@Presubmit
@Test

View File

@@ -120,8 +120,26 @@ class EnterSplitScreenByDragFromNotification(
@Presubmit
@Test
fun secondaryAppLayerBecomesVisible() =
fun secondaryAppLayerBecomesVisible() {
Assume.assumeFalse(isShellTransitionsEnabled)
testSpec.assertLayers {
this.isInvisible(sendNotificationApp)
.then()
.isVisible(sendNotificationApp)
.then()
.isInvisible(sendNotificationApp)
.then()
.isVisible(sendNotificationApp)
}
}
// TODO(b/245472831): Align to legacy transition after shell transition ready.
@Presubmit
@Test
fun secondaryAppLayerBecomesVisible_ShellTransit() {
Assume.assumeTrue(isShellTransitionsEnabled)
testSpec.layerBecomesVisible(sendNotificationApp)
}
@Presubmit
@Test

View File

@@ -109,7 +109,26 @@ class EnterSplitScreenByDragFromTaskbar(
@Presubmit
@Test
fun secondaryAppLayerBecomesVisible() = testSpec.layerBecomesVisible(secondaryApp)
fun secondaryAppLayerBecomesVisible() {
Assume.assumeFalse(isShellTransitionsEnabled)
testSpec.assertLayers {
this.isInvisible(secondaryApp)
.then()
.isVisible(secondaryApp)
.then()
.isInvisible(secondaryApp)
.then()
.isVisible(secondaryApp)
}
}
// TODO(b/245472831): Align to legacy transition after shell transition ready.
@Presubmit
@Test
fun secondaryAppLayerBecomesVisible_ShellTransit() {
Assume.assumeTrue(isShellTransitionsEnabled)
testSpec.layerBecomesVisible(secondaryApp)
}
@Presubmit
@Test