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

Commit 9f44d999 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Update IME tests to new DSL format" into sc-dev

parents a9048d72 3f3b0b3a
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