Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 53d3427b authored by Steven Ng's avatar Steven Ng
Browse files

Fix WidgetsListContentEntryTest static initialization error

Test: m RunLauncherRoboTests

Bug: 180158637
Change-Id: I26316dddd41b1519e8deb0e049355cdce71aac4f
parent 106aa0d6
Loading
Loading
Loading
Loading
+28 −32
Original line number Diff line number Diff line
@@ -50,20 +50,11 @@ import java.util.Map;
@RunWith(RobolectricTestRunner.class)
public final class WidgetsListContentEntryTest {
    private static final String PACKAGE_NAME = "com.google.test";
    private static final PackageItemInfo PACKAGE_ITEM_INFO = new PackageItemInfo(PACKAGE_NAME);
    private static final ComponentName WIDGET_1 = ComponentName.createRelative(PACKAGE_NAME,
            ".widget1");
    private static final ComponentName WIDGET_2 = ComponentName.createRelative(PACKAGE_NAME,
            ".widget2");
    private static final ComponentName WIDGET_3 = ComponentName.createRelative(PACKAGE_NAME,
            ".widget3");
    private static final Map<ComponentName, String> WIDGETS_TO_LABELS = new HashMap();

    static {
        WIDGETS_TO_LABELS.put(WIDGET_1, "Cat");
        WIDGETS_TO_LABELS.put(WIDGET_2, "Dog");
        WIDGETS_TO_LABELS.put(WIDGET_3, "Bird");
    }
    private final PackageItemInfo mPackageItemInfo = new PackageItemInfo(PACKAGE_NAME);
    private final ComponentName mWidget1 = ComponentName.createRelative(PACKAGE_NAME, ".mWidget1");
    private final ComponentName mWidget2 = ComponentName.createRelative(PACKAGE_NAME, ".mWidget2");
    private final ComponentName mWidget3 = ComponentName.createRelative(PACKAGE_NAME, ".mWidget3");
    private final Map<ComponentName, String> mWidgetsToLabels = new HashMap();

    @Mock private IconCache mIconCache;

@@ -73,6 +64,11 @@ public final class WidgetsListContentEntryTest {
    @Before
    public void setUp() {
        MockitoAnnotations.initMocks(this);

        mWidgetsToLabels.put(mWidget1, "Cat");
        mWidgetsToLabels.put(mWidget2, "Dog");
        mWidgetsToLabels.put(mWidget3, "Bird");

        mContext = RuntimeEnvironment.application;
        mTestProfile = new InvariantDeviceProfile();
        mTestProfile.numRows = 5;
@@ -80,7 +76,7 @@ public final class WidgetsListContentEntryTest {

        doAnswer(invocation -> {
            ComponentWithLabel componentWithLabel = (ComponentWithLabel) invocation.getArgument(0);
            return WIDGETS_TO_LABELS.get(componentWithLabel.getComponent());
            return mWidgetsToLabels.get(componentWithLabel.getComponent());
        }).when(mIconCache).getTitleNoCache(any());
    }

@@ -88,14 +84,14 @@ public final class WidgetsListContentEntryTest {
    public void unsortedWidgets_diffLabels_shouldSortWidgetItems() {
        // GIVEN a list of widgets in unsorted order.
        // Cat 2x3
        WidgetItem widgetItem1 = createWidgetItem(WIDGET_1, /* spanX= */ 2, /* spanY= */ 3);
        WidgetItem widgetItem1 = createWidgetItem(mWidget1, /* spanX= */ 2, /* spanY= */ 3);
        // Dog 2x3
        WidgetItem widgetItem2 = createWidgetItem(WIDGET_2, /* spanX= */ 2, /* spanY= */ 3);
        WidgetItem widgetItem2 = createWidgetItem(mWidget2, /* spanX= */ 2, /* spanY= */ 3);
        // Bird 2x3
        WidgetItem widgetItem3 = createWidgetItem(WIDGET_3, /* spanX= */ 2, /* spanY= */ 3);
        WidgetItem widgetItem3 = createWidgetItem(mWidget3, /* spanX= */ 2, /* spanY= */ 3);

        // WHEN creates a WidgetsListRowEntry with the unsorted widgets.
        WidgetsListContentEntry widgetsListRowEntry = new WidgetsListContentEntry(PACKAGE_ITEM_INFO,
        WidgetsListContentEntry widgetsListRowEntry = new WidgetsListContentEntry(mPackageItemInfo,
                /* titleSectionName= */ "T",
                List.of(widgetItem1, widgetItem2, widgetItem3));

@@ -104,21 +100,21 @@ public final class WidgetsListContentEntryTest {
                .containsExactly(widgetItem3, widgetItem1, widgetItem2)
                .inOrder();
        assertThat(widgetsListRowEntry.mTitleSectionName).isEqualTo("T");
        assertThat(widgetsListRowEntry.mPkgItem).isEqualTo(PACKAGE_ITEM_INFO);
        assertThat(widgetsListRowEntry.mPkgItem).isEqualTo(mPackageItemInfo);
    }

    @Test
    public void unsortedWidgets_sameLabels_differentSize_shouldSortWidgetItems() {
        // GIVEN a list of widgets in unsorted order.
        // Cat 3x3
        WidgetItem widgetItem1 = createWidgetItem(WIDGET_1, /* spanX= */ 3, /* spanY= */ 3);
        WidgetItem widgetItem1 = createWidgetItem(mWidget1, /* spanX= */ 3, /* spanY= */ 3);
        // Cat 1x2
        WidgetItem widgetItem2 = createWidgetItem(WIDGET_1, /* spanX= */ 1, /* spanY= */ 2);
        WidgetItem widgetItem2 = createWidgetItem(mWidget1, /* spanX= */ 1, /* spanY= */ 2);
        // Cat 2x2
        WidgetItem widgetItem3 = createWidgetItem(WIDGET_1, /* spanX= */ 2, /* spanY= */ 2);
        WidgetItem widgetItem3 = createWidgetItem(mWidget1, /* spanX= */ 2, /* spanY= */ 2);

        // WHEN creates a WidgetsListRowEntry with the unsorted widgets.
        WidgetsListContentEntry widgetsListRowEntry = new WidgetsListContentEntry(PACKAGE_ITEM_INFO,
        WidgetsListContentEntry widgetsListRowEntry = new WidgetsListContentEntry(mPackageItemInfo,
                /* titleSectionName= */ "T",
                List.of(widgetItem1, widgetItem2, widgetItem3));

@@ -128,23 +124,23 @@ public final class WidgetsListContentEntryTest {
                .containsExactly(widgetItem2, widgetItem3, widgetItem1)
                .inOrder();
        assertThat(widgetsListRowEntry.mTitleSectionName).isEqualTo("T");
        assertThat(widgetsListRowEntry.mPkgItem).isEqualTo(PACKAGE_ITEM_INFO);
        assertThat(widgetsListRowEntry.mPkgItem).isEqualTo(mPackageItemInfo);
    }

    @Test
    public void unsortedWidgets_hodgepodge_shouldSortWidgetItems() {
        // GIVEN a list of widgets in unsorted order.
        // Cat 3x3
        WidgetItem widgetItem1 = createWidgetItem(WIDGET_1, /* spanX= */ 3, /* spanY= */ 3);
        WidgetItem widgetItem1 = createWidgetItem(mWidget1, /* spanX= */ 3, /* spanY= */ 3);
        // Cat 1x2
        WidgetItem widgetItem2 = createWidgetItem(WIDGET_1, /* spanX= */ 1, /* spanY= */ 2);
        WidgetItem widgetItem2 = createWidgetItem(mWidget1, /* spanX= */ 1, /* spanY= */ 2);
        // Dog 2x2
        WidgetItem widgetItem3 = createWidgetItem(WIDGET_2, /* spanX= */ 2, /* spanY= */ 2);
        WidgetItem widgetItem3 = createWidgetItem(mWidget2, /* spanX= */ 2, /* spanY= */ 2);
        // Bird 2x2
        WidgetItem widgetItem4 = createWidgetItem(WIDGET_3, /* spanX= */ 2, /* spanY= */ 2);
        WidgetItem widgetItem4 = createWidgetItem(mWidget3, /* spanX= */ 2, /* spanY= */ 2);

        // WHEN creates a WidgetsListRowEntry with the unsorted widgets.
        WidgetsListContentEntry widgetsListRowEntry = new WidgetsListContentEntry(PACKAGE_ITEM_INFO,
        WidgetsListContentEntry widgetsListRowEntry = new WidgetsListContentEntry(mPackageItemInfo,
                /* titleSectionName= */ "T",
                List.of(widgetItem1, widgetItem2, widgetItem3, widgetItem4));

@@ -155,11 +151,11 @@ public final class WidgetsListContentEntryTest {
                .containsExactly(widgetItem4, widgetItem2, widgetItem1, widgetItem3)
                .inOrder();
        assertThat(widgetsListRowEntry.mTitleSectionName).isEqualTo("T");
        assertThat(widgetsListRowEntry.mPkgItem).isEqualTo(PACKAGE_ITEM_INFO);
        assertThat(widgetsListRowEntry.mPkgItem).isEqualTo(mPackageItemInfo);
    }

    private WidgetItem createWidgetItem(ComponentName componentName, int spanX, int spanY) {
        String label = WIDGETS_TO_LABELS.get(componentName);
        String label = mWidgetsToLabels.get(componentName);
        ShadowPackageManager packageManager = shadowOf(mContext.getPackageManager());
        AppWidgetProviderInfo widgetInfo = new AppWidgetProviderInfo();
        widgetInfo.provider = componentName;