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

Commit 3f3b0b3a authored by Nataniel Borges's avatar Nataniel Borges
Browse files

Update IME tests to new DSL format

Move the existing assertions into presubmit and flaky blocks

Bug: 162923992
Bug: 178015460
Test: atest FlickerTests
Change-Id: Ic225e8bd2cf4756e417a08f23549421433837bbc
parent 0d56c0f5
Loading
Loading
Loading
Loading
+30 −21
Original line number Diff line number Diff line
@@ -16,8 +16,6 @@

package com.android.server.wm.flicker.ime

import androidx.test.filters.FlakyTest
import android.platform.test.annotations.Presubmit
import android.view.Surface
import androidx.test.filters.RequiresDevice
import androidx.test.platform.app.InstrumentationRegistry
@@ -48,11 +46,9 @@ import org.junit.runners.Parameterized
 * Test IME window closing back to app window transitions.
 * To run this test: `atest FlickerTests:CloseImeAutoOpenWindowToAppTest`
 */
@Presubmit
@RequiresDevice
@RunWith(Parameterized::class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
@FlakyTest(bugId = 178015460)
class CloseImeAutoOpenWindowToAppTest(
    testSpec: FlickerTestRunnerFactory.TestSpec
) : FlickerTestRunner(testSpec) {
@@ -66,7 +62,7 @@ class CloseImeAutoOpenWindowToAppTest(
                .buildTest(instrumentation, repetitions = 5) { configuration ->
                    val testApp = ImeAppAutoFocusHelper(instrumentation,
                        configuration.startRotation)
                    withTestName { buildTestTag("imeToAppAutoOpen", configuration) }
                    withTestName { buildTestTag(configuration) }
                    repeat { configuration.repetitions }
                    setup {
                        test {
@@ -89,11 +85,14 @@ class CloseImeAutoOpenWindowToAppTest(
                        testApp.closeIME(device, wmHelper)
                    }
                    assertions {
                        val isRotated = configuration.startRotation.isRotated()

                        postsubmit {
                            windowManagerTrace {
                                navBarWindowIsAlwaysVisible()
                                statusBarWindowIsAlwaysVisible()
                            visibleWindowsShownMoreThanOneConsecutiveEntry(listOf("InputMethod"))

                                visibleWindowsShownMoreThanOneConsecutiveEntry(
                                    listOf(IME_WINDOW_TITLE))
                                imeAppWindowIsAlwaysVisible(testApp)
                            }

@@ -101,14 +100,24 @@ class CloseImeAutoOpenWindowToAppTest(
                                navBarLayerIsAlwaysVisible()
                                statusBarLayerIsAlwaysVisible()
                                noUncoveredRegions(configuration.startRotation)
                            navBarLayerRotatesAndScales(configuration.startRotation,
                                enabled = !configuration.startRotation.isRotated())
                            statusBarLayerRotatesScales(configuration.startRotation,
                                enabled = !configuration.startRotation.isRotated())
                            visibleLayersShownMoreThanOneConsecutiveEntry()

                                imeLayerBecomesInvisible()
                                imeAppLayerIsAlwaysVisible(testApp)
                                if (!isRotated) {
                                    navBarLayerRotatesAndScales(configuration.startRotation)
                                    statusBarLayerRotatesScales(configuration.startRotation)
                                }
                            }
                        }

                        flaky {
                            layersTrace {
                                visibleLayersShownMoreThanOneConsecutiveEntry()

                                if (isRotated) {
                                    navBarLayerRotatesAndScales(configuration.startRotation)
                                    statusBarLayerRotatesScales(configuration.startRotation)
                                }
                            }
                        }
                    }
                }
+42 −26
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@

package com.android.server.wm.flicker.ime

import android.platform.test.annotations.Presubmit
import android.view.Surface
import androidx.test.filters.RequiresDevice
import androidx.test.platform.app.InstrumentationRegistry
@@ -47,7 +46,6 @@ import org.junit.runners.Parameterized
 * Test IME window closing back to app window transitions.
 * To run this test: `atest FlickerTests:CloseImeAutoOpenWindowToHomeTest`
 */
@Presubmit
@RequiresDevice
@RunWith(Parameterized::class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
@@ -65,7 +63,7 @@ class CloseImeAutoOpenWindowToHomeTest(
                    val testApp = ImeAppAutoFocusHelper(instrumentation,
                        configuration.startRotation)
                    withTestName {
                        buildTestTag("imeToHomeAutoOpen", configuration)
                        buildTestTag(configuration)
                    }
                    repeat { configuration.repetitions }
                    setup {
@@ -90,10 +88,14 @@ class CloseImeAutoOpenWindowToHomeTest(
                        wmHelper.waitImeWindowGone()
                    }
                    assertions {
                        val isRotated = configuration.startRotation.isRotated()

                        presubmit {
                            windowManagerTrace {
                                navBarWindowIsAlwaysVisible()
                                statusBarWindowIsAlwaysVisible()
                            visibleWindowsShownMoreThanOneConsecutiveEntry(listOf(IME_WINDOW_TITLE))
                                visibleWindowsShownMoreThanOneConsecutiveEntry(
                                    listOf(IME_WINDOW_TITLE))

                                imeWindowBecomesInvisible()
                                imeAppWindowBecomesInvisible(testApp)
@@ -101,21 +103,35 @@ class CloseImeAutoOpenWindowToHomeTest(

                            layersTrace {
                                noUncoveredRegions(configuration.startRotation, Surface.ROTATION_0)
                                imeLayerBecomesInvisible()
                                imeAppLayerBecomesInvisible(testApp)

                                if (!isRotated) {
                                    navBarLayerRotatesAndScales(configuration.startRotation,
                                Surface.ROTATION_0,
                                enabled = !configuration.startRotation.isRotated())
                                        Surface.ROTATION_0)
                                    statusBarLayerRotatesScales(configuration.startRotation,
                                Surface.ROTATION_0,
                                enabled = !configuration.startRotation.isRotated())
                            navBarLayerIsAlwaysVisible(
                                enabled = !configuration.startRotation.isRotated())
                            statusBarLayerIsAlwaysVisible(
                                enabled = !configuration.startRotation.isRotated())
                            visibleLayersShownMoreThanOneConsecutiveEntry(listOf(IME_WINDOW_TITLE),
                                enabled = !configuration.startRotation.isRotated())
                                        Surface.ROTATION_0)
                                    navBarLayerIsAlwaysVisible()
                                    statusBarLayerIsAlwaysVisible()
                                    visibleLayersShownMoreThanOneConsecutiveEntry(
                                        listOf(IME_WINDOW_TITLE))
                                }
                            }
                        }

                            imeLayerBecomesInvisible()
                            imeAppLayerBecomesInvisible(testApp)
                        flaky {
                            layersTrace {
                                if (isRotated) {
                                    navBarLayerRotatesAndScales(configuration.startRotation,
                                        Surface.ROTATION_0)
                                    statusBarLayerRotatesScales(configuration.startRotation,
                                        Surface.ROTATION_0)
                                    navBarLayerIsAlwaysVisible()
                                    statusBarLayerIsAlwaysVisible()
                                    visibleLayersShownMoreThanOneConsecutiveEntry(
                                        listOf(IME_WINDOW_TITLE))
                                }
                            }
                        }
                    }
                }
+19 −22
Original line number Diff line number Diff line
@@ -16,8 +16,6 @@

package com.android.server.wm.flicker.ime

import androidx.test.filters.FlakyTest
import android.platform.test.annotations.Presubmit
import android.view.Surface
import androidx.test.filters.RequiresDevice
import androidx.test.platform.app.InstrumentationRegistry
@@ -47,11 +45,9 @@ import org.junit.runners.Parameterized
 * Test IME window closing back to app window transitions.
 * To run this test: `atest FlickerTests:CloseImeWindowToAppTest`
 */
@Presubmit
@RequiresDevice
@RunWith(Parameterized::class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
@FlakyTest(bugId = 178015460)
class CloseImeWindowToAppTest(
    testSpec: FlickerTestRunnerFactory.TestSpec
) : FlickerTestRunner(testSpec) {
@@ -64,7 +60,7 @@ class CloseImeWindowToAppTest(
            val testApp = ImeAppHelper(instrumentation)
            return FlickerTestRunnerFactory.getInstance()
                .buildTest(instrumentation, repetitions = 5) { configuration ->
                    withTestName { buildTestTag("imeToApp", configuration) }
                    withTestName { buildTestTag(configuration) }
                    repeat { configuration.repetitions }
                    setup {
                        test {
@@ -86,11 +82,12 @@ class CloseImeWindowToAppTest(
                        testApp.closeIME(device, wmHelper)
                    }
                    assertions {
                        postsubmit {
                            windowManagerTrace {
                                navBarWindowIsAlwaysVisible()
                                statusBarWindowIsAlwaysVisible()
                            visibleWindowsShownMoreThanOneConsecutiveEntry(listOf("InputMethod"))

                                visibleWindowsShownMoreThanOneConsecutiveEntry(
                                    listOf(IME_WINDOW_TITLE))
                                imeAppWindowIsAlwaysVisible(testApp)
                            }

@@ -101,7 +98,6 @@ class CloseImeWindowToAppTest(
                                navBarLayerRotatesAndScales(configuration.startRotation)
                                statusBarLayerRotatesScales(configuration.startRotation)
                                visibleLayersShownMoreThanOneConsecutiveEntry()

                                imeLayerBecomesInvisible()
                                imeAppLayerIsAlwaysVisible(testApp)
                            }
@@ -110,3 +106,4 @@ class CloseImeWindowToAppTest(
                }
        }
    }
}
 No newline at end of file
+38 −26
Original line number Diff line number Diff line
@@ -16,8 +16,6 @@

package com.android.server.wm.flicker.ime

import androidx.test.filters.FlakyTest
import android.platform.test.annotations.Presubmit
import android.view.Surface
import androidx.test.filters.RequiresDevice
import androidx.test.platform.app.InstrumentationRegistry
@@ -47,11 +45,9 @@ import org.junit.runners.Parameterized
 * Test IME window closing to home transitions.
 * To run this test: `atest FlickerTests:CloseImeWindowToHomeTest`
 */
@Presubmit
@RequiresDevice
@RunWith(Parameterized::class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
@FlakyTest(bugId = 178015460)
class CloseImeWindowToHomeTest(
    testSpec: FlickerTestRunnerFactory.TestSpec
) : FlickerTestRunner(testSpec) {
@@ -63,7 +59,7 @@ class CloseImeWindowToHomeTest(
            val testApp = ImeAppHelper(instrumentation)
            return FlickerTestRunnerFactory.getInstance()
                .buildTest(instrumentation, repetitions = 5) { configuration ->
                    withTestName { buildTestTag("imeToHome", configuration) }
                    withTestName { buildTestTag(configuration) }
                    repeat { configuration.repetitions }
                    setup {
                        test {
@@ -91,31 +87,47 @@ class CloseImeWindowToHomeTest(
                        }
                    }
                    assertions {
                        val isRotated = configuration.startRotation.isRotated()

                        postsubmit {
                            windowManagerTrace {
                                navBarWindowIsAlwaysVisible()
                                statusBarWindowIsAlwaysVisible()
                            visibleWindowsShownMoreThanOneConsecutiveEntry(listOf(IME_WINDOW_TITLE))

                                visibleWindowsShownMoreThanOneConsecutiveEntry(
                                    listOf(IME_WINDOW_TITLE))
                                imeWindowBecomesInvisible()
                                imeAppWindowBecomesInvisible(testApp)
                            }

                            layersTrace {
                                navBarLayerIsAlwaysVisible()
                                statusBarLayerIsAlwaysVisible()
                                imeLayerBecomesInvisible()
                                imeAppLayerBecomesInvisible(testApp)
                                noUncoveredRegions(configuration.startRotation,
                                    Surface.ROTATION_0)

                                if (!isRotated) {
                                    navBarLayerRotatesAndScales(configuration.startRotation,
                                Surface.ROTATION_0,
                                enabled = !configuration.startRotation.isRotated())
                                        Surface.ROTATION_0)
                                    statusBarLayerRotatesScales(configuration.startRotation,
                                Surface.ROTATION_0,
                                enabled = !configuration.startRotation.isRotated())
                            navBarLayerIsAlwaysVisible()
                            statusBarLayerIsAlwaysVisible()
                            visibleLayersShownMoreThanOneConsecutiveEntry(listOf(IME_WINDOW_TITLE),
                                enabled = false)
                                        Surface.ROTATION_0)
                                }
                            }
                        }

                            imeLayerBecomesInvisible()
                            imeAppLayerBecomesInvisible(testApp)
                        flaky {
                            layersTrace {
                                visibleLayersShownMoreThanOneConsecutiveEntry(
                                    listOf(IME_WINDOW_TITLE))

                                if (isRotated) {
                                    navBarLayerRotatesAndScales(configuration.startRotation,
                                        Surface.ROTATION_0)
                                    statusBarLayerRotatesScales(configuration.startRotation,
                                        Surface.ROTATION_0)
                                }
                            }
                        }
                    }
                }
+28 −52
Original line number Diff line number Diff line
@@ -17,106 +17,82 @@
package com.android.server.wm.flicker.ime

import android.platform.helpers.IAppHelper
import com.android.server.wm.flicker.dsl.LayersAssertionBuilderLegacy
import com.android.server.wm.flicker.dsl.WmAssertionBuilderLegacy
import com.android.server.wm.flicker.dsl.LayersAssertionBuilder
import com.android.server.wm.flicker.dsl.WmAssertionBuilder

const val IME_WINDOW_TITLE = "InputMethod"

@JvmOverloads
fun LayersAssertionBuilderLegacy.imeLayerBecomesVisible(
    bugId: Int = 0,
    enabled: Boolean = bugId == 0
) {
    all("imeLayerBecomesVisible", bugId, enabled) {
fun LayersAssertionBuilder.imeLayerBecomesVisible(bugId: Int = 0) {
    all("imeLayerBecomesVisible", bugId) {
        this.hidesLayer(IME_WINDOW_TITLE)
                .then()
                .showsLayer(IME_WINDOW_TITLE)
    }
}

fun LayersAssertionBuilderLegacy.imeLayerBecomesInvisible(
    bugId: Int = 0,
    enabled: Boolean = bugId == 0
) {
    all("imeLayerBecomesInvisible", bugId, enabled) {
@JvmOverloads
fun LayersAssertionBuilder.imeLayerBecomesInvisible(bugId: Int = 0) {
    all("imeLayerBecomesInvisible", bugId) {
        this.showsLayer(IME_WINDOW_TITLE)
                .then()
                .hidesLayer(IME_WINDOW_TITLE)
    }
}

fun LayersAssertionBuilderLegacy.imeAppLayerIsAlwaysVisible(
    testApp: IAppHelper,
    bugId: Int = 0,
    enabled: Boolean = bugId == 0
) {
    all("imeAppLayerIsAlwaysVisible", bugId, enabled) {
@JvmOverloads
fun LayersAssertionBuilder.imeAppLayerIsAlwaysVisible(testApp: IAppHelper, bugId: Int = 0) {
    all("imeAppLayerIsAlwaysVisible", bugId) {
        this.showsLayer(testApp.getPackage())
    }
}

fun WmAssertionBuilderLegacy.imeAppWindowIsAlwaysVisible(
    testApp: IAppHelper,
    bugId: Int = 0,
    enabled: Boolean = bugId == 0
) {
    all("imeAppWindowIsAlwaysVisible", bugId, enabled) {
@JvmOverloads
fun WmAssertionBuilder.imeAppWindowIsAlwaysVisible(testApp: IAppHelper, bugId: Int = 0) {
    all("imeAppWindowIsAlwaysVisible", bugId) {
        this.showsAppWindowOnTop(testApp.getPackage())
    }
}

fun WmAssertionBuilderLegacy.imeWindowBecomesVisible(
    bugId: Int = 0,
    enabled: Boolean = bugId == 0
) {
    all("imeWindowBecomesVisible", bugId, enabled) {
@JvmOverloads
fun WmAssertionBuilder.imeWindowBecomesVisible(bugId: Int = 0) {
    all("imeWindowBecomesVisible", bugId) {
        this.hidesNonAppWindow(IME_WINDOW_TITLE)
                .then()
                .showsNonAppWindow(IME_WINDOW_TITLE)
    }
}

fun WmAssertionBuilderLegacy.imeWindowBecomesInvisible(
    bugId: Int = 0,
    enabled: Boolean = bugId == 0
) {
    all("imeWindowBecomesInvisible", bugId, enabled) {
@JvmOverloads
fun WmAssertionBuilder.imeWindowBecomesInvisible(bugId: Int = 0) {
    all("imeWindowBecomesInvisible", bugId) {
        this.showsNonAppWindow(IME_WINDOW_TITLE)
                .then()
                .hidesNonAppWindow(IME_WINDOW_TITLE)
    }
}

fun WmAssertionBuilderLegacy.imeAppWindowBecomesVisible(
    windowName: String,
    bugId: Int = 0,
    enabled: Boolean = bugId == 0
) {
    all("imeAppWindowBecomesVisible", bugId, enabled) {
@JvmOverloads
fun WmAssertionBuilder.imeAppWindowBecomesVisible(windowName: String, bugId: Int = 0) {
    all("imeAppWindowBecomesVisible", bugId) {
        this.hidesAppWindow(windowName)
                .then()
                .showsAppWindow(windowName)
    }
}

fun WmAssertionBuilderLegacy.imeAppWindowBecomesInvisible(
    testApp: IAppHelper,
    bugId: Int = 0,
    enabled: Boolean = bugId == 0
) {
    all("imeAppWindowBecomesInvisible", bugId, enabled) {
@JvmOverloads
fun WmAssertionBuilder.imeAppWindowBecomesInvisible(testApp: IAppHelper, bugId: Int = 0) {
    all("imeAppWindowBecomesInvisible", bugId) {
        this.showsAppWindowOnTop(testApp.getPackage())
                .then()
                .appWindowNotOnTop(testApp.getPackage())
    }
}

fun LayersAssertionBuilderLegacy.imeAppLayerBecomesInvisible(
    testApp: IAppHelper,
    bugId: Int = 0,
    enabled: Boolean = bugId == 0
) {
    all("imeAppLayerBecomesInvisible", bugId, enabled) {
@JvmOverloads
fun LayersAssertionBuilder.imeAppLayerBecomesInvisible(testApp: IAppHelper, bugId: Int = 0) {
    all("imeAppLayerBecomesInvisible", bugId) {
        this.skipUntilFirstAssertion()
                .showsLayer(testApp.getPackage())
                .then()
Loading