From 8568602aafa202c8c8931dfec79af496d5153ce2 Mon Sep 17 00:00:00 2001 From: Jon Miranda Date: Tue, 9 Nov 2021 17:02:31 -0800 Subject: [PATCH] Add back waitForStateTransitionToEnd to fix flakiness. Bug: 202735477 Test: presubmit Change-Id: I03c7e8b0c40177f4e6e38a7d9aa3e01b029effd6 --- .../com/android/launcher3/ui/AbstractLauncherUiTest.java | 8 ++++++++ tests/src/com/android/launcher3/ui/WorkProfileTest.java | 6 ++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java b/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java index 314aee4285..44f2719a02 100644 --- a/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java +++ b/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java @@ -352,6 +352,14 @@ public abstract class AbstractLauncherUiTest { launcher -> launcher.getStateManager().getCurrentStableState() == state.get()); } + // Cannot be used in TaplTests between a Tapl call injecting a gesture and a tapl call + // expecting the results of that gesture because the wait can hide flakeness. + protected void waitForStateTransitionToEnd(String message, Supplier state) { + waitForLauncherCondition(message, + launcher -> launcher.getStateManager().isInStableState(state.get()) + && !launcher.getStateManager().isInTransition()); + } + protected void waitForResumed(String message) { waitForLauncherCondition(message, launcher -> launcher.hasBeenResumed()); } diff --git a/tests/src/com/android/launcher3/ui/WorkProfileTest.java b/tests/src/com/android/launcher3/ui/WorkProfileTest.java index 4bb6e91a09..45d20e2e4c 100644 --- a/tests/src/com/android/launcher3/ui/WorkProfileTest.java +++ b/tests/src/com/android/launcher3/ui/WorkProfileTest.java @@ -62,10 +62,12 @@ public class WorkProfileTest extends AbstractLauncherUiTest { mDevice.pressHome(); waitForLauncherCondition("Launcher didn't start", Objects::nonNull); - waitForState("Launcher internal state didn't switch to Normal", () -> NORMAL); + waitForStateTransitionToEnd("Launcher internal state didn't switch to Normal", + () -> NORMAL); waitForResumed("Launcher internal state is still Background"); executeOnLauncher(launcher -> launcher.getStateManager().goToState(ALL_APPS)); - waitForState("Launcher internal state didn't switch to All Apps", () -> ALL_APPS); + waitForStateTransitionToEnd("Launcher internal state didn't switch to All Apps", + () -> ALL_APPS); } @After