From cf61e16a2c0f793784155e4a9b1f9250c455092c Mon Sep 17 00:00:00 2001 From: vadimt Date: Wed, 4 Sep 2019 19:02:54 -0700 Subject: Adding a test method to get a Launcher object when it becomes non-null Change-Id: I1c56777c87827b5edf1c7f55ad9639321e598311 --- .../launcher3/ui/AbstractLauncherUiTest.java | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'tests/src') diff --git a/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java b/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java index d0b2a0a28..bee3a49c6 100644 --- a/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java +++ b/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java @@ -24,7 +24,6 @@ import static org.junit.Assert.assertTrue; import static java.lang.System.exit; -import android.app.Instrumentation; import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.Context; @@ -275,6 +274,12 @@ public abstract class AbstractLauncherUiTest { waitForLauncherCondition(message, condition, DEFAULT_ACTIVITY_TIMEOUT); } + // Cannot be used in TaplTests after injecting any gesture using Tapl because this can hide + // flakiness. + protected T getOnceNotNull(String message, Function f) { + return getOnceNotNull(message, f, DEFAULT_ACTIVITY_TIMEOUT); + } + // Cannot be used in TaplTests after injecting any gesture using Tapl because this can hide // flakiness. protected void waitForLauncherCondition( @@ -283,6 +288,20 @@ public abstract class AbstractLauncherUiTest { Wait.atMost(message, () -> getFromLauncher(condition), timeout); } + // Cannot be used in TaplTests after injecting any gesture using Tapl because this can hide + // flakiness. + protected T getOnceNotNull(String message, Function f, long timeout) { + if (!TestHelpers.isInLauncherProcess()) return null; + + final Object[] output = new Object[1]; + Wait.atMost(message, () -> { + final Object fromLauncher = getFromLauncher(f); + output[0] = fromLauncher; + return fromLauncher != null; + }, timeout); + return (T) output[0]; + } + // Cannot be used in TaplTests after injecting any gesture using Tapl because this can hide // flakiness. protected void waitForLauncherCondition( -- cgit v1.2.3