From 97ee134acc06ee042e4870a699dbf2e863e7529c Mon Sep 17 00:00:00 2001 From: Uwais Ashraf Date: Tue, 21 May 2024 19:44:41 +0000 Subject: [PATCH] Revert "Move widget picker tests to Robolectric" This reverts commit efc24f92514ea2cc78502f5528c4ab98abec3a2e. Reason for revert: Potential cause for flakiness https://android-build.corp.google.com/test_investigate/?invocationId=I07000010279081631&testResultId=TR32129311605132927 Change-Id: I4f0154bc101b6bc840c11ff0b6bf42f4ebc5ed03 --- .../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, 18 insertions(+), 20 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 deb0ef39a3..027a31aeb2 100644 --- a/tests/multivalentTests/src/com/android/launcher3/util/WidgetUtils.java +++ b/tests/multivalentTests/src/com/android/launcher3/util/WidgetUtils.java @@ -15,12 +15,15 @@ */ 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; @@ -84,10 +87,10 @@ public class WidgetUtils { * Creates a {@link AppWidgetProviderInfo} for the provided component name */ public static AppWidgetProviderInfo createAppWidgetProviderInfo(ComponentName cn) { - ActivityInfo activityInfo = new ActivityInfo(); - activityInfo.applicationInfo = new ApplicationInfo(); - AppWidgetProviderInfo info = new AppWidgetProviderInfo(); - info.providerInfo = activityInfo; + AppWidgetProviderInfo info = AppWidgetManager.getInstance(getApplicationContext()) + .getInstalledProvidersForPackage( + getInstrumentation().getContext().getPackageName(), Process.myUserHandle()) + .get(0); info.provider = cn; return info; } diff --git a/tests/multivalentTests/src/com/android/launcher3/widget/picker/WidgetImageViewTest.kt b/tests/src/com/android/launcher3/widget/picker/WidgetImageViewTest.kt similarity index 100% rename from tests/multivalentTests/src/com/android/launcher3/widget/picker/WidgetImageViewTest.kt rename to tests/src/com/android/launcher3/widget/picker/WidgetImageViewTest.kt diff --git a/tests/multivalentTests/src/com/android/launcher3/widget/picker/WidgetRecommendationCategoryProviderTest.java b/tests/src/com/android/launcher3/widget/picker/WidgetRecommendationCategoryProviderTest.java similarity index 93% rename from tests/multivalentTests/src/com/android/launcher3/widget/picker/WidgetRecommendationCategoryProviderTest.java rename to tests/src/com/android/launcher3/widget/picker/WidgetRecommendationCategoryProviderTest.java index 3024d26af7..7476454a84 100644 --- a/tests/multivalentTests/src/com/android/launcher3/widget/picker/WidgetRecommendationCategoryProviderTest.java +++ b/tests/src/com/android/launcher3/widget/picker/WidgetRecommendationCategoryProviderTest.java @@ -25,6 +25,7 @@ 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; @@ -34,6 +35,7 @@ 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; @@ -51,7 +53,6 @@ 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; @@ -151,8 +152,11 @@ public class WidgetRecommendationCategoryProviderTest { doAnswer(invocation -> widgetLabel).when(mIconCache).getTitleNoCache(any()); - AppWidgetProviderInfo providerInfo = WidgetUtils.createAppWidgetProviderInfo(ComponentName - .createRelative(TEST_PACKAGE, widgetClassName)); + AppWidgetProviderInfo providerInfo = AppWidgetManager.getInstance(getApplicationContext()) + .getInstalledProvidersForPackage( + getInstrumentation().getContext().getPackageName(), Process.myUserHandle()) + .get(0); + providerInfo.provider = ComponentName.createRelative(TEST_PACKAGE, widgetClassName); LauncherAppWidgetProviderInfo launcherAppWidgetProviderInfo = LauncherAppWidgetProviderInfo.fromProviderInfo(mContext, providerInfo); diff --git a/tests/multivalentTests/src/com/android/launcher3/widget/picker/WidgetsListHeaderAccessibilityTest.java b/tests/src/com/android/launcher3/widget/picker/WidgetsListHeaderAccessibilityTest.java similarity index 100% rename from tests/multivalentTests/src/com/android/launcher3/widget/picker/WidgetsListHeaderAccessibilityTest.java rename to tests/src/com/android/launcher3/widget/picker/WidgetsListHeaderAccessibilityTest.java diff --git a/tests/multivalentTests/src/com/android/launcher3/widget/picker/WidgetsListHeaderViewHolderBinderTest.java b/tests/src/com/android/launcher3/widget/picker/WidgetsListHeaderViewHolderBinderTest.java similarity index 100% rename from tests/multivalentTests/src/com/android/launcher3/widget/picker/WidgetsListHeaderViewHolderBinderTest.java rename to tests/src/com/android/launcher3/widget/picker/WidgetsListHeaderViewHolderBinderTest.java diff --git a/tests/multivalentTests/src/com/android/launcher3/widget/picker/WidgetsListTableViewHolderBinderTest.java b/tests/src/com/android/launcher3/widget/picker/WidgetsListTableViewHolderBinderTest.java similarity index 100% rename from tests/multivalentTests/src/com/android/launcher3/widget/picker/WidgetsListTableViewHolderBinderTest.java rename to tests/src/com/android/launcher3/widget/picker/WidgetsListTableViewHolderBinderTest.java diff --git a/tests/multivalentTests/src/com/android/launcher3/widget/picker/model/WidgetsListContentEntryTest.java b/tests/src/com/android/launcher3/widget/picker/model/WidgetsListContentEntryTest.java similarity index 100% rename from tests/multivalentTests/src/com/android/launcher3/widget/picker/model/WidgetsListContentEntryTest.java rename to tests/src/com/android/launcher3/widget/picker/model/WidgetsListContentEntryTest.java diff --git a/tests/multivalentTests/src/com/android/launcher3/widget/picker/search/SimpleWidgetsSearchAlgorithmTest.java b/tests/src/com/android/launcher3/widget/picker/search/SimpleWidgetsSearchAlgorithmTest.java similarity index 98% rename from tests/multivalentTests/src/com/android/launcher3/widget/picker/search/SimpleWidgetsSearchAlgorithmTest.java rename to tests/src/com/android/launcher3/widget/picker/search/SimpleWidgetsSearchAlgorithmTest.java index 0370a6b3fc..9c03ccf13f 100644 --- a/tests/multivalentTests/src/com/android/launcher3/widget/picker/search/SimpleWidgetsSearchAlgorithmTest.java +++ b/tests/src/com/android/launcher3/widget/picker/search/SimpleWidgetsSearchAlgorithmTest.java @@ -17,7 +17,6 @@ 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; @@ -164,7 +163,7 @@ public class SimpleWidgetsSearchAlgorithmTest { .when(mDataProvider) .getAllWidgets(); mSimpleWidgetsSearchAlgorithm.doSearch("Ca", mSearchCallback); - getInstrumentation().waitForIdleSync(); + MAIN_EXECUTOR.submit(() -> { }).get(); verify(mSearchCallback).onSearchResult( matches("Ca"), argThat(a -> a != null && !a.isEmpty())); } diff --git a/tests/multivalentTests/src/com/android/launcher3/widget/picker/util/WidgetPreviewContainerSizesTest.kt b/tests/src/com/android/launcher3/widget/picker/util/WidgetPreviewContainerSizesTest.kt similarity index 93% rename from tests/multivalentTests/src/com/android/launcher3/widget/picker/util/WidgetPreviewContainerSizesTest.kt rename to tests/src/com/android/launcher3/widget/picker/util/WidgetPreviewContainerSizesTest.kt index 7b629bfe89..040fbf5739 100644 --- a/tests/multivalentTests/src/com/android/launcher3/widget/picker/util/WidgetPreviewContainerSizesTest.kt +++ b/tests/src/com/android/launcher3/widget/picker/util/WidgetPreviewContainerSizesTest.kt @@ -43,7 +43,6 @@ 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 @@ -52,11 +51,6 @@ 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) } @@ -66,8 +60,7 @@ class WidgetPreviewContainerSizesTest { val expectedPreviewContainers = testSizes.values.toList() for ((index, widgetSize) in testSizes.keys.withIndex()) { - val widgetItem = - createWidgetItem(widgetSize, context, widgetItemInvariantProfile, iconCache) + val widgetItem = createWidgetItem(widgetSize, context, testInvariantProfile, iconCache) assertWithMessage("size for $widgetSize should be: ${expectedPreviewContainers[index]}") .that(WidgetPreviewContainerSize.forItem(widgetItem, deviceProfile)) @@ -77,7 +70,6 @@ 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/multivalentTests/src/com/android/launcher3/widget/picker/util/WidgetsTableUtilsTest.java b/tests/src/com/android/launcher3/widget/picker/util/WidgetsTableUtilsTest.java similarity index 100% rename from tests/multivalentTests/src/com/android/launcher3/widget/picker/util/WidgetsTableUtilsTest.java rename to tests/src/com/android/launcher3/widget/picker/util/WidgetsTableUtilsTest.java