From efc24f92514ea2cc78502f5528c4ab98abec3a2e Mon Sep 17 00:00:00 2001 From: Sihua Ma Date: Sat, 4 May 2024 00:47:38 +0000 Subject: [PATCH] Move widget picker tests to Robolectric Test: atest Launcher3RoboTests Test: atest NexusLauncherRoboTests Test: SysUI studio Flag: NONE test migration Bug: 297950111 Change-Id: I9124d4f45feb0ded74ffe2e0aabffdf98459ff4f --- .../com/android/launcher3/util/WidgetUtils.java | 15 ++++++--------- .../widget/picker/WidgetImageViewTest.kt | 0 .../WidgetRecommendationCategoryProviderTest.java | 10 +++------- .../WidgetsListHeaderAccessibilityTest.java | 0 .../WidgetsListHeaderViewHolderBinderTest.java | 0 .../WidgetsListTableViewHolderBinderTest.java | 0 .../picker/model/WidgetsListContentEntryTest.java | 0 .../search/SimpleWidgetsSearchAlgorithmTest.java | 3 ++- .../util/WidgetPreviewContainerSizesTest.kt | 10 +++++++++- .../widget/picker/util/WidgetsTableUtilsTest.java | 0 10 files changed, 20 insertions(+), 18 deletions(-) rename tests/{ => multivalentTests}/src/com/android/launcher3/widget/picker/WidgetImageViewTest.kt (100%) rename tests/{ => multivalentTests}/src/com/android/launcher3/widget/picker/WidgetRecommendationCategoryProviderTest.java (93%) rename tests/{ => multivalentTests}/src/com/android/launcher3/widget/picker/WidgetsListHeaderAccessibilityTest.java (100%) rename tests/{ => multivalentTests}/src/com/android/launcher3/widget/picker/WidgetsListHeaderViewHolderBinderTest.java (100%) rename tests/{ => multivalentTests}/src/com/android/launcher3/widget/picker/WidgetsListTableViewHolderBinderTest.java (100%) rename tests/{ => multivalentTests}/src/com/android/launcher3/widget/picker/model/WidgetsListContentEntryTest.java (100%) rename tests/{ => multivalentTests}/src/com/android/launcher3/widget/picker/search/SimpleWidgetsSearchAlgorithmTest.java (98%) rename tests/{ => multivalentTests}/src/com/android/launcher3/widget/picker/util/WidgetPreviewContainerSizesTest.kt (93%) rename tests/{ => multivalentTests}/src/com/android/launcher3/widget/picker/util/WidgetsTableUtilsTest.java (100%) diff --git a/tests/multivalentTests/src/com/android/launcher3/util/WidgetUtils.java b/tests/multivalentTests/src/com/android/launcher3/util/WidgetUtils.java index 027a31aeb2..deb0ef39a3 100644 --- a/tests/multivalentTests/src/com/android/launcher3/util/WidgetUtils.java +++ b/tests/multivalentTests/src/com/android/launcher3/util/WidgetUtils.java @@ -15,15 +15,12 @@ */ package com.android.launcher3.util; -import static androidx.test.core.app.ApplicationProvider.getApplicationContext; -import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation; - -import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProviderInfo; import android.content.ComponentName; import android.content.Context; +import android.content.pm.ActivityInfo; +import android.content.pm.ApplicationInfo; import android.os.Bundle; -import android.os.Process; import com.android.launcher3.LauncherSettings; import com.android.launcher3.model.data.LauncherAppWidgetInfo; @@ -87,10 +84,10 @@ public class WidgetUtils { * Creates a {@link AppWidgetProviderInfo} for the provided component name */ public static AppWidgetProviderInfo createAppWidgetProviderInfo(ComponentName cn) { - AppWidgetProviderInfo info = AppWidgetManager.getInstance(getApplicationContext()) - .getInstalledProvidersForPackage( - getInstrumentation().getContext().getPackageName(), Process.myUserHandle()) - .get(0); + ActivityInfo activityInfo = new ActivityInfo(); + activityInfo.applicationInfo = new ApplicationInfo(); + AppWidgetProviderInfo info = new AppWidgetProviderInfo(); + info.providerInfo = activityInfo; info.provider = cn; return info; } diff --git a/tests/src/com/android/launcher3/widget/picker/WidgetImageViewTest.kt b/tests/multivalentTests/src/com/android/launcher3/widget/picker/WidgetImageViewTest.kt similarity index 100% rename from tests/src/com/android/launcher3/widget/picker/WidgetImageViewTest.kt rename to tests/multivalentTests/src/com/android/launcher3/widget/picker/WidgetImageViewTest.kt diff --git a/tests/src/com/android/launcher3/widget/picker/WidgetRecommendationCategoryProviderTest.java b/tests/multivalentTests/src/com/android/launcher3/widget/picker/WidgetRecommendationCategoryProviderTest.java similarity index 93% rename from tests/src/com/android/launcher3/widget/picker/WidgetRecommendationCategoryProviderTest.java rename to tests/multivalentTests/src/com/android/launcher3/widget/picker/WidgetRecommendationCategoryProviderTest.java index 7476454a84..3024d26af7 100644 --- a/tests/src/com/android/launcher3/widget/picker/WidgetRecommendationCategoryProviderTest.java +++ b/tests/multivalentTests/src/com/android/launcher3/widget/picker/WidgetRecommendationCategoryProviderTest.java @@ -25,7 +25,6 @@ import static android.content.pm.ApplicationInfo.CATEGORY_UNDEFINED; import static android.content.pm.ApplicationInfo.CATEGORY_VIDEO; import static android.content.pm.ApplicationInfo.FLAG_INSTALLED; -import static androidx.test.core.app.ApplicationProvider.getApplicationContext; import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation; import static com.google.common.truth.Truth.assertThat; @@ -35,7 +34,6 @@ import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.when; -import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProviderInfo; import android.content.ComponentName; import android.content.Context; @@ -53,6 +51,7 @@ import com.android.launcher3.R; import com.android.launcher3.icons.IconCache; import com.android.launcher3.model.WidgetItem; import com.android.launcher3.util.Executors; +import com.android.launcher3.util.WidgetUtils; import com.android.launcher3.widget.LauncherAppWidgetProviderInfo; import com.google.common.collect.ImmutableMap; @@ -152,11 +151,8 @@ public class WidgetRecommendationCategoryProviderTest { doAnswer(invocation -> widgetLabel).when(mIconCache).getTitleNoCache(any()); - AppWidgetProviderInfo providerInfo = AppWidgetManager.getInstance(getApplicationContext()) - .getInstalledProvidersForPackage( - getInstrumentation().getContext().getPackageName(), Process.myUserHandle()) - .get(0); - providerInfo.provider = ComponentName.createRelative(TEST_PACKAGE, widgetClassName); + AppWidgetProviderInfo providerInfo = WidgetUtils.createAppWidgetProviderInfo(ComponentName + .createRelative(TEST_PACKAGE, widgetClassName)); LauncherAppWidgetProviderInfo launcherAppWidgetProviderInfo = LauncherAppWidgetProviderInfo.fromProviderInfo(mContext, providerInfo); diff --git a/tests/src/com/android/launcher3/widget/picker/WidgetsListHeaderAccessibilityTest.java b/tests/multivalentTests/src/com/android/launcher3/widget/picker/WidgetsListHeaderAccessibilityTest.java similarity index 100% rename from tests/src/com/android/launcher3/widget/picker/WidgetsListHeaderAccessibilityTest.java rename to tests/multivalentTests/src/com/android/launcher3/widget/picker/WidgetsListHeaderAccessibilityTest.java diff --git a/tests/src/com/android/launcher3/widget/picker/WidgetsListHeaderViewHolderBinderTest.java b/tests/multivalentTests/src/com/android/launcher3/widget/picker/WidgetsListHeaderViewHolderBinderTest.java similarity index 100% rename from tests/src/com/android/launcher3/widget/picker/WidgetsListHeaderViewHolderBinderTest.java rename to tests/multivalentTests/src/com/android/launcher3/widget/picker/WidgetsListHeaderViewHolderBinderTest.java diff --git a/tests/src/com/android/launcher3/widget/picker/WidgetsListTableViewHolderBinderTest.java b/tests/multivalentTests/src/com/android/launcher3/widget/picker/WidgetsListTableViewHolderBinderTest.java similarity index 100% rename from tests/src/com/android/launcher3/widget/picker/WidgetsListTableViewHolderBinderTest.java rename to tests/multivalentTests/src/com/android/launcher3/widget/picker/WidgetsListTableViewHolderBinderTest.java diff --git a/tests/src/com/android/launcher3/widget/picker/model/WidgetsListContentEntryTest.java b/tests/multivalentTests/src/com/android/launcher3/widget/picker/model/WidgetsListContentEntryTest.java similarity index 100% rename from tests/src/com/android/launcher3/widget/picker/model/WidgetsListContentEntryTest.java rename to tests/multivalentTests/src/com/android/launcher3/widget/picker/model/WidgetsListContentEntryTest.java diff --git a/tests/src/com/android/launcher3/widget/picker/search/SimpleWidgetsSearchAlgorithmTest.java b/tests/multivalentTests/src/com/android/launcher3/widget/picker/search/SimpleWidgetsSearchAlgorithmTest.java similarity index 98% rename from tests/src/com/android/launcher3/widget/picker/search/SimpleWidgetsSearchAlgorithmTest.java rename to tests/multivalentTests/src/com/android/launcher3/widget/picker/search/SimpleWidgetsSearchAlgorithmTest.java index 9c03ccf13f..0370a6b3fc 100644 --- a/tests/src/com/android/launcher3/widget/picker/search/SimpleWidgetsSearchAlgorithmTest.java +++ b/tests/multivalentTests/src/com/android/launcher3/widget/picker/search/SimpleWidgetsSearchAlgorithmTest.java @@ -17,6 +17,7 @@ package com.android.launcher3.widget.picker.search; import static androidx.test.core.app.ApplicationProvider.getApplicationContext; +import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation; import static com.android.launcher3.util.Executors.MAIN_EXECUTOR; import static com.android.launcher3.util.WidgetUtils.createAppWidgetProviderInfo; @@ -163,7 +164,7 @@ public class SimpleWidgetsSearchAlgorithmTest { .when(mDataProvider) .getAllWidgets(); mSimpleWidgetsSearchAlgorithm.doSearch("Ca", mSearchCallback); - MAIN_EXECUTOR.submit(() -> { }).get(); + getInstrumentation().waitForIdleSync(); verify(mSearchCallback).onSearchResult( matches("Ca"), argThat(a -> a != null && !a.isEmpty())); } diff --git a/tests/src/com/android/launcher3/widget/picker/util/WidgetPreviewContainerSizesTest.kt b/tests/multivalentTests/src/com/android/launcher3/widget/picker/util/WidgetPreviewContainerSizesTest.kt similarity index 93% rename from tests/src/com/android/launcher3/widget/picker/util/WidgetPreviewContainerSizesTest.kt rename to tests/multivalentTests/src/com/android/launcher3/widget/picker/util/WidgetPreviewContainerSizesTest.kt index 040fbf5739..7b629bfe89 100644 --- a/tests/src/com/android/launcher3/widget/picker/util/WidgetPreviewContainerSizesTest.kt +++ b/tests/multivalentTests/src/com/android/launcher3/widget/picker/util/WidgetPreviewContainerSizesTest.kt @@ -43,6 +43,7 @@ class WidgetPreviewContainerSizesTest { private lateinit var context: Context private lateinit var deviceProfile: DeviceProfile private lateinit var testInvariantProfile: InvariantDeviceProfile + private lateinit var widgetItemInvariantProfile: InvariantDeviceProfile @Mock private lateinit var iconCache: IconCache @@ -51,6 +52,11 @@ class WidgetPreviewContainerSizesTest { MockitoAnnotations.initMocks(this) context = ActivityContextWrapper(ApplicationProvider.getApplicationContext()) testInvariantProfile = LauncherAppState.getIDP(context) + widgetItemInvariantProfile = + InvariantDeviceProfile().apply { + numRows = TEST_GRID_SIZE + numColumns = TEST_GRID_SIZE + } deviceProfile = testInvariantProfile.getDeviceProfile(context).copy(context) } @@ -60,7 +66,8 @@ class WidgetPreviewContainerSizesTest { val expectedPreviewContainers = testSizes.values.toList() for ((index, widgetSize) in testSizes.keys.withIndex()) { - val widgetItem = createWidgetItem(widgetSize, context, testInvariantProfile, iconCache) + val widgetItem = + createWidgetItem(widgetSize, context, widgetItemInvariantProfile, iconCache) assertWithMessage("size for $widgetSize should be: ${expectedPreviewContainers[index]}") .that(WidgetPreviewContainerSize.forItem(widgetItem, deviceProfile)) @@ -70,6 +77,7 @@ class WidgetPreviewContainerSizesTest { companion object { private const val TEST_PACKAGE = "com.google.test" + private const val TEST_GRID_SIZE = 6 private val HANDHELD_TEST_SIZES: Map = mapOf( diff --git a/tests/src/com/android/launcher3/widget/picker/util/WidgetsTableUtilsTest.java b/tests/multivalentTests/src/com/android/launcher3/widget/picker/util/WidgetsTableUtilsTest.java similarity index 100% rename from tests/src/com/android/launcher3/widget/picker/util/WidgetsTableUtilsTest.java rename to tests/multivalentTests/src/com/android/launcher3/widget/picker/util/WidgetsTableUtilsTest.java