Loading tests/FlickerTests/src/com/android/server/wm/flicker/CommonAssertions.kt +33 −13 Original line number Diff line number Diff line Loading @@ -19,6 +19,8 @@ package com.android.server.wm.flicker import android.tools.common.PlatformConsts import android.tools.common.Position import android.tools.common.flicker.subject.layers.LayerTraceEntrySubject import android.tools.common.flicker.subject.region.RegionSubject import android.tools.common.traces.component.ComponentNameMatcher import android.tools.common.traces.component.IComponentNameMatcher Loading Loading @@ -169,12 +171,7 @@ fun LegacyFlickerTest.statusBarLayerIsVisibleAtStartAndEnd() { */ fun LegacyFlickerTest.navBarLayerPositionAtStart() { assertLayersStart { val display = this.entry.displays.firstOrNull { !it.isVirtual } ?: error("There is no display!") this.visibleRegion(ComponentNameMatcher.NAV_BAR) .coversExactly( WindowUtils.getNavigationBarPosition(display, scenario.isGesturalNavigation) ) assertNavBarPosition(this, scenario.isGesturalNavigation) } } Loading @@ -184,13 +181,36 @@ fun LegacyFlickerTest.navBarLayerPositionAtStart() { */ fun LegacyFlickerTest.navBarLayerPositionAtEnd() { assertLayersEnd { assertNavBarPosition(this, scenario.isGesturalNavigation) } } private fun assertNavBarPosition(sfState: LayerTraceEntrySubject, isGesturalNavigation: Boolean) { val display = this.entry.displays.minByOrNull { it.id } ?: throw RuntimeException("There is no display!") this.visibleRegion(ComponentNameMatcher.NAV_BAR) .coversExactly( WindowUtils.getNavigationBarPosition(display, scenario.isGesturalNavigation) ) sfState.entry.displays.filterNot { it.isOff }.minByOrNull { it.id } ?: error("There is no display!") val displayArea = display.layerStackSpace val navBarPosition = display.navBarPosition(isGesturalNavigation) val navBarRegion = sfState.visibleRegion(ComponentNameMatcher.NAV_BAR) when (navBarPosition) { Position.TOP -> navBarRegion.hasSameTopPosition(displayArea) .hasSameLeftPosition(displayArea) .hasSameRightPosition(displayArea) Position.BOTTOM -> navBarRegion.hasSameBottomPosition(displayArea) .hasSameLeftPosition(displayArea) .hasSameRightPosition(displayArea) Position.LEFT -> navBarRegion.hasSameLeftPosition(displayArea) .hasSameTopPosition(displayArea) .hasSameBottomPosition(displayArea) Position.RIGHT -> navBarRegion.hasSameRightPosition(displayArea) .hasSameTopPosition(displayArea) .hasSameBottomPosition(displayArea) else -> error("Unknown position $navBarPosition") } } Loading Loading
tests/FlickerTests/src/com/android/server/wm/flicker/CommonAssertions.kt +33 −13 Original line number Diff line number Diff line Loading @@ -19,6 +19,8 @@ package com.android.server.wm.flicker import android.tools.common.PlatformConsts import android.tools.common.Position import android.tools.common.flicker.subject.layers.LayerTraceEntrySubject import android.tools.common.flicker.subject.region.RegionSubject import android.tools.common.traces.component.ComponentNameMatcher import android.tools.common.traces.component.IComponentNameMatcher Loading Loading @@ -169,12 +171,7 @@ fun LegacyFlickerTest.statusBarLayerIsVisibleAtStartAndEnd() { */ fun LegacyFlickerTest.navBarLayerPositionAtStart() { assertLayersStart { val display = this.entry.displays.firstOrNull { !it.isVirtual } ?: error("There is no display!") this.visibleRegion(ComponentNameMatcher.NAV_BAR) .coversExactly( WindowUtils.getNavigationBarPosition(display, scenario.isGesturalNavigation) ) assertNavBarPosition(this, scenario.isGesturalNavigation) } } Loading @@ -184,13 +181,36 @@ fun LegacyFlickerTest.navBarLayerPositionAtStart() { */ fun LegacyFlickerTest.navBarLayerPositionAtEnd() { assertLayersEnd { assertNavBarPosition(this, scenario.isGesturalNavigation) } } private fun assertNavBarPosition(sfState: LayerTraceEntrySubject, isGesturalNavigation: Boolean) { val display = this.entry.displays.minByOrNull { it.id } ?: throw RuntimeException("There is no display!") this.visibleRegion(ComponentNameMatcher.NAV_BAR) .coversExactly( WindowUtils.getNavigationBarPosition(display, scenario.isGesturalNavigation) ) sfState.entry.displays.filterNot { it.isOff }.minByOrNull { it.id } ?: error("There is no display!") val displayArea = display.layerStackSpace val navBarPosition = display.navBarPosition(isGesturalNavigation) val navBarRegion = sfState.visibleRegion(ComponentNameMatcher.NAV_BAR) when (navBarPosition) { Position.TOP -> navBarRegion.hasSameTopPosition(displayArea) .hasSameLeftPosition(displayArea) .hasSameRightPosition(displayArea) Position.BOTTOM -> navBarRegion.hasSameBottomPosition(displayArea) .hasSameLeftPosition(displayArea) .hasSameRightPosition(displayArea) Position.LEFT -> navBarRegion.hasSameLeftPosition(displayArea) .hasSameTopPosition(displayArea) .hasSameBottomPosition(displayArea) Position.RIGHT -> navBarRegion.hasSameRightPosition(displayArea) .hasSameTopPosition(displayArea) .hasSameBottomPosition(displayArea) else -> error("Unknown position $navBarPosition") } } Loading