Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 933dfe06 authored by Antonella Dellanzo's avatar Antonella Dellanzo Committed by Android (Google) Code Review
Browse files

Merge "Updating split screen tests"

parents c0bf5143 ab508e96
Loading
Loading
Loading
Loading
+25 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.wm.shell.flicker

import android.graphics.Region
import com.android.server.wm.flicker.DOCKED_STACK_DIVIDER
import com.android.server.wm.flicker.dsl.EventLogAssertion
import com.android.server.wm.flicker.dsl.LayersAssertion
import com.android.server.wm.flicker.helpers.WindowUtils
@@ -51,6 +52,30 @@ fun LayersAssertion.dockedStackDividerIsVisible(
    }
}

@JvmOverloads
fun LayersAssertion.dockedStackDividerBecomesVisible(
    bugId: Int = 0,
    enabled: Boolean = bugId == 0
) {
    all("dividerLayerBecomesVisible") {
        this.hidesLayer(DOCKED_STACK_DIVIDER)
                .then()
                .showsLayer(DOCKED_STACK_DIVIDER)
    }
}

@JvmOverloads
fun LayersAssertion.dockedStackDividerBecomesInvisible(
    bugId: Int = 0,
    enabled: Boolean = bugId == 0
) {
    all("dividerLayerBecomesInvisible") {
        this.showsLayer(DOCKED_STACK_DIVIDER)
                .then()
                .hidesLayer(DOCKED_STACK_DIVIDER)
    }
}

@JvmOverloads
fun LayersAssertion.dockedStackDividerIsInvisible(
    bugId: Int = 0,
+12 −4
Original line number Diff line number Diff line
@@ -29,7 +29,6 @@ import com.android.server.wm.flicker.helpers.launchSplitScreen
import com.android.server.wm.flicker.helpers.openQuickstep
import com.android.server.wm.flicker.helpers.wakeUpAndGoToHomeScreen
import com.android.wm.shell.flicker.dockedStackDividerIsInvisible
import com.android.wm.shell.flicker.dockedStackDividerIsVisible
import com.android.wm.shell.flicker.helpers.SplitScreenHelper.Companion.TEST_REPETITIONS
import com.android.server.wm.flicker.navBarWindowIsAlwaysVisible
import com.android.server.wm.flicker.statusBarLayerIsAlwaysVisible
@@ -38,6 +37,9 @@ import com.android.server.wm.flicker.statusBarWindowIsAlwaysVisible
import com.android.wm.shell.flicker.dockedStackPrimaryBoundsIsVisible
import com.android.wm.shell.flicker.dockedStackSecondaryBoundsIsVisible
import org.junit.Assert
import com.android.wm.shell.flicker.dockedStackDividerBecomesVisible
import com.android.server.wm.flicker.visibleWindowsShownMoreThanOneConsecutiveEntry
import com.android.server.wm.flicker.visibleLayersShownMoreThanOneConsecutiveEntry
import org.junit.FixMethodOrder
import org.junit.Test
import org.junit.runner.RunWith
@@ -46,7 +48,7 @@ import org.junit.runners.Parameterized

/**
 * Test SplitScreen launch.
 * To run this test: `atest WMShellFlickerTests:EnterSplitScreenTest`
 * To run this test: `atest WMShellFlickerTests:EnterLegacySplitScreenTest`
 */
@Presubmit
@RequiresDevice
@@ -81,10 +83,16 @@ class EnterLegacySplitScreenTest(
                layersTrace {
                    navBarLayerIsAlwaysVisible()
                    statusBarLayerIsAlwaysVisible()
                    visibleLayersShownMoreThanOneConsecutiveEntry(
                            listOf(launcherPackageName, splitScreenApp.defaultWindowName,
                                    secondaryApp.defaultWindowName,
                                    nonResizeableApp.defaultWindowName)
                    )
                }
                windowManagerTrace {
                    navBarWindowIsAlwaysVisible()
                    statusBarWindowIsAlwaysVisible()
                    visibleWindowsShownMoreThanOneConsecutiveEntry(listOf(launcherPackageName))
                }
            }
        }
@@ -103,9 +111,9 @@ class EnterLegacySplitScreenTest(
            }
            assertions {
                layersTrace {
                    dockedStackDividerIsVisible()
                    dockedStackPrimaryBoundsIsVisible(
                            rotation, splitScreenApp.defaultWindowName, 169271943)
                    dockedStackDividerBecomesVisible()
                }
                windowManagerTrace {
                    end {
@@ -132,11 +140,11 @@ class EnterLegacySplitScreenTest(
            }
            assertions {
                layersTrace {
                    dockedStackDividerIsVisible()
                    dockedStackPrimaryBoundsIsVisible(
                            rotation, splitScreenApp.defaultWindowName, 169271943)
                    dockedStackSecondaryBoundsIsVisible(
                            rotation, secondaryApp.defaultWindowName, 169271943)
                    dockedStackDividerBecomesVisible()
                }
                windowManagerTrace {
                    end {
+16 −3
Original line number Diff line number Diff line
@@ -21,6 +21,11 @@ import android.util.Rational
import android.view.Surface
import androidx.test.filters.FlakyTest
import androidx.test.filters.RequiresDevice
import com.android.server.wm.flicker.visibleLayersShownMoreThanOneConsecutiveEntry
import com.android.server.wm.flicker.visibleWindowsShownMoreThanOneConsecutiveEntry
import com.android.server.wm.flicker.navBarWindowIsAlwaysVisible
import com.android.server.wm.flicker.statusBarWindowIsAlwaysVisible
import com.android.server.wm.flicker.layerBecomesInvisible
import com.android.server.wm.flicker.dsl.FlickerBuilder
import com.android.server.wm.flicker.dsl.runWithFlicker
import com.android.server.wm.flicker.helpers.exitSplitScreen
@@ -29,8 +34,6 @@ import com.android.server.wm.flicker.helpers.resizeSplitScreen
import com.android.server.wm.flicker.helpers.wakeUpAndGoToHomeScreen
import com.android.wm.shell.flicker.dockedStackDividerIsInvisible
import com.android.wm.shell.flicker.helpers.SplitScreenHelper.Companion.TEST_REPETITIONS
import com.android.server.wm.flicker.navBarWindowIsAlwaysVisible
import com.android.server.wm.flicker.statusBarWindowIsAlwaysVisible
import org.junit.FixMethodOrder
import org.junit.Test
import org.junit.runner.RunWith
@@ -39,7 +42,7 @@ import org.junit.runners.Parameterized

/**
 * Test exit SplitScreen mode.
 * To run this test: `atest WMShellFlickerTests:ExitSplitScreenTest`
 * To run this test: `atest WMShellFlickerTests:ExitLegacySplitScreenTest`
 */
@Presubmit
@RequiresDevice
@@ -71,6 +74,15 @@ class ExitLegacySplitScreenTest(
                    secondaryApp.exit()
                }
            }
            assertions {
                windowManagerTrace {
                    visibleWindowsShownMoreThanOneConsecutiveEntry()
                }
                layersTrace {
                    visibleLayersShownMoreThanOneConsecutiveEntry(
                            listOf(launcherPackageName))
                }
            }
        }

    @Test
@@ -87,6 +99,7 @@ class ExitLegacySplitScreenTest(
            assertions {
                layersTrace {
                    dockedStackDividerIsInvisible()
                    layerBecomesInvisible(splitScreenApp.defaultWindowName)
                }
                windowManagerTrace {
                    navBarWindowIsAlwaysVisible()
+13 −12
Original line number Diff line number Diff line
@@ -17,10 +17,10 @@
package com.android.wm.shell.flicker.legacysplitscreen

import android.platform.test.annotations.Presubmit
import android.support.test.launcherhelper.LauncherStrategyFactory
import android.view.Surface
import androidx.test.filters.RequiresDevice
import androidx.test.platform.app.InstrumentationRegistry
import com.android.server.wm.flicker.DOCKED_STACK_DIVIDER
import com.android.server.wm.flicker.Flicker
import com.android.server.wm.flicker.FlickerTestRunner
import com.android.server.wm.flicker.FlickerTestRunnerFactory
@@ -35,12 +35,16 @@ import com.android.server.wm.flicker.helpers.setRotation
import com.android.server.wm.flicker.helpers.wakeUpAndGoToHomeScreen
import com.android.server.wm.flicker.navBarLayerIsAlwaysVisible
import com.android.server.wm.flicker.navBarLayerRotatesAndScales
import com.android.server.wm.flicker.visibleWindowsShownMoreThanOneConsecutiveEntry
import com.android.server.wm.flicker.visibleLayersShownMoreThanOneConsecutiveEntry
import com.android.server.wm.flicker.layerBecomesInvisible
import com.android.server.wm.flicker.navBarWindowIsAlwaysVisible
import com.android.server.wm.flicker.noUncoveredRegions
import com.android.server.wm.flicker.repetitions
import com.android.server.wm.flicker.statusBarLayerIsAlwaysVisible
import com.android.server.wm.flicker.statusBarLayerRotatesScales
import com.android.server.wm.flicker.statusBarWindowIsAlwaysVisible
import com.android.wm.shell.flicker.dockedStackDividerBecomesInvisible
import org.junit.FixMethodOrder
import org.junit.runner.RunWith
import org.junit.runners.MethodSorters
@@ -48,7 +52,7 @@ import org.junit.runners.Parameterized

/**
 * Test open app to split screen.
 * To run this test: `atest WMShellFlickerTests:SplitScreenToLauncherTest`
 * To run this test: `atest WMShellFlickerTests:LegacySplitScreenToLauncherTest`
 */
@Presubmit
@RequiresDevice
@@ -63,6 +67,8 @@ class LegacySplitScreenToLauncherTest(
        @JvmStatic
        fun getParams(): Collection<Array<Any>> {
            val instrumentation = InstrumentationRegistry.getInstrumentation()
            val launcherPackageName = LauncherStrategyFactory.getInstance(instrumentation)
                    .launcherStrategy.supportedLauncherPackage
            val testApp = StandardAppHelper(instrumentation,
                "com.android.wm.shell.flicker.testapp", "SimpleApp")

@@ -101,6 +107,7 @@ class LegacySplitScreenToLauncherTest(
                        windowManagerTrace {
                            navBarWindowIsAlwaysVisible()
                            statusBarWindowIsAlwaysVisible()
                            visibleWindowsShownMoreThanOneConsecutiveEntry()
                        }

                        layersTrace {
@@ -109,19 +116,13 @@ class LegacySplitScreenToLauncherTest(
                            noUncoveredRegions(configuration.endRotation)
                            navBarLayerRotatesAndScales(configuration.endRotation)
                            statusBarLayerRotatesScales(configuration.endRotation)
                            visibleLayersShownMoreThanOneConsecutiveEntry(
                                    listOf(launcherPackageName))

                            // b/161435597 causes the test not to work on 90 degrees
                            all("dividerLayerBecomesInvisible") {
                                this.showsLayer(DOCKED_STACK_DIVIDER)
                                    .then()
                                    .hidesLayer(DOCKED_STACK_DIVIDER)
                            }
                            dockedStackDividerBecomesInvisible()

                            all("appLayerBecomesInvisible") {
                                this.showsLayer(testApp.getPackage())
                                    .then()
                                    .hidesLayer(testApp.getPackage())
                            }
                            layerBecomesInvisible(testApp.getPackage())
                        }

                        eventLog {
+17 −7
Original line number Diff line number Diff line
@@ -17,10 +17,10 @@
package com.android.wm.shell.flicker.legacysplitscreen

import android.platform.test.annotations.Presubmit
import android.support.test.launcherhelper.LauncherStrategyFactory
import android.view.Surface
import androidx.test.filters.RequiresDevice
import androidx.test.platform.app.InstrumentationRegistry
import com.android.server.wm.flicker.DOCKED_STACK_DIVIDER
import com.android.server.wm.flicker.Flicker
import com.android.server.wm.flicker.FlickerTestRunner
import com.android.server.wm.flicker.FlickerTestRunnerFactory
@@ -35,12 +35,17 @@ import com.android.server.wm.flicker.helpers.setRotation
import com.android.server.wm.flicker.helpers.wakeUpAndGoToHomeScreen
import com.android.server.wm.flicker.navBarLayerIsAlwaysVisible
import com.android.server.wm.flicker.navBarLayerRotatesAndScales
import com.android.server.wm.flicker.appWindowBecomesVisible
import com.android.server.wm.flicker.visibleWindowsShownMoreThanOneConsecutiveEntry
import com.android.server.wm.flicker.visibleLayersShownMoreThanOneConsecutiveEntry
import com.android.server.wm.flicker.layerBecomesVisible
import com.android.server.wm.flicker.navBarWindowIsAlwaysVisible
import com.android.server.wm.flicker.noUncoveredRegions
import com.android.server.wm.flicker.repetitions
import com.android.server.wm.flicker.statusBarLayerIsAlwaysVisible
import com.android.server.wm.flicker.statusBarLayerRotatesScales
import com.android.server.wm.flicker.statusBarWindowIsAlwaysVisible
import com.android.wm.shell.flicker.dockedStackDividerBecomesVisible
import org.junit.FixMethodOrder
import org.junit.runner.RunWith
import org.junit.runners.MethodSorters
@@ -48,7 +53,7 @@ import org.junit.runners.Parameterized

/**
 * Test open app to split screen.
 * To run this test: `atest WMShellFlickerTests:OpenAppToSplitScreenTest`
 * To run this test: `atest WMShellFlickerTests:OpenAppToLegacySplitScreenTest`
 */
@Presubmit
@RequiresDevice
@@ -63,6 +68,8 @@ class OpenAppToLegacySplitScreenTest(
        @JvmStatic
        fun getParams(): Collection<Array<Any>> {
            val instrumentation = InstrumentationRegistry.getInstrumentation()
            val launcherPackageName = LauncherStrategyFactory.getInstance(instrumentation)
                    .launcherStrategy.supportedLauncherPackage
            val testApp = StandardAppHelper(instrumentation,
                "com.android.wm.shell.flicker.testapp", "SimpleApp")

@@ -79,6 +86,7 @@ class OpenAppToLegacySplitScreenTest(
                        }
                        eachRun {
                            testApp.open()
                            device.pressHome()
                            this.setRotation(configuration.endRotation)
                        }
                    }
@@ -99,6 +107,9 @@ class OpenAppToLegacySplitScreenTest(
                        windowManagerTrace {
                            navBarWindowIsAlwaysVisible()
                            statusBarWindowIsAlwaysVisible()
                            visibleWindowsShownMoreThanOneConsecutiveEntry()

                            appWindowBecomesVisible(testApp.getPackage())
                        }

                        layersTrace {
@@ -108,12 +119,11 @@ class OpenAppToLegacySplitScreenTest(
                            navBarLayerRotatesAndScales(configuration.endRotation,
                                bugId = 140855415)
                            statusBarLayerRotatesScales(configuration.endRotation)
                            visibleLayersShownMoreThanOneConsecutiveEntry(
                                    listOf(launcherPackageName))

                            all("dividerLayerBecomesVisible") {
                                this.hidesLayer(DOCKED_STACK_DIVIDER)
                                    .then()
                                    .showsLayer(DOCKED_STACK_DIVIDER)
                            }
                            dockedStackDividerBecomesVisible()
                            layerBecomesVisible(testApp.getPackage())
                        }

                        eventLog {
Loading