diff options
Diffstat (limited to 'tests')
28 files changed, 528 insertions, 144 deletions
diff --git a/tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/rotation/RotationTransition.kt b/tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/rotation/RotationTransition.kt index ee2c05e82d51..06326f8cc8d2 100644 --- a/tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/rotation/RotationTransition.kt +++ b/tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/rotation/RotationTransition.kt @@ -36,7 +36,7 @@ abstract class RotationTransition(flicker: LegacyFlickerTest) : ActivityEmbeddin teardown { testApp.exit(wmHelper) } transitions { this.setRotation(flicker.scenario.endRotation) - if (!flicker.scenario.isTablet) { + if (!usesTaskbar) { wmHelper.StateSyncBuilder() .add(navBarInPosition(flicker.scenario.isGesturalNavigation)) .waitForAndVerify() diff --git a/tests/FlickerTests/AppClose/Android.bp b/tests/FlickerTests/AppClose/Android.bp index d14a178fe316..8b45740aad7b 100644 --- a/tests/FlickerTests/AppClose/Android.bp +++ b/tests/FlickerTests/AppClose/Android.bp @@ -33,3 +33,34 @@ android_test { static_libs: ["FlickerTestsBase"], data: ["trace_config/*"], } + +//////////////////////////////////////////////////////////////////////////////// +// Begin breakdowns for FlickerTestsAppClose module + +test_module_config { + name: "FlickerTestsAppClose-CatchAll", + base: "FlickerTestsAppClose", + exclude_filters: [ + "com.android.server.wm.flicker.close.CloseAppBackButtonTest", + "com.android.server.wm.flicker.close.CloseAppHomeButtonTest", + "com.android.server.wm.flicker.close.", + ], + test_suites: ["device-tests"], +} + +test_module_config { + name: "FlickerTestsAppClose-CloseAppBackButtonTest", + base: "FlickerTestsAppClose", + include_filters: ["com.android.server.wm.flicker.close.CloseAppBackButtonTest"], + test_suites: ["device-tests"], +} + +test_module_config { + name: "FlickerTestsAppClose-CloseAppHomeButtonTest", + base: "FlickerTestsAppClose", + include_filters: ["com.android.server.wm.flicker.close.CloseAppHomeButtonTest"], + test_suites: ["device-tests"], +} + +// End breakdowns for FlickerTestsAppClose module +//////////////////////////////////////////////////////////////////////////////// diff --git a/tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/OpenAppFromLockscreenViaIntentTest.kt b/tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/OpenAppFromLockscreenViaIntentTest.kt index 44ae27c2ee4b..adeba72c9c96 100644 --- a/tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/OpenAppFromLockscreenViaIntentTest.kt +++ b/tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/OpenAppFromLockscreenViaIntentTest.kt @@ -75,7 +75,7 @@ open class OpenAppFromLockscreenViaIntentTest(flicker: LegacyFlickerTest) : @FlakyTest(bugId = 288341660) @Test fun navBarLayerVisibilityChanges() { - Assume.assumeFalse(flicker.scenario.isTablet) + Assume.assumeFalse(usesTaskbar) flicker.assertLayers { this.isInvisible(ComponentNameMatcher.NAV_BAR) .then() @@ -97,7 +97,7 @@ open class OpenAppFromLockscreenViaIntentTest(flicker: LegacyFlickerTest) : @FlakyTest(bugId = 293581770) @Test fun navBarWindowsVisibilityChanges() { - Assume.assumeFalse(flicker.scenario.isTablet) + Assume.assumeFalse(usesTaskbar) flicker.assertWm { this.isNonAppWindowInvisible(ComponentNameMatcher.NAV_BAR) .then() @@ -112,7 +112,7 @@ open class OpenAppFromLockscreenViaIntentTest(flicker: LegacyFlickerTest) : @Presubmit @Test fun taskBarLayerIsVisibleAtEnd() { - Assume.assumeTrue(flicker.scenario.isTablet) + Assume.assumeTrue(usesTaskbar) flicker.assertLayersEnd { this.isVisible(ComponentNameMatcher.TASK_BAR) } } @@ -170,7 +170,7 @@ open class OpenAppFromLockscreenViaIntentTest(flicker: LegacyFlickerTest) : @Presubmit @Test fun navBarLayerIsVisibleAtEnd() { - Assume.assumeFalse(flicker.scenario.isTablet) + Assume.assumeFalse(usesTaskbar) flicker.assertLayersEnd { this.isVisible(ComponentNameMatcher.NAV_BAR) } } @@ -184,7 +184,7 @@ open class OpenAppFromLockscreenViaIntentTest(flicker: LegacyFlickerTest) : @Presubmit @Test override fun appLayerBecomesVisible() { - Assume.assumeFalse(flicker.scenario.isTablet) + Assume.assumeFalse(usesTaskbar) super.appLayerBecomesVisible() } @@ -192,7 +192,7 @@ open class OpenAppFromLockscreenViaIntentTest(flicker: LegacyFlickerTest) : @FlakyTest(bugId = 227143265) @Test fun appLayerBecomesVisibleTablet() { - Assume.assumeTrue(flicker.scenario.isTablet) + Assume.assumeTrue(usesTaskbar) super.appLayerBecomesVisible() } diff --git a/tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/common/OpenAppFromIconTransition.kt b/tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/common/OpenAppFromIconTransition.kt index 8a3304b0343d..b497e3048759 100644 --- a/tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/common/OpenAppFromIconTransition.kt +++ b/tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/common/OpenAppFromIconTransition.kt @@ -28,6 +28,7 @@ abstract class OpenAppFromIconTransition(flicker: LegacyFlickerTest) : get() = { super.transition(this) setup { + // By default, launcher doesn't rotate on phones, but rotates on tablets if (flicker.scenario.isTablet) { tapl.setExpectedRotation(flicker.scenario.startRotation.value) } else { diff --git a/tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/common/OpenAppFromLockscreenTransition.kt b/tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/common/OpenAppFromLockscreenTransition.kt index f8fd35860f6f..a6e31d49a0e8 100644 --- a/tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/common/OpenAppFromLockscreenTransition.kt +++ b/tests/FlickerTests/AppLaunch/src/com/android/server/wm/flicker/launch/common/OpenAppFromLockscreenTransition.kt @@ -103,7 +103,7 @@ abstract class OpenAppFromLockscreenTransition(flicker: LegacyFlickerTest) : @Presubmit @Test open fun navBarLayerPositionAtEnd() { - Assume.assumeFalse(flicker.scenario.isTablet) + Assume.assumeFalse(usesTaskbar) flicker.navBarLayerPositionAtEnd() } diff --git a/tests/FlickerTests/IME/Android.bp b/tests/FlickerTests/IME/Android.bp index 78d93e1cb32a..f80e6b4b2f5e 100644 --- a/tests/FlickerTests/IME/Android.bp +++ b/tests/FlickerTests/IME/Android.bp @@ -24,6 +24,9 @@ package { default_applicable_licenses: ["frameworks_base_license"], } +//////////////////////////////////////////////////////////////////////////////// +// Begin to cleanup after CL merges + filegroup { name: "FlickerTestsImeCommon-src", srcs: ["src/**/common/*"], @@ -39,6 +42,9 @@ filegroup { srcs: ["src/**/ShowImeOnAppStart*"], } +// End to cleanup after CL merges +//////////////////////////////////////////////////////////////////////////////// + android_test { name: "FlickerTestsIme", defaults: ["FlickerTestsDefault"], @@ -53,6 +59,9 @@ android_test { data: ["trace_config/*"], } +//////////////////////////////////////////////////////////////////////////////// +// Begin to cleanup after CL merges + java_library { name: "FlickerTestsImeCommon", defaults: ["FlickerTestsDefault"], @@ -107,3 +116,140 @@ android_test { ], data: ["trace_config/*"], } + +// End to cleanup after CL merges +//////////////////////////////////////////////////////////////////////////////// + +//////////////////////////////////////////////////////////////////////////////// +// Begin breakdowns for FlickerTestsIme module + +test_module_config { + name: "FlickerTestsIme-CatchAll", + base: "FlickerTestsIme", + exclude_filters: [ + "com.android.server.wm.flicker.ime.CloseImeOnDismissPopupDialogTest", + "com.android.server.wm.flicker.ime.CloseImeOnGoHomeTest", + "com.android.server.wm.flicker.ime.CloseImeShownOnAppStartOnGoHomeTest", + "com.android.server.wm.flicker.ime.CloseImeShownOnAppStartToAppOnPressBackTest", + "com.android.server.wm.flicker.ime.CloseImeToAppOnPressBackTest", + "com.android.server.wm.flicker.ime.CloseImeToHomeOnFinishActivityTest", + "com.android.server.wm.flicker.ime.OpenImeWindowToFixedPortraitAppTest", + "com.android.server.wm.flicker.ime.ShowImeOnAppStartWhenLaunchingAppFromFixedOrientationTest", + "com.android.server.wm.flicker.ime.ShowImeOnAppStartWhenLaunchingAppFromOverviewTest", + "com.android.server.wm.flicker.ime.ShowImeOnAppStartWhenLaunchingAppFromQuickSwitchTest", + "com.android.server.wm.flicker.ime.ShowImeOnAppStartWhenLaunchingAppTest", + "com.android.server.wm.flicker.ime.ShowImeOnUnlockScreenTest", + "com.android.server.wm.flicker.ime.ShowImeWhenFocusingOnInputFieldTest", + "com.android.server.wm.flicker.ime.ShowImeWhileDismissingThemedPopupDialogTest", + "com.android.server.wm.flicker.ime.ShowImeWhileEnteringOverviewTest", + ], + test_suites: ["device-tests"], +} + +test_module_config { + name: "FlickerTestsIme-CloseImeOnDismissPopupDialogTest", + base: "FlickerTestsIme", + include_filters: ["com.android.server.wm.flicker.ime.CloseImeOnDismissPopupDialogTest"], + test_suites: ["device-tests"], +} + +test_module_config { + name: "FlickerTestsIme-CloseImeOnGoHomeTest", + base: "FlickerTestsIme", + include_filters: ["com.android.server.wm.flicker.ime.CloseImeOnGoHomeTest"], + test_suites: ["device-tests"], +} + +test_module_config { + name: "FlickerTestsIme-CloseImeShownOnAppStartOnGoHomeTest", + base: "FlickerTestsIme", + include_filters: ["com.android.server.wm.flicker.ime.CloseImeShownOnAppStartOnGoHomeTest"], + test_suites: ["device-tests"], +} + +test_module_config { + name: "FlickerTestsIme-CloseImeShownOnAppStartToAppOnPressBackTest", + base: "FlickerTestsIme", + include_filters: ["com.android.server.wm.flicker.ime.CloseImeShownOnAppStartToAppOnPressBackTest"], + test_suites: ["device-tests"], +} + +test_module_config { + name: "FlickerTestsIme-CloseImeToAppOnPressBackTest", + base: "FlickerTestsIme", + include_filters: ["com.android.server.wm.flicker.ime.CloseImeToAppOnPressBackTest"], + test_suites: ["device-tests"], +} + +test_module_config { + name: "FlickerTestsIme-CloseImeToHomeOnFinishActivityTest", + base: "FlickerTestsIme", + include_filters: ["com.android.server.wm.flicker.ime.CloseImeToHomeOnFinishActivityTest"], + test_suites: ["device-tests"], +} + +test_module_config { + name: "FlickerTestsIme-OpenImeWindowToFixedPortraitAppTest", + base: "FlickerTestsIme", + include_filters: ["com.android.server.wm.flicker.ime.OpenImeWindowToFixedPortraitAppTest"], + test_suites: ["device-tests"], +} + +test_module_config { + name: "FlickerTestsIme-ShowImeOnAppStartWhenLaunchingAppFromFixedOrientationTest", + base: "FlickerTestsIme", + include_filters: ["com.android.server.wm.flicker.ime.ShowImeOnAppStartWhenLaunchingAppFromFixedOrientationTest"], + test_suites: ["device-tests"], +} + +test_module_config { + name: "FlickerTestsIme-ShowImeOnAppStartWhenLaunchingAppFromOverviewTest", + base: "FlickerTestsIme", + include_filters: ["com.android.server.wm.flicker.ime.ShowImeOnAppStartWhenLaunchingAppFromOverviewTest"], + test_suites: ["device-tests"], +} + +test_module_config { + name: "FlickerTestsIme-ShowImeOnAppStartWhenLaunchingAppFromQuickSwitchTest", + base: "FlickerTestsIme", + include_filters: ["com.android.server.wm.flicker.ime.ShowImeOnAppStartWhenLaunchingAppFromQuickSwitchTest"], + test_suites: ["device-tests"], +} + +test_module_config { + name: "FlickerTestsIme-ShowImeOnAppStartWhenLaunchingAppTest", + base: "FlickerTestsIme", + include_filters: ["com.android.server.wm.flicker.ime.ShowImeOnAppStartWhenLaunchingAppTest"], + test_suites: ["device-tests"], +} + +test_module_config { + name: "FlickerTestsIme-ShowImeOnUnlockScreenTest", + base: "FlickerTestsIme", + include_filters: ["com.android.server.wm.flicker.ime.ShowImeOnUnlockScreenTest"], + test_suites: ["device-tests"], +} + +test_module_config { + name: "FlickerTestsIme-ShowImeWhenFocusingOnInputFieldTest", + base: "FlickerTestsIme", + include_filters: ["com.android.server.wm.flicker.ime.ShowImeWhenFocusingOnInputFieldTest"], + test_suites: ["device-tests"], +} + +test_module_config { + name: "FlickerTestsIme-ShowImeWhileDismissingThemedPopupDialogTest", + base: "FlickerTestsIme", + include_filters: ["com.android.server.wm.flicker.ime.ShowImeWhileDismissingThemedPopupDialogTest"], + test_suites: ["device-tests"], +} + +test_module_config { + name: "FlickerTestsIme-ShowImeWhileEnteringOverviewTest", + base: "FlickerTestsIme", + include_filters: ["com.android.server.wm.flicker.ime.ShowImeWhileEnteringOverviewTest"], + test_suites: ["device-tests"], +} + +// End breakdowns for FlickerTestsIme module +//////////////////////////////////////////////////////////////////////////////// diff --git a/tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/CloseImeToAppOnPressBackTest.kt b/tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/CloseImeToAppOnPressBackTest.kt index dc2bd1bc9996..522c68bba0d1 100644 --- a/tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/CloseImeToAppOnPressBackTest.kt +++ b/tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/CloseImeToAppOnPressBackTest.kt @@ -72,7 +72,7 @@ class CloseImeToAppOnPressBackTest(flicker: LegacyFlickerTest) : BaseTest(flicke @Presubmit @Test override fun navBarLayerPositionAtStartAndEnd() { - Assume.assumeFalse(flicker.scenario.isTablet) + Assume.assumeFalse(usesTaskbar) Assume.assumeFalse(flicker.scenario.isLandscapeOrSeascapeAtStart) flicker.navBarLayerPositionAtStartAndEnd() } @@ -80,7 +80,7 @@ class CloseImeToAppOnPressBackTest(flicker: LegacyFlickerTest) : BaseTest(flicke @Presubmit @Test fun navBarLayerPositionAtStartAndEndLandscapeOrSeascapeAtStart() { - Assume.assumeFalse(flicker.scenario.isTablet) + Assume.assumeFalse(usesTaskbar) Assume.assumeTrue(flicker.scenario.isLandscapeOrSeascapeAtStart) flicker.navBarLayerPositionAtStartAndEnd() } diff --git a/tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/ShowImeWhileEnteringOverviewTest.kt b/tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/ShowImeWhileEnteringOverviewTest.kt index c96c760e2d7b..eb63e4985a9f 100644 --- a/tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/ShowImeWhileEnteringOverviewTest.kt +++ b/tests/FlickerTests/IME/src/com/android/server/wm/flicker/ime/ShowImeWhileEnteringOverviewTest.kt @@ -28,6 +28,7 @@ import com.android.server.wm.flicker.BaseTest import com.android.server.wm.flicker.helpers.ImeShownOnAppStartHelper import com.android.server.wm.flicker.navBarLayerIsVisibleAtStartAndEnd import com.android.server.wm.flicker.statusBarLayerIsVisibleAtStartAndEnd +import com.android.server.wm.flicker.taskBarLayerIsVisibleAtStartAndEnd import org.junit.Assume import org.junit.FixMethodOrder import org.junit.Ignore @@ -93,7 +94,7 @@ class ShowImeWhileEnteringOverviewTest(flicker: LegacyFlickerTest) : BaseTest(fl @Presubmit @Test fun navBarLayerIsVisibleAtStartAndEnd3Button() { - Assume.assumeFalse(flicker.scenario.isTablet) + Assume.assumeFalse(usesTaskbar) Assume.assumeFalse(flicker.scenario.isGesturalNavigation) flicker.navBarLayerIsVisibleAtStartAndEnd() } @@ -105,7 +106,7 @@ class ShowImeWhileEnteringOverviewTest(flicker: LegacyFlickerTest) : BaseTest(fl @Presubmit @Test fun navBarLayerIsInvisibleInLandscapeGestural() { - Assume.assumeFalse(flicker.scenario.isTablet) + Assume.assumeFalse(usesTaskbar) Assume.assumeTrue(flicker.scenario.isLandscapeOrSeascapeAtStart) Assume.assumeTrue(flicker.scenario.isGesturalNavigation) flicker.assertLayersStart { this.isVisible(ComponentNameMatcher.NAV_BAR) } @@ -114,7 +115,7 @@ class ShowImeWhileEnteringOverviewTest(flicker: LegacyFlickerTest) : BaseTest(fl /** * In the legacy transitions, the nav bar is not marked as invisible. In the new transitions - * this is fixed and the nav bar shows as invisible + * this is fixed and the status bar shows as invisible */ @Presubmit @Test @@ -128,7 +129,7 @@ class ShowImeWhileEnteringOverviewTest(flicker: LegacyFlickerTest) : BaseTest(fl /** * In the legacy transitions, the nav bar is not marked as invisible. In the new transitions - * this is fixed and the nav bar shows as invisible + * this is fixed and the status bar shows as invisible */ @Presubmit @Test @@ -149,6 +150,10 @@ class ShowImeWhileEnteringOverviewTest(flicker: LegacyFlickerTest) : BaseTest(fl @Ignore("Visibility changes depending on orientation and navigation mode") override fun navBarLayerPositionAtStartAndEnd() {} + @Test + @Ignore("Visibility changes depending on orientation and navigation mode") + override fun taskBarLayerIsVisibleAtStartAndEnd() {} + /** {@inheritDoc} */ @Test @Ignore("Visibility changes depending on orientation and navigation mode") @@ -161,7 +166,10 @@ class ShowImeWhileEnteringOverviewTest(flicker: LegacyFlickerTest) : BaseTest(fl @Presubmit @Test - override fun taskBarLayerIsVisibleAtStartAndEnd() = super.taskBarLayerIsVisibleAtStartAndEnd() + fun taskBarLayerIsVisibleAtStartAndEndForTablets() { + Assume.assumeTrue(flicker.scenario.isTablet) + flicker.taskBarLayerIsVisibleAtStartAndEnd() + } @Presubmit @Test @@ -174,7 +182,7 @@ class ShowImeWhileEnteringOverviewTest(flicker: LegacyFlickerTest) : BaseTest(fl @Test fun statusBarLayerIsInvisibleInLandscape() { Assume.assumeTrue(flicker.scenario.isLandscapeOrSeascapeAtStart) - Assume.assumeFalse(flicker.scenario.isTablet) + Assume.assumeFalse(usesTaskbar) flicker.assertLayersStart { this.isVisible(ComponentNameMatcher.STATUS_BAR) } flicker.assertLayersEnd { this.isInvisible(ComponentNameMatcher.STATUS_BAR) } } diff --git a/tests/FlickerTests/Notification/Android.bp b/tests/FlickerTests/Notification/Android.bp index 4648383b2771..06daaafacbd8 100644 --- a/tests/FlickerTests/Notification/Android.bp +++ b/tests/FlickerTests/Notification/Android.bp @@ -32,3 +32,57 @@ android_test { static_libs: ["FlickerTestsBase"], data: ["trace_config/*"], } + +//////////////////////////////////////////////////////////////////////////////// +// Begin breakdowns for FlickerTestsNotification module + +test_module_config { + name: "FlickerTestsNotification-CatchAll", + base: "FlickerTestsNotification", + exclude_filters: [ + "com.android.server.wm.flicker.notification.OpenAppFromLockscreenNotificationColdTest", + "com.android.server.wm.flicker.notification.OpenAppFromLockscreenNotificationWarmTest", + "com.android.server.wm.flicker.notification.OpenAppFromLockscreenNotificationWithOverlayAppTest", + "com.android.server.wm.flicker.notification.OpenAppFromNotificationColdTest", + "com.android.server.wm.flicker.notification.OpenAppFromNotificationWarmTest", + ], + test_suites: ["device-tests"], +} + +test_module_config { + name: "FlickerTestsNotification-OpenAppFromLockscreenNotificationColdTest", + base: "FlickerTestsNotification", + include_filters: ["com.android.server.wm.flicker.notification.OpenAppFromLockscreenNotificationColdTest"], + test_suites: ["device-tests"], +} + +test_module_config { + name: "FlickerTestsNotification-OpenAppFromLockscreenNotificationWarmTest", + base: "FlickerTestsNotification", + include_filters: ["com.android.server.wm.flicker.notification.OpenAppFromLockscreenNotificationWarmTest"], + test_suites: ["device-tests"], +} + +test_module_config { + name: "FlickerTestsNotification-OpenAppFromLockscreenNotificationWithOverlayAppTest", + base: "FlickerTestsNotification", + include_filters: ["com.android.server.wm.flicker.notification.OpenAppFromLockscreenNotificationWithOverlayAppTest"], + test_suites: ["device-tests"], +} + +test_module_config { + name: "FlickerTestsNotification-OpenAppFromNotificationColdTest", + base: "FlickerTestsNotification", + include_filters: ["com.android.server.wm.flicker.notification.OpenAppFromNotificationColdTest"], + test_suites: ["device-tests"], +} + +test_module_config { + name: "FlickerTestsNotification-OpenAppFromNotificationWarmTest", + base: "FlickerTestsNotification", + include_filters: ["com.android.server.wm.flicker.notification.OpenAppFromNotificationWarmTest"], + test_suites: ["device-tests"], +} + +// End breakdowns for FlickerTestsNotification module +//////////////////////////////////////////////////////////////////////////////// diff --git a/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppFromNotificationWarmTest.kt b/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppFromNotificationWarmTest.kt index 07fc2300286a..ad70757a9a4d 100644 --- a/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppFromNotificationWarmTest.kt +++ b/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppFromNotificationWarmTest.kt @@ -151,7 +151,7 @@ open class OpenAppFromNotificationWarmTest(flicker: LegacyFlickerTest) : @Presubmit @Test open fun taskBarWindowIsVisibleAtEnd() { - Assume.assumeTrue(flicker.scenario.isTablet) + Assume.assumeTrue(usesTaskbar) flicker.taskBarWindowIsVisibleAtEnd() } @@ -163,7 +163,7 @@ open class OpenAppFromNotificationWarmTest(flicker: LegacyFlickerTest) : @Presubmit @Test open fun taskBarLayerIsVisibleAtEnd() { - Assume.assumeTrue(flicker.scenario.isTablet) + Assume.assumeTrue(usesTaskbar) flicker.taskBarLayerIsVisibleAtEnd() } @@ -171,7 +171,7 @@ open class OpenAppFromNotificationWarmTest(flicker: LegacyFlickerTest) : @Presubmit @Test open fun navBarLayerPositionAtEnd() { - Assume.assumeFalse(flicker.scenario.isTablet) + Assume.assumeFalse(usesTaskbar) flicker.navBarLayerPositionAtEnd() } @@ -179,14 +179,14 @@ open class OpenAppFromNotificationWarmTest(flicker: LegacyFlickerTest) : @Presubmit @Test open fun navBarLayerIsVisibleAtEnd() { - Assume.assumeFalse(flicker.scenario.isTablet) + Assume.assumeFalse(usesTaskbar) flicker.navBarLayerIsVisibleAtEnd() } @Presubmit @Test open fun navBarWindowIsVisibleAtEnd() { - Assume.assumeFalse(flicker.scenario.isTablet) + Assume.assumeFalse(usesTaskbar) flicker.navBarWindowIsVisibleAtEnd() } diff --git a/tests/FlickerTests/QuickSwitch/Android.bp b/tests/FlickerTests/QuickSwitch/Android.bp index 8755d0e3b304..4d5dba3d9221 100644 --- a/tests/FlickerTests/QuickSwitch/Android.bp +++ b/tests/FlickerTests/QuickSwitch/Android.bp @@ -32,3 +32,41 @@ android_test { static_libs: ["FlickerTestsBase"], data: ["trace_config/*"], } + +//////////////////////////////////////////////////////////////////////////////// +// Begin breakdowns for FlickerTestsQuickswitch module + +test_module_config { + name: "FlickerTestsQuickswitch-CatchAll", + base: "FlickerTestsQuickswitch", + exclude_filters: [ + "com.android.server.wm.flicker.quickswitch.QuickSwitchBetweenTwoAppsBackTest", + "com.android.server.wm.flicker.quickswitch.QuickSwitchBetweenTwoAppsForwardTest", + "com.android.server.wm.flicker.quickswitch.QuickSwitchFromLauncherTest", + ], + test_suites: ["device-tests"], +} + +test_module_config { + name: "FlickerTestsQuickswitch-QuickSwitchBetweenTwoAppsBackTest", + base: "FlickerTestsQuickswitch", + include_filters: ["com.android.server.wm.flicker.quickswitch.QuickSwitchBetweenTwoAppsBackTest"], + test_suites: ["device-tests"], +} + +test_module_config { + name: "FlickerTestsQuickswitch-QuickSwitchBetweenTwoAppsForwardTest", + base: "FlickerTestsQuickswitch", + include_filters: ["com.android.server.wm.flicker.quickswitch.QuickSwitchBetweenTwoAppsForwardTest"], + test_suites: ["device-tests"], +} + +test_module_config { + name: "FlickerTestsQuickswitch-QuickSwitchFromLauncherTest", + base: "FlickerTestsQuickswitch", + include_filters: ["com.android.server.wm.flicker.quickswitch.QuickSwitchFromLauncherTest"], + test_suites: ["device-tests"], +} + +// End breakdowns for FlickerTestsQuickswitch module +//////////////////////////////////////////////////////////////////////////////// diff --git a/tests/FlickerTests/Rotation/Android.bp b/tests/FlickerTests/Rotation/Android.bp index aceb8bad256f..0884ef9734b0 100644 --- a/tests/FlickerTests/Rotation/Android.bp +++ b/tests/FlickerTests/Rotation/Android.bp @@ -37,3 +37,41 @@ android_test { static_libs: ["FlickerTestsBase"], data: ["trace_config/*"], } + +//////////////////////////////////////////////////////////////////////////////// +// Begin breakdowns for FlickerTestsRotation module + +test_module_config { + name: "FlickerTestsAppRotation-CatchAll", + base: "FlickerTestsRotation", + exclude_filters: [ + "com.android.server.wm.flicker.rotation.ChangeAppRotationTest", + "com.android.server.wm.flicker.rotation.OpenShowWhenLockedSeamlessAppRotationTest", + "com.android.server.wm.flicker.rotation.SeamlessAppRotationTest", + ], + test_suites: ["device-tests"], +} + +test_module_config { + name: "FlickerTestsAppRotation-ChangeAppRotationTest", + base: "FlickerTestsRotation", + include_filters: ["com.android.server.wm.flicker.rotation.ChangeAppRotationTest"], + test_suites: ["device-tests"], +} + +test_module_config { + name: "FlickerTestsAppRotation-OpenShowWhenLockedSeamlessAppRotationTest", + base: "FlickerTestsRotation", + include_filters: ["com.android.server.wm.flicker.rotation.OpenShowWhenLockedSeamlessAppRotationTest"], + test_suites: ["device-tests"], +} + +test_module_config { + name: "FlickerTestsAppRotation-SeamlessAppRotationTest", + base: "FlickerTestsRotation", + include_filters: ["com.android.server.wm.flicker.rotation.SeamlessAppRotationTest"], + test_suites: ["device-tests"], +} + +// End breakdowns for FlickerTestsRotation module +//////////////////////////////////////////////////////////////////////////////// diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/BaseTest.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/BaseTest.kt index 060015bcc4b2..851ce022bd81 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/BaseTest.kt +++ b/tests/FlickerTests/src/com/android/server/wm/flicker/BaseTest.kt @@ -26,6 +26,7 @@ import android.tools.traces.component.ComponentNameMatcher import android.util.Log import androidx.test.platform.app.InstrumentationRegistry import com.android.launcher3.tapl.LauncherInstrumentation +import com.android.wm.shell.Flags import org.junit.Assume import org.junit.AssumptionViolatedException import org.junit.Test @@ -48,6 +49,9 @@ constructor( private val logTag = this::class.java.simpleName + protected val usesTaskbar: Boolean + get() = flicker.scenario.isTablet || Flags.enableTaskbarOnPhones() + /** Specification of the test transition to execute */ abstract val transition: FlickerBuilder.() -> Unit @@ -87,7 +91,7 @@ constructor( @Presubmit @Test open fun navBarLayerIsVisibleAtStartAndEnd() { - Assume.assumeFalse(flicker.scenario.isTablet) + Assume.assumeFalse(usesTaskbar) flicker.navBarLayerIsVisibleAtStartAndEnd() } @@ -100,7 +104,7 @@ constructor( @Presubmit @Test open fun navBarLayerPositionAtStartAndEnd() { - Assume.assumeFalse(flicker.scenario.isTablet) + Assume.assumeFalse(usesTaskbar) flicker.navBarLayerPositionAtStartAndEnd() } @@ -112,7 +116,7 @@ constructor( @Presubmit @Test open fun navBarWindowIsAlwaysVisible() { - Assume.assumeFalse(flicker.scenario.isTablet) + Assume.assumeFalse(usesTaskbar) Assume.assumeFalse(flicker.scenario.isLandscapeOrSeascapeAtStart) flicker.navBarWindowIsAlwaysVisible() } @@ -126,32 +130,28 @@ constructor( @Presubmit @Test open fun navBarWindowIsVisibleAtStartAndEnd() { - Assume.assumeFalse(flicker.scenario.isTablet) + Assume.assumeFalse(usesTaskbar) flicker.navBarWindowIsVisibleAtStartAndEnd() } /** * Checks that the [ComponentNameMatcher.TASK_BAR] window is visible at the start and end of the * transition - * - * Note: Large screen only */ @Presubmit @Test open fun taskBarLayerIsVisibleAtStartAndEnd() { - Assume.assumeTrue(flicker.scenario.isTablet) + Assume.assumeTrue(usesTaskbar) flicker.taskBarLayerIsVisibleAtStartAndEnd() } /** * Checks that the [ComponentNameMatcher.TASK_BAR] window is visible during the whole transition - * - * Note: Large screen only */ @Presubmit @Test open fun taskBarWindowIsAlwaysVisible() { - Assume.assumeTrue(flicker.scenario.isTablet) + Assume.assumeTrue(usesTaskbar) flicker.taskBarWindowIsAlwaysVisible() } diff --git a/tests/Input/src/android/hardware/input/KeyboardSystemShortcutListenerTest.kt b/tests/Input/src/android/hardware/input/KeyGestureEventListenerTest.kt index 24d7291bec87..14aac6637d4f 100644 --- a/tests/Input/src/android/hardware/input/KeyboardSystemShortcutListenerTest.kt +++ b/tests/Input/src/android/hardware/input/KeyGestureEventListenerTest.kt @@ -42,21 +42,22 @@ import kotlin.test.assertNull import kotlin.test.fail /** - * Tests for [InputManager.KeyboardSystemShortcutListener]. + * Tests for [InputManager.KeyGestureEventListener]. * * Build/Install/Run: - * atest InputTests:KeyboardSystemShortcutListenerTest + * atest InputTests:KeyGestureEventListenerTest */ @Presubmit @RunWith(MockitoJUnitRunner::class) -class KeyboardSystemShortcutListenerTest { +class KeyGestureEventListenerTest { companion object { const val DEVICE_ID = 1 - val HOME_SHORTCUT = KeyboardSystemShortcut( + val HOME_GESTURE_EVENT = KeyGestureEvent( + DEVICE_ID, intArrayOf(KeyEvent.KEYCODE_H), KeyEvent.META_META_ON or KeyEvent.META_META_LEFT_ON, - KeyboardSystemShortcut.SYSTEM_SHORTCUT_HOME + KeyGestureEvent.KEY_GESTURE_TYPE_HOME ) } @@ -65,7 +66,7 @@ class KeyboardSystemShortcutListenerTest { private val testLooper = TestLooper() private val executor = HandlerExecutor(Handler(testLooper.looper)) - private var registeredListener: IKeyboardSystemShortcutListener? = null + private var registeredListener: IKeyGestureEventListener? = null private lateinit var context: Context private lateinit var inputManager: InputManager private lateinit var inputManagerGlobalSession: InputManagerGlobal.TestSession @@ -81,28 +82,28 @@ class KeyboardSystemShortcutListenerTest { `when`(context.getSystemService(Mockito.eq(Context.INPUT_SERVICE))) .thenReturn(inputManager) - // Handle keyboard system shortcut listener registration. + // Handle key gesture event listener registration. doAnswer { - val listener = it.getArgument(0) as IKeyboardSystemShortcutListener + val listener = it.getArgument(0) as IKeyGestureEventListener if (registeredListener != null && registeredListener!!.asBinder() != listener.asBinder()) { - // There can only be one registered keyboard system shortcut listener per process. + // There can only be one registered key gesture event listener per process. fail("Trying to register a new listener when one already exists") } registeredListener = listener null - }.`when`(iInputManagerMock).registerKeyboardSystemShortcutListener(any()) + }.`when`(iInputManagerMock).registerKeyGestureEventListener(any()) - // Handle keyboard system shortcut listener being unregistered. + // Handle key gesture event listener being unregistered. doAnswer { - val listener = it.getArgument(0) as IKeyboardSystemShortcutListener + val listener = it.getArgument(0) as IKeyGestureEventListener if (registeredListener == null || registeredListener!!.asBinder() != listener.asBinder()) { fail("Trying to unregister a listener that is not registered") } registeredListener = null null - }.`when`(iInputManagerMock).unregisterKeyboardSystemShortcutListener(any()) + }.`when`(iInputManagerMock).unregisterKeyGestureEventListener(any()) } @After @@ -112,29 +113,28 @@ class KeyboardSystemShortcutListenerTest { } } - private fun notifyKeyboardSystemShortcutTriggered(id: Int, shortcut: KeyboardSystemShortcut) { - registeredListener!!.onKeyboardSystemShortcutTriggered( - id, - shortcut.keycodes, - shortcut.modifierState, - shortcut.systemShortcut + private fun notifyKeyGestureEvent(event: KeyGestureEvent) { + registeredListener!!.onKeyGestureEvent( + event.deviceId, + event.keycodes, + event.modifierState, + event.keyGestureType ) } @Test - fun testListenerHasCorrectSystemShortcutNotified() { + fun testListenerHasCorrectGestureNotified() { var callbackCount = 0 - // Add a keyboard system shortcut listener - inputManager.registerKeyboardSystemShortcutListener(executor) { - deviceId: Int, systemShortcut: KeyboardSystemShortcut -> - assertEquals(DEVICE_ID, deviceId) - assertEquals(HOME_SHORTCUT, systemShortcut) + // Add a key gesture event listener + inputManager.registerKeyGestureEventListener(executor) { + event: KeyGestureEvent -> + assertEquals(HOME_GESTURE_EVENT, event) callbackCount++ } - // Notifying keyboard system shortcut triggered will notify the listener. - notifyKeyboardSystemShortcutTriggered(DEVICE_ID, HOME_SHORTCUT) + // Notifying key gesture event will notify the listener. + notifyKeyGestureEvent(HOME_GESTURE_EVENT) testLooper.dispatchNext() assertEquals(1, callbackCount) } @@ -142,34 +142,34 @@ class KeyboardSystemShortcutListenerTest { @Test fun testAddingListenersRegistersInternalCallbackListener() { // Set up two callbacks. - val callback1 = InputManager.KeyboardSystemShortcutListener {_, _ -> } - val callback2 = InputManager.KeyboardSystemShortcutListener {_, _ -> } + val callback1 = InputManager.KeyGestureEventListener { _ -> } + val callback2 = InputManager.KeyGestureEventListener { _ -> } assertNull(registeredListener) // Adding the listener should register the callback with InputManagerService. - inputManager.registerKeyboardSystemShortcutListener(executor, callback1) + inputManager.registerKeyGestureEventListener(executor, callback1) assertNotNull(registeredListener) // Adding another listener should not register new internal listener. val currListener = registeredListener - inputManager.registerKeyboardSystemShortcutListener(executor, callback2) + inputManager.registerKeyGestureEventListener(executor, callback2) assertEquals(currListener, registeredListener) } @Test fun testRemovingListenersUnregistersInternalCallbackListener() { // Set up two callbacks. - val callback1 = InputManager.KeyboardSystemShortcutListener {_, _ -> } - val callback2 = InputManager.KeyboardSystemShortcutListener {_, _ -> } + val callback1 = InputManager.KeyGestureEventListener { _ -> } + val callback2 = InputManager.KeyGestureEventListener { _ -> } - inputManager.registerKeyboardSystemShortcutListener(executor, callback1) - inputManager.registerKeyboardSystemShortcutListener(executor, callback2) + inputManager.registerKeyGestureEventListener(executor, callback1) + inputManager.registerKeyGestureEventListener(executor, callback2) // Only removing all listeners should remove the internal callback - inputManager.unregisterKeyboardSystemShortcutListener(callback1) + inputManager.unregisterKeyGestureEventListener(callback1) assertNotNull(registeredListener) - inputManager.unregisterKeyboardSystemShortcutListener(callback2) + inputManager.unregisterKeyGestureEventListener(callback2) assertNull(registeredListener) } @@ -178,23 +178,23 @@ class KeyboardSystemShortcutListenerTest { // Set up two callbacks. var callbackCount1 = 0 var callbackCount2 = 0 - val callback1 = InputManager.KeyboardSystemShortcutListener { _, _ -> callbackCount1++ } - val callback2 = InputManager.KeyboardSystemShortcutListener { _, _ -> callbackCount2++ } + val callback1 = InputManager.KeyGestureEventListener { _ -> callbackCount1++ } + val callback2 = InputManager.KeyGestureEventListener { _ -> callbackCount2++ } - // Add both keyboard system shortcut listeners - inputManager.registerKeyboardSystemShortcutListener(executor, callback1) - inputManager.registerKeyboardSystemShortcutListener(executor, callback2) + // Add both key gesture event listeners + inputManager.registerKeyGestureEventListener(executor, callback1) + inputManager.registerKeyGestureEventListener(executor, callback2) - // Notifying keyboard system shortcut triggered, should notify both the callbacks. - notifyKeyboardSystemShortcutTriggered(DEVICE_ID, HOME_SHORTCUT) + // Notifying key gesture event, should notify both the callbacks. + notifyKeyGestureEvent(HOME_GESTURE_EVENT) testLooper.dispatchAll() assertEquals(1, callbackCount1) assertEquals(1, callbackCount2) - inputManager.unregisterKeyboardSystemShortcutListener(callback2) - // Notifying keyboard system shortcut triggered, should still trigger callback1 but not + inputManager.unregisterKeyGestureEventListener(callback2) + // Notifying key gesture event, should still trigger callback1 but not // callback2. - notifyKeyboardSystemShortcutTriggered(DEVICE_ID, HOME_SHORTCUT) + notifyKeyGestureEvent(HOME_GESTURE_EVENT) testLooper.dispatchAll() assertEquals(2, callbackCount1) assertEquals(1, callbackCount2) diff --git a/tests/Input/src/com/android/server/input/InputManagerServiceTests.kt b/tests/Input/src/com/android/server/input/InputManagerServiceTests.kt index 3c72498082e4..8829f74f5092 100644 --- a/tests/Input/src/com/android/server/input/InputManagerServiceTests.kt +++ b/tests/Input/src/com/android/server/input/InputManagerServiceTests.kt @@ -151,6 +151,7 @@ class InputManagerServiceTests { verify(native).setTouchpadNaturalScrollingEnabled(anyBoolean()) verify(native).setTouchpadTapToClickEnabled(anyBoolean()) verify(native).setTouchpadTapDraggingEnabled(anyBoolean()) + verify(native).setShouldNotifyTouchpadHardwareState(anyBoolean()) verify(native).setTouchpadRightClickZoneEnabled(anyBoolean()) verify(native).setShowTouches(anyBoolean()) verify(native).setMotionClassifierEnabled(anyBoolean()) diff --git a/tests/Input/src/com/android/server/input/KeyboardShortcutCallbackHandlerTests.kt b/tests/Input/src/com/android/server/input/KeyGestureControllerTests.kt index 5a40a1c8201e..3f611e0ead53 100644 --- a/tests/Input/src/com/android/server/input/KeyboardShortcutCallbackHandlerTests.kt +++ b/tests/Input/src/com/android/server/input/KeyGestureControllerTests.kt @@ -18,8 +18,8 @@ package com.android.server.input import android.content.Context import android.content.ContextWrapper -import android.hardware.input.IKeyboardSystemShortcutListener -import android.hardware.input.KeyboardSystemShortcut +import android.hardware.input.IKeyGestureEventListener +import android.hardware.input.KeyGestureEvent import android.platform.test.annotations.Presubmit import android.view.KeyEvent import androidx.test.core.app.ApplicationProvider @@ -32,65 +32,65 @@ import org.mockito.Mockito import org.mockito.junit.MockitoJUnit /** - * Tests for {@link KeyboardShortcutCallbackHandler}. + * Tests for {@link KeyGestureController}. * * Build/Install/Run: - * atest InputTests:KeyboardShortcutCallbackHandlerTests + * atest InputTests:KeyGestureControllerTests */ @Presubmit -class KeyboardShortcutCallbackHandlerTests { +class KeyGestureControllerTests { companion object { val DEVICE_ID = 1 - val HOME_SHORTCUT = KeyboardSystemShortcut( + val HOME_GESTURE_EVENT = KeyGestureEvent( + DEVICE_ID, intArrayOf(KeyEvent.KEYCODE_H), KeyEvent.META_META_ON or KeyEvent.META_META_LEFT_ON, - KeyboardSystemShortcut.SYSTEM_SHORTCUT_HOME + KeyGestureEvent.KEY_GESTURE_TYPE_HOME ) } @get:Rule val rule = MockitoJUnit.rule()!! - private lateinit var keyboardShortcutCallbackHandler: KeyboardShortcutCallbackHandler + private lateinit var keyGestureController: KeyGestureController private lateinit var context: Context - private var lastShortcut: KeyboardSystemShortcut? = null + private var lastEvent: KeyGestureEvent? = null @Before fun setup() { context = Mockito.spy(ContextWrapper(ApplicationProvider.getApplicationContext())) - keyboardShortcutCallbackHandler = KeyboardShortcutCallbackHandler() + keyGestureController = KeyGestureController() } @Test - fun testKeyboardSystemShortcutTriggered_registerUnregisterListener() { - val listener = KeyboardSystemShortcutListener() + fun testKeyGestureEvent_registerUnregisterListener() { + val listener = KeyGestureEventListener() - // Register keyboard system shortcut listener - keyboardShortcutCallbackHandler.registerKeyboardSystemShortcutListener(listener, 0) - keyboardShortcutCallbackHandler.onKeyboardSystemShortcutTriggered(DEVICE_ID, HOME_SHORTCUT) + // Register key gesture event listener + keyGestureController.registerKeyGestureEventListener(listener, 0) + keyGestureController.onKeyGestureEvent(HOME_GESTURE_EVENT) assertEquals( - "Listener should get callback on keyboard system shortcut triggered", - HOME_SHORTCUT, - lastShortcut!! + "Listener should get callback on key gesture event", + HOME_GESTURE_EVENT, + lastEvent!! ) // Unregister listener - lastShortcut = null - keyboardShortcutCallbackHandler.unregisterKeyboardSystemShortcutListener(listener, 0) - keyboardShortcutCallbackHandler.onKeyboardSystemShortcutTriggered(DEVICE_ID, HOME_SHORTCUT) - assertNull("Listener should not get callback after being unregistered", lastShortcut) + lastEvent = null + keyGestureController.unregisterKeyGestureEventListener(listener, 0) + keyGestureController.onKeyGestureEvent(HOME_GESTURE_EVENT) + assertNull("Listener should not get callback after being unregistered", lastEvent) } - inner class KeyboardSystemShortcutListener : IKeyboardSystemShortcutListener.Stub() { - override fun onKeyboardSystemShortcutTriggered( + inner class KeyGestureEventListener : IKeyGestureEventListener.Stub() { + override fun onKeyGestureEvent( deviceId: Int, keycodes: IntArray, modifierState: Int, - shortcut: Int + gestureType: Int ) { - assertEquals(DEVICE_ID, deviceId) - lastShortcut = KeyboardSystemShortcut(keycodes, modifierState, shortcut) + lastEvent = KeyGestureEvent(deviceId, keycodes, modifierState, gestureType) } } }
\ No newline at end of file diff --git a/tests/Internal/AndroidTest.xml b/tests/Internal/AndroidTest.xml index 7b67e9ebcced..2d6c650eb2dc 100644 --- a/tests/Internal/AndroidTest.xml +++ b/tests/Internal/AndroidTest.xml @@ -26,4 +26,12 @@ <option name="package" value="com.android.internal.tests" /> <option name="runner" value="androidx.test.runner.AndroidJUnitRunner" /> </test> + + <metrics_collector class="com.android.tradefed.device.metric.FilePullerLogCollector"> + <option name="pull-pattern-keys" value="perfetto_file_path"/> + <option name="directory-keys" + value="/data/user/0/com.android.internal.tests/files"/> + <option name="collect-on-run-ended-only" value="true"/> + <option name="clean-up" value="true"/> + </metrics_collector> </configuration>
\ No newline at end of file diff --git a/tests/Internal/src/com/android/internal/protolog/LegacyProtoLogImplTest.java b/tests/Internal/src/com/android/internal/protolog/LegacyProtoLogImplTest.java index 5a48327e7576..9657225588b7 100644 --- a/tests/Internal/src/com/android/internal/protolog/LegacyProtoLogImplTest.java +++ b/tests/Internal/src/com/android/internal/protolog/LegacyProtoLogImplTest.java @@ -214,6 +214,13 @@ public class LegacyProtoLogImplTest { verify(mReader, never()).getViewerString(anyLong()); } + @Test + public void loadViewerConfigOnLogcatGroupRegistration() { + TestProtoLogGroup.TEST_GROUP.setLogToLogcat(true); + mProtoLog.registerGroups(TestProtoLogGroup.TEST_GROUP); + verify(mReader).loadViewerConfig(any(), any()); + } + private static class ProtoLogData { Long mMessageHash = null; Long mElapsedTime = null; diff --git a/tests/Internal/src/com/android/internal/protolog/PerfettoProtoLogImplTest.java b/tests/Internal/src/com/android/internal/protolog/PerfettoProtoLogImplTest.java index 7d0c5966b5dc..4826f4241e2b 100644 --- a/tests/Internal/src/com/android/internal/protolog/PerfettoProtoLogImplTest.java +++ b/tests/Internal/src/com/android/internal/protolog/PerfettoProtoLogImplTest.java @@ -29,7 +29,6 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import static java.io.File.createTempFile; -import static java.nio.file.Files.createTempDirectory; import android.content.Context; import android.os.SystemClock; @@ -44,7 +43,7 @@ import android.tools.traces.protolog.ProtoLogTrace; import android.tracing.perfetto.DataSource; import android.util.proto.ProtoInputStream; -import androidx.test.filters.SmallTest; +import androidx.test.platform.app.InstrumentationRegistry; import com.android.internal.protolog.common.IProtoLogGroup; import com.android.internal.protolog.common.LogDataType; @@ -67,18 +66,17 @@ import java.io.File; import java.io.IOException; import java.util.List; import java.util.Random; -import java.util.TreeMap; import java.util.concurrent.atomic.AtomicInteger; /** * Test class for {@link ProtoLogImpl}. */ @SuppressWarnings("ConstantConditions") -@SmallTest @Presubmit @RunWith(JUnit4.class) public class PerfettoProtoLogImplTest { - private final File mTracingDirectory = createTempDirectory("temp").toFile(); + private final File mTracingDirectory = InstrumentationRegistry.getInstrumentation() + .getTargetContext().getFilesDir(); private final ResultWriter mWriter = new ResultWriter() .forScenario(new ScenarioBuilder() @@ -166,8 +164,7 @@ public class PerfettoProtoLogImplTest { mReader = Mockito.spy(new ProtoLogViewerConfigReader(viewerConfigInputStreamProvider)); mProtoLog = new PerfettoProtoLogImpl( viewerConfigInputStreamProvider, mReader, - () -> mCacheUpdater.run()); - mProtoLog.registerGroups(TestProtoLogGroup.values()); + () -> mCacheUpdater.run(), TestProtoLogGroup.values()); } @After @@ -384,7 +381,7 @@ public class PerfettoProtoLogImplTest { new Object[]{5}); verify(implSpy).passToLogcat(eq(TestProtoLogGroup.TEST_GROUP.getTag()), eq( - LogLevel.INFO), eq("UNKNOWN MESSAGE#1234 (5)")); + LogLevel.INFO), eq("UNKNOWN MESSAGE args = (5)")); verify(mReader).getViewerString(eq(1234L)); } @@ -451,8 +448,8 @@ public class PerfettoProtoLogImplTest { before = SystemClock.elapsedRealtimeNanos(); mProtoLog.log( LogLevel.INFO, TestProtoLogGroup.TEST_GROUP, - "My test message :: %s, %d, %o, %x, %f, %b", - "test", 1, 2, 3, 0.4, true); + "My test message :: %s, %d, %x, %f, %b", + "test", 1, 3, 0.4, true); after = SystemClock.elapsedRealtimeNanos(); } finally { traceMonitor.stop(mWriter); @@ -467,7 +464,7 @@ public class PerfettoProtoLogImplTest { Truth.assertThat(protolog.messages.getFirst().getTimestamp().getElapsedNanos()) .isAtMost(after); Truth.assertThat(protolog.messages.getFirst().getMessage()) - .isEqualTo("My test message :: test, 2, 4, 6, 0.400000, true"); + .isEqualTo("My test message :: test, 2, 6, 0.400000, true"); } @Test diff --git a/tests/PackageWatchdog/src/com/android/server/PackageWatchdogTest.java b/tests/PackageWatchdog/src/com/android/server/PackageWatchdogTest.java index ab406ef4632e..5b178250a4c9 100644 --- a/tests/PackageWatchdog/src/com/android/server/PackageWatchdogTest.java +++ b/tests/PackageWatchdog/src/com/android/server/PackageWatchdogTest.java @@ -1867,7 +1867,7 @@ public class PackageWatchdogTest { return true; } - public String getName() { + public String getUniqueIdentifier() { return mName; } diff --git a/tests/SurfaceControlViewHostTest/src/com/android/test/viewembed/SurfaceControlViewHostSyncTest.java b/tests/SurfaceControlViewHostTest/src/com/android/test/viewembed/SurfaceControlViewHostSyncTest.java index 359eb35384c7..5012c235a2a5 100644 --- a/tests/SurfaceControlViewHostTest/src/com/android/test/viewembed/SurfaceControlViewHostSyncTest.java +++ b/tests/SurfaceControlViewHostTest/src/com/android/test/viewembed/SurfaceControlViewHostSyncTest.java @@ -84,6 +84,7 @@ public class SurfaceControlViewHostSyncTest extends Activity implements SurfaceH content.addView(enableSyncButton, new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, Gravity.RIGHT | Gravity.BOTTOM)); + content.setFitsSystemWindows(true); setContentView(content); mSv.setZOrderOnTop(false); diff --git a/tests/SurfaceControlViewHostTest/src/com/android/test/viewembed/SurfaceControlViewHostTest.java b/tests/SurfaceControlViewHostTest/src/com/android/test/viewembed/SurfaceControlViewHostTest.java index 73e01634709e..4119ea2c73c3 100644 --- a/tests/SurfaceControlViewHostTest/src/com/android/test/viewembed/SurfaceControlViewHostTest.java +++ b/tests/SurfaceControlViewHostTest/src/com/android/test/viewembed/SurfaceControlViewHostTest.java @@ -37,6 +37,7 @@ public class SurfaceControlViewHostTest extends Activity implements SurfaceHolde protected void onCreate(Bundle savedInstanceState) { FrameLayout content = new FrameLayout(this); + content.setFitsSystemWindows(true); super.onCreate(savedInstanceState); mView = new SurfaceView(this); content.addView(mView, new FrameLayout.LayoutParams( diff --git a/tests/SurfaceControlViewHostTest/src/com/android/test/viewembed/SurfaceInputTestActivity.java b/tests/SurfaceControlViewHostTest/src/com/android/test/viewembed/SurfaceInputTestActivity.java index ac7dc9e2f31f..528706860b31 100644 --- a/tests/SurfaceControlViewHostTest/src/com/android/test/viewembed/SurfaceInputTestActivity.java +++ b/tests/SurfaceControlViewHostTest/src/com/android/test/viewembed/SurfaceInputTestActivity.java @@ -88,6 +88,7 @@ public class SurfaceInputTestActivity extends Activity { protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout content = new LinearLayout(this); + content.setFitsSystemWindows(true); mLocalSurfaceView = new SurfaceView(this); content.addView(mLocalSurfaceView, new LinearLayout.LayoutParams( 500, 500, Gravity.CENTER_HORIZONTAL | Gravity.TOP)); diff --git a/tests/UiBench/src/com/android/test/uibench/BitmapUploadActivity.java b/tests/UiBench/src/com/android/test/uibench/BitmapUploadActivity.java index 09236ffebdf4..459db8a0a1ac 100644 --- a/tests/UiBench/src/com/android/test/uibench/BitmapUploadActivity.java +++ b/tests/UiBench/src/com/android/test/uibench/BitmapUploadActivity.java @@ -74,6 +74,9 @@ public class BitmapUploadActivity extends AppCompatActivity { } } + private ObjectAnimator mColorValueAnimator; + private ObjectAnimator mYAnimator; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -81,16 +84,28 @@ public class BitmapUploadActivity extends AppCompatActivity { // animate color to force bitmap uploads UploadView uploadView = findViewById(R.id.upload_view); - ObjectAnimator colorValueAnimator = ObjectAnimator.ofInt(uploadView, "colorValue", 0, 255); - colorValueAnimator.setRepeatMode(ValueAnimator.REVERSE); - colorValueAnimator.setRepeatCount(ValueAnimator.INFINITE); - colorValueAnimator.start(); + mColorValueAnimator = ObjectAnimator.ofInt(uploadView, "colorValue", 0, 255); + mColorValueAnimator.setRepeatMode(ValueAnimator.REVERSE); + mColorValueAnimator.setRepeatCount(ValueAnimator.INFINITE); + mColorValueAnimator.start(); // animate scene root to guarantee there's a minimum amount of GPU rendering work View uploadRoot = findViewById(R.id.upload_root); - ObjectAnimator yAnimator = ObjectAnimator.ofFloat(uploadRoot, "translationY", 0, 100); - yAnimator.setRepeatMode(ValueAnimator.REVERSE); - yAnimator.setRepeatCount(ValueAnimator.INFINITE); - yAnimator.start(); + mYAnimator = ObjectAnimator.ofFloat(uploadRoot, "translationY", 0, 100); + mYAnimator.setRepeatMode(ValueAnimator.REVERSE); + mYAnimator.setRepeatCount(ValueAnimator.INFINITE); + mYAnimator.start(); + } + + @Override + protected void onPause() { + super.onPause(); + if (mColorValueAnimator != null) { + mColorValueAnimator.cancel(); + } + + if (mYAnimator != null) { + mYAnimator.cancel(); + } } } diff --git a/tests/UiBench/src/com/android/test/uibench/FullscreenOverdrawActivity.java b/tests/UiBench/src/com/android/test/uibench/FullscreenOverdrawActivity.java index 882163bd6b0e..9d10f76198c3 100644 --- a/tests/UiBench/src/com/android/test/uibench/FullscreenOverdrawActivity.java +++ b/tests/UiBench/src/com/android/test/uibench/FullscreenOverdrawActivity.java @@ -66,18 +66,29 @@ public class FullscreenOverdrawActivity extends AppCompatActivity { return PixelFormat.OPAQUE; } } + + private ObjectAnimator mObjectAnimator; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); OverdrawDrawable overdraw = new OverdrawDrawable(); getWindow().setBackgroundDrawable(overdraw); - setContentView(new View(this)); - ObjectAnimator objectAnimator = ObjectAnimator.ofInt(overdraw, "colorValue", 0, 255); - objectAnimator.setRepeatMode(ValueAnimator.REVERSE); - objectAnimator.setRepeatCount(ValueAnimator.INFINITE); - objectAnimator.start(); + mObjectAnimator = ObjectAnimator.ofInt(overdraw, "colorValue", 0, 255); + mObjectAnimator.setRepeatMode(ValueAnimator.REVERSE); + mObjectAnimator.setRepeatCount(ValueAnimator.INFINITE); + + mObjectAnimator.start(); + } + + @Override + protected void onPause() { + super.onPause(); + if (mObjectAnimator != null) { + mObjectAnimator.cancel(); + } } } diff --git a/tests/UiBench/src/com/android/test/uibench/GlTextureViewActivity.java b/tests/UiBench/src/com/android/test/uibench/GlTextureViewActivity.java index b26a660981da..1b28dc29d6aa 100644 --- a/tests/UiBench/src/com/android/test/uibench/GlTextureViewActivity.java +++ b/tests/UiBench/src/com/android/test/uibench/GlTextureViewActivity.java @@ -33,6 +33,7 @@ import com.android.test.uibench.opengl.ImageFlipRenderThread; public class GlTextureViewActivity extends AppCompatActivity implements TextureView.SurfaceTextureListener { private ImageFlipRenderThread mRenderThread; private TextureView mTextureView; + private ObjectAnimator mAnimator; @Override protected void onCreate(Bundle savedInstanceState) { @@ -54,17 +55,17 @@ public class GlTextureViewActivity extends AppCompatActivity implements TextureV int distance = Math.max(mTextureView.getWidth(), mTextureView.getHeight()); mTextureView.setCameraDistance(distance * metrics.density); - ObjectAnimator animator = ObjectAnimator.ofFloat(mTextureView, "rotationY", 0.0f, 360.0f); - animator.setRepeatMode(ObjectAnimator.REVERSE); - animator.setRepeatCount(ObjectAnimator.INFINITE); - animator.setDuration(4000); - animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { + mAnimator = ObjectAnimator.ofFloat(mTextureView, "rotationY", 0.0f, 360.0f); + mAnimator.setRepeatMode(ObjectAnimator.REVERSE); + mAnimator.setRepeatCount(ObjectAnimator.INFINITE); + mAnimator.setDuration(4000); + mAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { mTextureView.invalidate(); } }); - animator.start(); + mAnimator.start(); } @Override @@ -86,4 +87,11 @@ public class GlTextureViewActivity extends AppCompatActivity implements TextureV public void onSurfaceTextureUpdated(SurfaceTexture surface) { } + @Override + protected void onPause() { + super.onPause(); + if (mAnimator != null) { + mAnimator.cancel(); + } + } }
\ No newline at end of file diff --git a/tests/UiBench/src/com/android/test/uibench/InvalidateActivity.java b/tests/UiBench/src/com/android/test/uibench/InvalidateActivity.java index 76ed1ae4e445..f1e96c80c85a 100644 --- a/tests/UiBench/src/com/android/test/uibench/InvalidateActivity.java +++ b/tests/UiBench/src/com/android/test/uibench/InvalidateActivity.java @@ -51,6 +51,7 @@ public class InvalidateActivity extends AppCompatActivity { } private ColorView[][] mColorViews; + private ObjectAnimator mAnimator; @SuppressWarnings("unused") public void setColorValue(int colorValue) { @@ -80,9 +81,17 @@ public class InvalidateActivity extends AppCompatActivity { } } - ObjectAnimator animator = ObjectAnimator.ofInt(this, "colorValue", 0, 255); - animator.setRepeatMode(ValueAnimator.REVERSE); - animator.setRepeatCount(ValueAnimator.INFINITE); - animator.start(); + mAnimator = ObjectAnimator.ofInt(this, "colorValue", 0, 255); + mAnimator.setRepeatMode(ValueAnimator.REVERSE); + mAnimator.setRepeatCount(ValueAnimator.INFINITE); + mAnimator.start(); + } + + @Override + protected void onPause() { + super.onPause(); + if (mAnimator != null) { + mAnimator.cancel(); + } } } diff --git a/tests/UiBench/src/com/android/test/uibench/InvalidateTreeActivity.java b/tests/UiBench/src/com/android/test/uibench/InvalidateTreeActivity.java index 804ced14d522..95635720d4f9 100644 --- a/tests/UiBench/src/com/android/test/uibench/InvalidateTreeActivity.java +++ b/tests/UiBench/src/com/android/test/uibench/InvalidateTreeActivity.java @@ -33,6 +33,7 @@ public class InvalidateTreeActivity extends AppCompatActivity { private final ArrayList<LinearLayout> mLayouts = new ArrayList<>(); private int mColorToggle = 0; + private ObjectAnimator mAnimator; private void createQuadTree(LinearLayout parent, int remainingDepth) { mLayouts.add(parent); @@ -71,9 +72,17 @@ public class InvalidateTreeActivity extends AppCompatActivity { createQuadTree(root, 8); setContentView(root); - ObjectAnimator animator = ObjectAnimator.ofInt(this, "ignoredValue", 0, 1000); - animator.setRepeatMode(ValueAnimator.REVERSE); - animator.setRepeatCount(ValueAnimator.INFINITE); - animator.start(); + mAnimator = ObjectAnimator.ofInt(this, "ignoredValue", 0, 1000); + mAnimator.setRepeatMode(ValueAnimator.REVERSE); + mAnimator.setRepeatCount(ValueAnimator.INFINITE); + mAnimator.start(); + } + + @Override + protected void onPause() { + super.onPause(); + if (mAnimator != null) { + mAnimator.cancel(); + } } } |