Merge "Testing to see if waiting for transition to end will fix flaky tests" into sc-v2-dev

This commit is contained in:
Jonathan Miranda 2021-11-05 22:53:17 +00:00 committed by Android (Google) Code Review
commit 58763e47d6
3 changed files with 16 additions and 6 deletions

View File

@ -84,7 +84,7 @@ public class StateManager<STATE_TYPE extends BaseState<STATE_TYPE>> {
+ ", mCurrentStableState:" + mCurrentStableState + ", mCurrentStableState:" + mCurrentStableState
+ ", mState:" + mState + ", mState:" + mState
+ ", mRestState:" + mRestState + ", mRestState:" + mRestState
+ ", isInTransition:" + (mConfig.currentAnimation != null) + ")"; + ", isInTransition:" + isInTransition() + ")";
} }
public void dump(String prefix, PrintWriter writer) { public void dump(String prefix, PrintWriter writer) {
@ -93,7 +93,7 @@ public class StateManager<STATE_TYPE extends BaseState<STATE_TYPE>> {
writer.println(prefix + "\tmCurrentStableState:" + mCurrentStableState); writer.println(prefix + "\tmCurrentStableState:" + mCurrentStableState);
writer.println(prefix + "\tmState:" + mState); writer.println(prefix + "\tmState:" + mState);
writer.println(prefix + "\tmRestState:" + mRestState); writer.println(prefix + "\tmRestState:" + mRestState);
writer.println(prefix + "\tisInTransition:" + (mConfig.currentAnimation != null)); writer.println(prefix + "\tisInTransition:" + isInTransition());
} }
public StateHandler[] getStateHandlers() { public StateHandler[] getStateHandlers() {
@ -129,6 +129,13 @@ public class StateManager<STATE_TYPE extends BaseState<STATE_TYPE>> {
&& (mConfig.targetState == null || mConfig.targetState == state); && (mConfig.targetState == null || mConfig.targetState == state);
} }
/**
* @return {@code true} If there is an active transition.
*/
public boolean isInTransition() {
return mConfig.currentAnimation != null;
}
/** /**
* @see #goToState(STATE_TYPE, boolean, AnimatorListener) * @see #goToState(STATE_TYPE, boolean, AnimatorListener)
*/ */

View File

@ -354,9 +354,10 @@ public abstract class AbstractLauncherUiTest {
// Cannot be used in TaplTests between a Tapl call injecting a gesture and a tapl call // 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. // expecting the results of that gesture because the wait can hide flakeness.
protected void waitForStableState(String message, Supplier<LauncherState> state) { protected void waitForStateTransitionToEnd(String message, Supplier<LauncherState> state) {
waitForLauncherCondition(message, waitForLauncherCondition(message,
launcher -> launcher.getStateManager().isInStableState(state.get())); launcher -> launcher.getStateManager().isInStableState(state.get())
&& !launcher.getStateManager().isInTransition());
} }
protected void waitForResumed(String message) { protected void waitForResumed(String message) {

View File

@ -91,9 +91,11 @@ public class WorkProfileTest extends AbstractLauncherUiTest {
public void workTabExists() { public void workTabExists() {
mDevice.pressHome(); mDevice.pressHome();
waitForLauncherCondition("Launcher didn't start", Objects::nonNull); waitForLauncherCondition("Launcher didn't start", Objects::nonNull);
waitForStableState("Launcher internal state didn't switch to Normal", () -> NORMAL); waitForStateTransitionToEnd("Launcher internal state didn't switch to Normal",
() -> NORMAL);
executeOnLauncher(launcher -> launcher.getStateManager().goToState(ALL_APPS)); executeOnLauncher(launcher -> launcher.getStateManager().goToState(ALL_APPS));
waitForStableState("Launcher internal state didn't switch to All Apps", () -> ALL_APPS); waitForStateTransitionToEnd("Launcher internal state didn't switch to All Apps",
() -> ALL_APPS);
waitForLauncherCondition("Personal tab is missing", waitForLauncherCondition("Personal tab is missing",
launcher -> launcher.getAppsView().isPersonalTabVisible(), launcher -> launcher.getAppsView().isPersonalTabVisible(),
LauncherInstrumentation.WAIT_TIME_MS); LauncherInstrumentation.WAIT_TIME_MS);