Merge "Force calculator to launch in fullscreen for taskbar tests" into main

This commit is contained in:
Daniel Akinola
2024-04-23 08:47:57 +00:00
committed by Android (Google) Code Review
2 changed files with 32 additions and 3 deletions
@@ -55,7 +55,7 @@ public class AbstractTaplTestsTaskbar extends AbstractQuickStepTest {
"com.android.launcher3.testcomponent.BaseTestingActivity");
mLauncherLayout = TestUtil.setLauncherDefaultLayout(mTargetContext, layoutBuilder);
AbstractLauncherUiTest.initialize(this);
startAppFast(CALCULATOR_APP_PACKAGE);
startAppFastInFullscreen(CALCULATOR_APP_PACKAGE);
mLauncher.enableBlockTimeout(true);
mLauncher.showTaskbarIfHidden();
}
@@ -15,7 +15,10 @@
*/
package com.android.launcher3.ui;
import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
import static android.platform.test.flag.junit.SetFlagsRule.DefaultInitValueType.DEVICE_DEFAULT;
import static android.view.Display.DEFAULT_DISPLAY;
import static androidx.test.InstrumentationRegistry.getInstrumentation;
@@ -26,6 +29,7 @@ import static com.android.launcher3.util.Executors.MAIN_EXECUTOR;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import android.app.ActivityOptions;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
@@ -571,6 +575,21 @@ public abstract class AbstractLauncherUiTest<LAUNCHER_TYPE extends Launcher> {
true /* newTask */);
}
/** alternative of startAppFast where app is guaranteed to launch in fullscreen mode */
public static void startAppFastInFullscreen(String packageName) {
ActivityOptions options = ActivityOptions.makeBasic();
options.setLaunchWindowingMode(WINDOWING_MODE_FULLSCREEN);
options.setLaunchDisplayId(DEFAULT_DISPLAY);
options.setLaunchActivityType(ACTIVITY_TYPE_STANDARD);
startIntent(
getInstrumentation().getContext().getPackageManager().getLaunchIntentForPackage(
packageName),
By.pkg(packageName).depth(0),
true /* newTask */,
options);
}
public static void startTestActivity(String activityName, String activityLabel) {
final String packageName = getAppPackageName();
final Intent intent = getInstrumentation().getContext().getPackageManager().
@@ -606,7 +625,8 @@ public abstract class AbstractLauncherUiTest<LAUNCHER_TYPE extends Launcher> {
false /* newTask */);
}
private static void startIntent(Intent intent, BySelector selector, boolean newTask) {
private static void startIntent(
Intent intent, BySelector selector, boolean newTask, ActivityOptions options) {
intent.addCategory(Intent.CATEGORY_LAUNCHER);
if (newTask) {
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
@@ -614,7 +634,12 @@ public abstract class AbstractLauncherUiTest<LAUNCHER_TYPE extends Launcher> {
intent.addFlags(
Intent.FLAG_ACTIVITY_MULTIPLE_TASK | Intent.FLAG_ACTIVITY_NEW_DOCUMENT);
}
getInstrumentation().getTargetContext().startActivity(intent);
if (options != null) {
getInstrumentation().getTargetContext().startActivity(intent, options.toBundle());
} else {
getInstrumentation().getTargetContext().startActivity(intent);
}
assertTrue("App didn't start: " + selector,
TestHelpers.wait(Until.hasObject(selector), DEFAULT_UI_TIMEOUT));
@@ -625,6 +650,10 @@ public abstract class AbstractLauncherUiTest<LAUNCHER_TYPE extends Launcher> {
DEFAULT_ACTIVITY_TIMEOUT, launcherInstrumentation);
}
private static void startIntent(Intent intent, BySelector selector, boolean newTask) {
startIntent(intent, selector, newTask, null);
}
public static ActivityInfo resolveSystemAppInfo(String category) {
return getInstrumentation().getContext().getPackageManager().resolveActivity(
new Intent(Intent.ACTION_MAIN).addCategory(category),