Loading tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeAutoOpenWindowToAppTest.kt +30 −21 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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) { Loading @@ -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 { Loading @@ -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) } Loading @@ -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) } } } } } Loading tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeAutoOpenWindowToHomeTest.kt +42 −26 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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) Loading @@ -65,7 +63,7 @@ class CloseImeAutoOpenWindowToHomeTest( val testApp = ImeAppAutoFocusHelper(instrumentation, configuration.startRotation) withTestName { buildTestTag("imeToHomeAutoOpen", configuration) buildTestTag(configuration) } repeat { configuration.repetitions } setup { Loading @@ -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) Loading @@ -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)) } } } } } Loading tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeWindowToAppTest.kt +19 −22 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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) { Loading @@ -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 { Loading @@ -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) } Loading @@ -101,7 +98,6 @@ class CloseImeWindowToAppTest( navBarLayerRotatesAndScales(configuration.startRotation) statusBarLayerRotatesScales(configuration.startRotation) visibleLayersShownMoreThanOneConsecutiveEntry() imeLayerBecomesInvisible() imeAppLayerIsAlwaysVisible(testApp) } Loading @@ -110,3 +106,4 @@ class CloseImeWindowToAppTest( } } } } No newline at end of file tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeWindowToHomeTest.kt +38 −26 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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) { Loading @@ -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 { Loading Loading @@ -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) } } } } } Loading tests/FlickerTests/src/com/android/server/wm/flicker/ime/CommonAssertions.kt +28 −52 Original line number Diff line number Diff line Loading @@ -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 Loading
tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeAutoOpenWindowToAppTest.kt +30 −21 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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) { Loading @@ -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 { Loading @@ -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) } Loading @@ -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) } } } } } Loading
tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeAutoOpenWindowToHomeTest.kt +42 −26 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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) Loading @@ -65,7 +63,7 @@ class CloseImeAutoOpenWindowToHomeTest( val testApp = ImeAppAutoFocusHelper(instrumentation, configuration.startRotation) withTestName { buildTestTag("imeToHomeAutoOpen", configuration) buildTestTag(configuration) } repeat { configuration.repetitions } setup { Loading @@ -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) Loading @@ -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)) } } } } } Loading
tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeWindowToAppTest.kt +19 −22 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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) { Loading @@ -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 { Loading @@ -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) } Loading @@ -101,7 +98,6 @@ class CloseImeWindowToAppTest( navBarLayerRotatesAndScales(configuration.startRotation) statusBarLayerRotatesScales(configuration.startRotation) visibleLayersShownMoreThanOneConsecutiveEntry() imeLayerBecomesInvisible() imeAppLayerIsAlwaysVisible(testApp) } Loading @@ -110,3 +106,4 @@ class CloseImeWindowToAppTest( } } } } No newline at end of file
tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeWindowToHomeTest.kt +38 −26 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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) { Loading @@ -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 { Loading Loading @@ -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) } } } } } Loading
tests/FlickerTests/src/com/android/server/wm/flicker/ime/CommonAssertions.kt +28 −52 Original line number Diff line number Diff line Loading @@ -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