diff options
author | Vadim Tryshev <vadimt@google.com> | 2018-10-12 11:21:58 -0700 |
---|---|---|
committer | Vadim Tryshev <vadimt@google.com> | 2018-10-13 01:13:45 +0000 |
commit | 34b6f9f1068cf9834582f6ffa9686ef2b6b7827c (patch) | |
tree | 069930f0589b824eec85df1ab24fbc5f0b8e30f9 /tests | |
parent | 9ccff14b53c62639ebd1977f815c938edc5b369f (diff) | |
download | android_packages_apps_Trebuchet-34b6f9f1068cf9834582f6ffa9686ef2b6b7827c.tar.gz android_packages_apps_Trebuchet-34b6f9f1068cf9834582f6ffa9686ef2b6b7827c.tar.bz2 android_packages_apps_Trebuchet-34b6f9f1068cf9834582f6ffa9686ef2b6b7827c.zip |
Supporting OOP tests
AbstractLauncherUiTest was modified to compile and work both in- and
out- of proc.
Bug: 113056917
Test: was in Nexus branch
Diffstat (limited to 'tests')
9 files changed, 228 insertions, 171 deletions
diff --git a/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java b/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java index 6db784aa4..c878699c5 100644 --- a/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java +++ b/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java @@ -15,29 +15,21 @@ */ package com.android.launcher3.ui; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.fail; - import static androidx.test.InstrumentationRegistry.getInstrumentation; +import static org.junit.Assert.fail; + import android.app.Instrumentation; import android.content.BroadcastReceiver; -import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.pm.LauncherActivityInfo; -import android.graphics.Point; import android.os.Process; import android.os.RemoteException; -import android.os.SystemClock; -import android.util.Log; -import android.view.MotionEvent; import android.view.Surface; import androidx.test.InstrumentationRegistry; -import androidx.test.uiautomator.By; import androidx.test.uiautomator.BySelector; import androidx.test.uiautomator.Direction; import androidx.test.uiautomator.UiDevice; @@ -46,19 +38,14 @@ import androidx.test.uiautomator.Until; import com.android.launcher3.Launcher; import com.android.launcher3.LauncherAppState; -import com.android.launcher3.LauncherAppWidgetProviderInfo; import com.android.launcher3.LauncherModel; import com.android.launcher3.LauncherSettings; import com.android.launcher3.LauncherState; import com.android.launcher3.MainThreadExecutor; -import com.android.launcher3.R; import com.android.launcher3.Utilities; -import com.android.launcher3.compat.AppWidgetManagerCompat; import com.android.launcher3.compat.LauncherAppsCompat; import com.android.launcher3.tapl.LauncherInstrumentation; import com.android.launcher3.tapl.TestHelpers; -import com.android.launcher3.testcomponent.AppWidgetNoConfig; -import com.android.launcher3.testcomponent.AppWidgetWithConfig; import com.android.launcher3.util.Wait; import com.android.launcher3.util.rule.LauncherActivityRule; import com.android.launcher3.util.rule.ShellCommandRule; @@ -89,7 +76,6 @@ public abstract class AbstractLauncherUiTest { public static final long SHORT_UI_TIMEOUT= 300; public static final long DEFAULT_UI_TIMEOUT = 10000; - public static final long DEFAULT_WORKER_TIMEOUT_SECS = 5; protected MainThreadExecutor mMainThreadExecutor = new MainThreadExecutor(); protected final UiDevice mDevice; @@ -97,8 +83,6 @@ public abstract class AbstractLauncherUiTest { protected Context mTargetContext; protected String mTargetPackage; - private static final String TAG = "AbstractLauncherUiTest"; - protected AbstractLauncherUiTest() { final Instrumentation instrumentation = getInstrumentation(); mDevice = UiDevice.getInstance(instrumentation); @@ -114,7 +98,8 @@ public abstract class AbstractLauncherUiTest { @Rule public LauncherActivityRule mActivityMonitor = new LauncherActivityRule(); - @Rule public ShellCommandRule mDefaultLauncherRule = ShellCommandRule.setDefaultLauncher(); + @Rule public ShellCommandRule mDefaultLauncherRule = + TestHelpers.isInLauncherProcess() ? ShellCommandRule.setDefaultLauncher() : null; @Rule public ShellCommandRule mDisableHeadsUpNotification = ShellCommandRule.disableHeadsUpNotification(); @@ -184,30 +169,6 @@ public abstract class AbstractLauncherUiTest { } /** - * Opens all apps and returns the recycler view - */ - protected UiObject2 openAllApps() { - mDevice.waitForIdle(); - UiObject2 hotseat = mDevice.wait( - Until.findObject(getSelectorForId(R.id.hotseat)), 2500); - Point start = hotseat.getVisibleCenter(); - int endY = (int) (mDevice.getDisplayHeight() * 0.1f); - // 100 px/step - mDevice.swipe(start.x, start.y, start.x, endY, (start.y - endY) / 100); - return findViewById(R.id.apps_list_view); - } - - /** - * Opens widget tray and returns the recycler view. - */ - protected UiObject2 openWidgetsTray() { - mDevice.pressMenu(); // Enter overview mode. - mDevice.wait(Until.findObject( - By.text(mTargetContext.getString(R.string.widget_button_text))), DEFAULT_UI_TIMEOUT).click(); - return findViewById(R.id.widgets_list_view); - } - - /** * Scrolls the {@param container} until it finds an object matching {@param condition}. * @return the matching object. */ @@ -229,73 +190,6 @@ public abstract class AbstractLauncherUiTest { } /** - * Drags an icon to the center of homescreen. - * @param icon object that is either app icon or shortcut icon - */ - protected void dragToWorkspace(UiObject2 icon, boolean expectedToShowShortcuts) { - Point center = icon.getVisibleCenter(); - - // Action Down - sendPointer(MotionEvent.ACTION_DOWN, center); - - UiObject2 dragLayer = findViewById(R.id.drag_layer); - - if (expectedToShowShortcuts) { - // Make sure shortcuts show up, and then move a bit to hide them. - assertNotNull(findViewById(R.id.deep_shortcuts_container)); - - Point moveLocation = new Point(center); - int distanceToMove = mTargetContext.getResources().getDimensionPixelSize( - R.dimen.deep_shortcuts_start_drag_threshold) + 50; - if (moveLocation.y - distanceToMove >= dragLayer.getVisibleBounds().top) { - moveLocation.y -= distanceToMove; - } else { - moveLocation.y += distanceToMove; - } - movePointer(center, moveLocation); - - assertNull(findViewById(R.id.deep_shortcuts_container)); - } - - // Wait until Remove/Delete target is visible - assertNotNull(findViewById(R.id.delete_target_text)); - - Point moveLocation = dragLayer.getVisibleCenter(); - - // Move to center - movePointer(center, moveLocation); - sendPointer(MotionEvent.ACTION_UP, center); - - // Wait until remove target is gone. - mDevice.wait(Until.gone(getSelectorForId(R.id.delete_target_text)), DEFAULT_UI_TIMEOUT); - } - - private void movePointer(Point from, Point to) { - while(!from.equals(to)) { - from.x = getNextMoveValue(to.x, from.x); - from.y = getNextMoveValue(to.y, from.y); - sendPointer(MotionEvent.ACTION_MOVE, from); - } - } - - private int getNextMoveValue(int targetValue, int oldValue) { - if (targetValue - oldValue > 10) { - return oldValue + 10; - } else if (targetValue - oldValue < -10) { - return oldValue - 10; - } else { - return targetValue; - } - } - - protected void sendPointer(int action, Point point) { - MotionEvent event = MotionEvent.obtain(SystemClock.uptimeMillis(), - SystemClock.uptimeMillis(), action, point.x, point.y, 0); - getInstrumentation().sendPointerSync(event); - event.recycle(); - } - - /** * Removes all icons from homescreen and hotseat. */ public void clearHomescreen() throws Throwable { @@ -381,37 +275,6 @@ public abstract class AbstractLauncherUiTest { Wait.atMost(message, () -> getFromLauncher(condition), timeout); } - /** - * Finds a widget provider which can fit on the home screen. - * @param hasConfigureScreen if true, a provider with a config screen is returned. - */ - protected LauncherAppWidgetProviderInfo findWidgetProvider(final boolean hasConfigureScreen) { - LauncherAppWidgetProviderInfo info = - getOnUiThread(new Callable<LauncherAppWidgetProviderInfo>() { - @Override - public LauncherAppWidgetProviderInfo call() throws Exception { - ComponentName cn = new ComponentName(getInstrumentation().getContext(), - hasConfigureScreen ? AppWidgetWithConfig.class : AppWidgetNoConfig.class); - Log.d(TAG, "findWidgetProvider componentName=" + cn.flattenToString()); - return AppWidgetManagerCompat.getInstance(mTargetContext) - .findProvider(cn, Process.myUserHandle()); - } - }); - if (info == null) { - throw new IllegalArgumentException("No valid widget provider"); - } - return info; - } - - protected UiObject2 findViewById(int id) { - return mDevice.wait(Until.findObject(getSelectorForId(id)), DEFAULT_UI_TIMEOUT); - } - - protected BySelector getSelectorForId(int id) { - String name = mTargetContext.getResources().getResourceEntryName(id); - return By.res(mTargetPackage, name); - } - protected LauncherActivityInfo getSettingsApp() { return LauncherAppsCompat.getInstance(mTargetContext) .getActivityList("com.android.settings", diff --git a/tests/src/com/android/launcher3/ui/AllAppsIconToHomeTest.java b/tests/src/com/android/launcher3/ui/AllAppsIconToHomeTest.java index a6830fc14..916007607 100644 --- a/tests/src/com/android/launcher3/ui/AllAppsIconToHomeTest.java +++ b/tests/src/com/android/launcher3/ui/AllAppsIconToHomeTest.java @@ -45,12 +45,12 @@ public class AllAppsIconToHomeTest extends AbstractLauncherUiTest { mDevice.waitForIdle(); // Open all apps and wait for load complete. - final UiObject2 appsContainer = openAllApps(); + final UiObject2 appsContainer = TestViewHelpers.openAllApps(); Wait.atMost(null, Condition.minChildCount(appsContainer, 2), DEFAULT_UI_TIMEOUT); // Drag icon to homescreen. UiObject2 icon = scrollAndFind(appsContainer, By.text(settingsApp.getLabel().toString())); - dragToWorkspace(icon, true); + TestViewHelpers.dragToWorkspace(icon, true); // Verify that the icon works on homescreen. mDevice.findObject(By.text(settingsApp.getLabel().toString())).click(); diff --git a/tests/src/com/android/launcher3/ui/ShortcutsLaunchTest.java b/tests/src/com/android/launcher3/ui/ShortcutsLaunchTest.java index f77300011..d7a7f6bbe 100644 --- a/tests/src/com/android/launcher3/ui/ShortcutsLaunchTest.java +++ b/tests/src/com/android/launcher3/ui/ShortcutsLaunchTest.java @@ -46,24 +46,25 @@ public class ShortcutsLaunchTest extends AbstractLauncherUiTest { LauncherActivityInfo testApp = getSettingsApp(); // Open all apps and wait for load complete - final UiObject2 appsContainer = openAllApps(); + final UiObject2 appsContainer = TestViewHelpers.openAllApps(); Wait.atMost(null, Condition.minChildCount(appsContainer, 2), DEFAULT_UI_TIMEOUT); // Find settings app and verify shortcuts appear when long pressed UiObject2 icon = scrollAndFind(appsContainer, By.text(testApp.getLabel().toString())); // Press icon center until shortcuts appear Point iconCenter = icon.getVisibleCenter(); - sendPointer(MotionEvent.ACTION_DOWN, iconCenter); - UiObject2 deepShortcutsContainer = findViewById(R.id.deep_shortcuts_container); + TestViewHelpers.sendPointer(MotionEvent.ACTION_DOWN, iconCenter); + UiObject2 deepShortcutsContainer = TestViewHelpers.findViewById( + R.id.deep_shortcuts_container); assertNotNull(deepShortcutsContainer); - sendPointer(MotionEvent.ACTION_UP, iconCenter); + TestViewHelpers.sendPointer(MotionEvent.ACTION_UP, iconCenter); // Verify that launching a shortcut opens a page with the same text assertTrue(deepShortcutsContainer.getChildCount() > 0); // Pick second children as it starts showing shortcuts. UiObject2 shortcut = deepShortcutsContainer.getChildren().get(1) - .findObject(getSelectorForId(R.id.bubble_text)); + .findObject(TestViewHelpers.getSelectorForId(R.id.bubble_text)); shortcut.click(); assertTrue(mDevice.wait(Until.hasObject(By.pkg( testApp.getComponentName().getPackageName()) diff --git a/tests/src/com/android/launcher3/ui/ShortcutsToHomeTest.java b/tests/src/com/android/launcher3/ui/ShortcutsToHomeTest.java index bc1b51932..436c6991d 100644 --- a/tests/src/com/android/launcher3/ui/ShortcutsToHomeTest.java +++ b/tests/src/com/android/launcher3/ui/ShortcutsToHomeTest.java @@ -48,24 +48,25 @@ public class ShortcutsToHomeTest extends AbstractLauncherUiTest { LauncherActivityInfo testApp = getSettingsApp(); // Open all apps and wait for load complete. - final UiObject2 appsContainer = openAllApps(); + final UiObject2 appsContainer = TestViewHelpers.openAllApps(); Wait.atMost(null, Condition.minChildCount(appsContainer, 2), DEFAULT_UI_TIMEOUT); // Find the app and long press it to show shortcuts. UiObject2 icon = scrollAndFind(appsContainer, By.text(testApp.getLabel().toString())); // Press icon center until shortcuts appear Point iconCenter = icon.getVisibleCenter(); - sendPointer(MotionEvent.ACTION_DOWN, iconCenter); - UiObject2 deepShortcutsContainer = findViewById(R.id.deep_shortcuts_container); + TestViewHelpers.sendPointer(MotionEvent.ACTION_DOWN, iconCenter); + UiObject2 deepShortcutsContainer = TestViewHelpers.findViewById( + R.id.deep_shortcuts_container); assertNotNull(deepShortcutsContainer); - sendPointer(MotionEvent.ACTION_UP, iconCenter); + TestViewHelpers.sendPointer(MotionEvent.ACTION_UP, iconCenter); // Drag the first shortcut to the home screen. assertTrue(deepShortcutsContainer.getChildCount() > 0); UiObject2 shortcut = deepShortcutsContainer.getChildren().get(1) - .findObject(getSelectorForId(R.id.bubble_text)); + .findObject(TestViewHelpers.getSelectorForId(R.id.bubble_text)); String shortcutName = shortcut.getText(); - dragToWorkspace(shortcut, false); + TestViewHelpers.dragToWorkspace(shortcut, false); // Verify that the shortcut works on home screen // (the app opens and has the same text as the shortcut). diff --git a/tests/src/com/android/launcher3/ui/TestViewHelpers.java b/tests/src/com/android/launcher3/ui/TestViewHelpers.java new file mode 100644 index 000000000..524438642 --- /dev/null +++ b/tests/src/com/android/launcher3/ui/TestViewHelpers.java @@ -0,0 +1,186 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.android.launcher3.ui; + +import static androidx.test.InstrumentationRegistry.getInstrumentation; +import static androidx.test.InstrumentationRegistry.getTargetContext; + +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; + +import android.content.ComponentName; +import android.content.Context; +import android.graphics.Point; +import android.os.Process; +import android.os.SystemClock; +import android.util.Log; +import android.view.MotionEvent; + +import androidx.test.uiautomator.By; +import androidx.test.uiautomator.BySelector; +import androidx.test.uiautomator.UiDevice; +import androidx.test.uiautomator.UiObject2; +import androidx.test.uiautomator.Until; + +import com.android.launcher3.LauncherAppWidgetProviderInfo; +import com.android.launcher3.R; +import com.android.launcher3.compat.AppWidgetManagerCompat; +import com.android.launcher3.testcomponent.AppWidgetNoConfig; +import com.android.launcher3.testcomponent.AppWidgetWithConfig; + +import java.util.concurrent.Callable; + +public class TestViewHelpers { + private static final String TAG = "TestViewHelpers"; + + private static UiDevice getDevice() { + return UiDevice.getInstance(getInstrumentation()); + } + + /** + * Opens all apps and returns the recycler view + */ + public static UiObject2 openAllApps() { + final UiDevice device = getDevice(); + device.waitForIdle(); + UiObject2 hotseat = device.wait( + Until.findObject(getSelectorForId(R.id.hotseat)), 2500); + Point start = hotseat.getVisibleCenter(); + int endY = (int) (device.getDisplayHeight() * 0.1f); + // 100 px/step + device.swipe(start.x, start.y, start.x, endY, (start.y - endY) / 100); + return findViewById(R.id.apps_list_view); + } + + public static UiObject2 findViewById(int id) { + return getDevice().wait(Until.findObject(getSelectorForId(id)), + AbstractLauncherUiTest.DEFAULT_UI_TIMEOUT); + } + + public static BySelector getSelectorForId(int id) { + final Context targetContext = getTargetContext(); + String name = targetContext.getResources().getResourceEntryName(id); + return By.res(targetContext.getPackageName(), name); + } + + /** + * Finds a widget provider which can fit on the home screen. + * + * @param test test suite. + * @param hasConfigureScreen if true, a provider with a config screen is returned. + */ + public static LauncherAppWidgetProviderInfo findWidgetProvider(AbstractLauncherUiTest test, + final boolean hasConfigureScreen) { + LauncherAppWidgetProviderInfo info = + test.getOnUiThread(new Callable<LauncherAppWidgetProviderInfo>() { + @Override + public LauncherAppWidgetProviderInfo call() throws Exception { + ComponentName cn = new ComponentName(getInstrumentation().getContext(), + hasConfigureScreen ? AppWidgetWithConfig.class + : AppWidgetNoConfig.class); + Log.d(TAG, "findWidgetProvider componentName=" + cn.flattenToString()); + return AppWidgetManagerCompat.getInstance(getTargetContext()) + .findProvider(cn, Process.myUserHandle()); + } + }); + if (info == null) { + throw new IllegalArgumentException("No valid widget provider"); + } + return info; + } + + /** + * Drags an icon to the center of homescreen. + * + * @param icon object that is either app icon or shortcut icon + */ + public static void dragToWorkspace(UiObject2 icon, boolean expectedToShowShortcuts) { + Point center = icon.getVisibleCenter(); + + // Action Down + sendPointer(MotionEvent.ACTION_DOWN, center); + + UiObject2 dragLayer = findViewById(R.id.drag_layer); + + if (expectedToShowShortcuts) { + // Make sure shortcuts show up, and then move a bit to hide them. + assertNotNull(findViewById(R.id.deep_shortcuts_container)); + + Point moveLocation = new Point(center); + int distanceToMove = + getTargetContext().getResources().getDimensionPixelSize( + R.dimen.deep_shortcuts_start_drag_threshold) + 50; + if (moveLocation.y - distanceToMove >= dragLayer.getVisibleBounds().top) { + moveLocation.y -= distanceToMove; + } else { + moveLocation.y += distanceToMove; + } + movePointer(center, moveLocation); + + assertNull(findViewById(R.id.deep_shortcuts_container)); + } + + // Wait until Remove/Delete target is visible + assertNotNull(findViewById(R.id.delete_target_text)); + + Point moveLocation = dragLayer.getVisibleCenter(); + + // Move to center + movePointer(center, moveLocation); + sendPointer(MotionEvent.ACTION_UP, center); + + // Wait until remove target is gone. + getDevice().wait(Until.gone(getSelectorForId(R.id.delete_target_text)), + AbstractLauncherUiTest.DEFAULT_UI_TIMEOUT); + } + + private static void movePointer(Point from, Point to) { + while (!from.equals(to)) { + from.x = getNextMoveValue(to.x, from.x); + from.y = getNextMoveValue(to.y, from.y); + sendPointer(MotionEvent.ACTION_MOVE, from); + } + } + + private static int getNextMoveValue(int targetValue, int oldValue) { + if (targetValue - oldValue > 10) { + return oldValue + 10; + } else if (targetValue - oldValue < -10) { + return oldValue - 10; + } else { + return targetValue; + } + } + + public static void sendPointer(int action, Point point) { + MotionEvent event = MotionEvent.obtain(SystemClock.uptimeMillis(), + SystemClock.uptimeMillis(), action, point.x, point.y, 0); + getInstrumentation().sendPointerSync(event); + event.recycle(); + } + + /** + * Opens widget tray and returns the recycler view. + */ + public static UiObject2 openWidgetsTray() { + final UiDevice device = getDevice(); + device.pressMenu(); // Enter overview mode. + device.wait(Until.findObject( + By.text(getTargetContext().getString(R.string.widget_button_text))), + AbstractLauncherUiTest.DEFAULT_UI_TIMEOUT).click(); + return findViewById(R.id.widgets_list_view); + } +} diff --git a/tests/src/com/android/launcher3/ui/widget/AddConfigWidgetTest.java b/tests/src/com/android/launcher3/ui/widget/AddConfigWidgetTest.java index 970376f1a..80561fcc8 100644 --- a/tests/src/com/android/launcher3/ui/widget/AddConfigWidgetTest.java +++ b/tests/src/com/android/launcher3/ui/widget/AddConfigWidgetTest.java @@ -15,20 +15,20 @@ */ package com.android.launcher3.ui.widget; +import static androidx.test.InstrumentationRegistry.getInstrumentation; + import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNotSame; -import static org.junit.Assert.assertTrue; - -import static androidx.test.InstrumentationRegistry.getInstrumentation; import android.appwidget.AppWidgetManager; import android.content.Intent; +import android.view.View; + import androidx.test.filters.LargeTest; import androidx.test.runner.AndroidJUnit4; import androidx.test.uiautomator.By; import androidx.test.uiautomator.UiObject2; -import android.view.View; import com.android.launcher3.ItemInfo; import com.android.launcher3.LauncherAppWidgetInfo; @@ -36,6 +36,7 @@ import com.android.launcher3.LauncherAppWidgetProviderInfo; import com.android.launcher3.Workspace; import com.android.launcher3.testcomponent.WidgetConfigActivity; import com.android.launcher3.ui.AbstractLauncherUiTest; +import com.android.launcher3.ui.TestViewHelpers; import com.android.launcher3.util.Condition; import com.android.launcher3.util.Wait; import com.android.launcher3.util.rule.ShellCommandRule; @@ -65,7 +66,7 @@ public class AddConfigWidgetTest extends AbstractLauncherUiTest { @Before public void setUp() throws Exception { super.setUp(); - mWidgetInfo = findWidgetProvider(true /* hasConfigureScreen */); + mWidgetInfo = TestViewHelpers.findWidgetProvider(this, true /* hasConfigureScreen */); mAppWidgetManager = AppWidgetManager.getInstance(mTargetContext); } @@ -104,14 +105,14 @@ public class AddConfigWidgetTest extends AbstractLauncherUiTest { mActivityMonitor.startLauncher(); // Open widget tray and wait for load complete. - final UiObject2 widgetContainer = openWidgetsTray(); + final UiObject2 widgetContainer = TestViewHelpers.openWidgetsTray(); Wait.atMost(null, Condition.minChildCount(widgetContainer, 2), DEFAULT_UI_TIMEOUT); // Drag widget to homescreen WidgetConfigStartupMonitor monitor = new WidgetConfigStartupMonitor(); UiObject2 widget = scrollAndFind(widgetContainer, By.clazz(WidgetCell.class) .hasDescendant(By.text(mWidgetInfo.getLabel(mTargetContext.getPackageManager())))); - dragToWorkspace(widget, false); + TestViewHelpers.dragToWorkspace(widget, false); // Widget id for which the config activity was opened mWidgetId = monitor.getWidgetId(); diff --git a/tests/src/com/android/launcher3/ui/widget/AddWidgetTest.java b/tests/src/com/android/launcher3/ui/widget/AddWidgetTest.java index 4f962dfa8..7d3cf2b82 100644 --- a/tests/src/com/android/launcher3/ui/widget/AddWidgetTest.java +++ b/tests/src/com/android/launcher3/ui/widget/AddWidgetTest.java @@ -28,6 +28,7 @@ import com.android.launcher3.LauncherAppWidgetInfo; import com.android.launcher3.LauncherAppWidgetProviderInfo; import com.android.launcher3.Workspace.ItemOperator; import com.android.launcher3.ui.AbstractLauncherUiTest; +import com.android.launcher3.ui.TestViewHelpers; import com.android.launcher3.util.Condition; import com.android.launcher3.util.Wait; import com.android.launcher3.util.rule.ShellCommandRule; @@ -66,16 +67,16 @@ public class AddWidgetTest extends AbstractLauncherUiTest { mActivityMonitor.startLauncher(); final LauncherAppWidgetProviderInfo widgetInfo = - findWidgetProvider(false /* hasConfigureScreen */); + TestViewHelpers.findWidgetProvider(this, false /* hasConfigureScreen */); // Open widget tray and wait for load complete. - final UiObject2 widgetContainer = openWidgetsTray(); + final UiObject2 widgetContainer = TestViewHelpers.openWidgetsTray(); Wait.atMost(null, Condition.minChildCount(widgetContainer, 2), DEFAULT_UI_TIMEOUT); // Drag widget to homescreen UiObject2 widget = scrollAndFind(widgetContainer, By.clazz(WidgetCell.class) .hasDescendant(By.text(widgetInfo.getLabel(mTargetContext.getPackageManager())))); - dragToWorkspace(widget, false); + TestViewHelpers.dragToWorkspace(widget, false); assertTrue(mActivityMonitor.itemExists(new ItemOperator() { @Override diff --git a/tests/src/com/android/launcher3/ui/widget/BindWidgetTest.java b/tests/src/com/android/launcher3/ui/widget/BindWidgetTest.java index 06270b779..22bc05c94 100644 --- a/tests/src/com/android/launcher3/ui/widget/BindWidgetTest.java +++ b/tests/src/com/android/launcher3/ui/widget/BindWidgetTest.java @@ -39,6 +39,7 @@ import com.android.launcher3.Workspace; import com.android.launcher3.compat.AppWidgetManagerCompat; import com.android.launcher3.compat.PackageInstallerCompat; import com.android.launcher3.ui.AbstractLauncherUiTest; +import com.android.launcher3.ui.TestViewHelpers; import com.android.launcher3.util.ContentWriter; import com.android.launcher3.util.rule.ShellCommandRule; import com.android.launcher3.widget.LauncherAppWidgetHostView; @@ -58,6 +59,7 @@ import java.util.Set; import androidx.test.filters.LargeTest; import androidx.test.runner.AndroidJUnit4; import androidx.test.uiautomator.UiSelector; +import java.util.concurrent.Callable; /** * Tests for bind widget flow. @@ -68,7 +70,8 @@ import androidx.test.uiautomator.UiSelector; @RunWith(AndroidJUnit4.class) public class BindWidgetTest extends AbstractLauncherUiTest { - @Rule public ShellCommandRule mGrantWidgetRule = ShellCommandRule.grantWidgetBind(); + @Rule + public ShellCommandRule mGrantWidgetRule = ShellCommandRule.grantWidgetBind(); private ContentResolver mResolver; private AppWidgetManagerCompat mWidgetManager; @@ -116,7 +119,7 @@ public class BindWidgetTest extends AbstractLauncherUiTest { @Test public void testBindNormalWidget_withConfig() { - LauncherAppWidgetProviderInfo info = findWidgetProvider(true); + LauncherAppWidgetProviderInfo info = TestViewHelpers.findWidgetProvider(this, true); LauncherAppWidgetInfo item = createWidgetInfo(info, true); setupContents(item); @@ -125,7 +128,7 @@ public class BindWidgetTest extends AbstractLauncherUiTest { @Test public void testBindNormalWidget_withoutConfig() { - LauncherAppWidgetProviderInfo info = findWidgetProvider(false); + LauncherAppWidgetProviderInfo info = TestViewHelpers.findWidgetProvider(this, false); LauncherAppWidgetInfo item = createWidgetInfo(info, true); setupContents(item); @@ -134,7 +137,7 @@ public class BindWidgetTest extends AbstractLauncherUiTest { @Test @Ignore public void testUnboundWidget_removed() { - LauncherAppWidgetProviderInfo info = findWidgetProvider(false); + LauncherAppWidgetProviderInfo info = TestViewHelpers.findWidgetProvider(this, false); LauncherAppWidgetInfo item = createWidgetInfo(info, false); item.appWidgetId = -33; @@ -159,7 +162,7 @@ public class BindWidgetTest extends AbstractLauncherUiTest { "Test Started @ " + android.util.Log.getStackTraceString(new Throwable())); } // A non-restored widget with no config screen gets restored automatically. - LauncherAppWidgetProviderInfo info = findWidgetProvider(false); + LauncherAppWidgetProviderInfo info = TestViewHelpers.findWidgetProvider(this, false); // Do not bind the widget LauncherAppWidgetInfo item = createWidgetInfo(info, false); @@ -183,7 +186,7 @@ public class BindWidgetTest extends AbstractLauncherUiTest { "Test Started @ " + android.util.Log.getStackTraceString(new Throwable())); } // A non-restored widget with config screen get bound and shows a 'Click to setup' UI. - LauncherAppWidgetProviderInfo info = findWidgetProvider(true); + LauncherAppWidgetProviderInfo info = TestViewHelpers.findWidgetProvider(this, true); // Do not bind the widget LauncherAppWidgetInfo item = createWidgetInfo(info, false); diff --git a/tests/src/com/android/launcher3/ui/widget/RequestPinItemTest.java b/tests/src/com/android/launcher3/ui/widget/RequestPinItemTest.java index f6c72864f..95a128961 100644 --- a/tests/src/com/android/launcher3/ui/widget/RequestPinItemTest.java +++ b/tests/src/com/android/launcher3/ui/widget/RequestPinItemTest.java @@ -42,6 +42,7 @@ import com.android.launcher3.testcomponent.AppWidgetNoConfig; import com.android.launcher3.testcomponent.AppWidgetWithConfig; import com.android.launcher3.testcomponent.RequestPinItemActivity; import com.android.launcher3.ui.AbstractLauncherUiTest; +import com.android.launcher3.ui.TestViewHelpers; import com.android.launcher3.util.Condition; import com.android.launcher3.util.Wait; import com.android.launcher3.util.rule.ShellCommandRule; @@ -151,7 +152,7 @@ public class RequestPinItemTest extends AbstractLauncherUiTest { mActivityMonitor.startLauncher(); // Open all apps and wait for load complete - final UiObject2 appsContainer = openAllApps(); + final UiObject2 appsContainer = TestViewHelpers.openAllApps(); Wait.atMost(null, Condition.minChildCount(appsContainer, 2), DEFAULT_UI_TIMEOUT); // Open Pin item activity |