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

Commit cee56f03 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Adding common code for instrumentation and robolectric tests" into ub-launcher3-rvc-dev

parents d8cec211 34ff8cb3
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -17,10 +17,11 @@ package com.android.quickstep;

import static androidx.test.InstrumentationRegistry.getContext;
import static androidx.test.InstrumentationRegistry.getInstrumentation;
import static androidx.test.InstrumentationRegistry.getTargetContext;

import static com.android.launcher3.common.WidgetUtils.createWidgetInfo;
import static com.android.launcher3.testcomponent.TestCommandReceiver.EXTRA_VALUE;
import static com.android.launcher3.testcomponent.TestCommandReceiver.SET_LIST_VIEW_SERVICE_BINDER;
import static com.android.launcher3.ui.widget.BindWidgetTest.createWidgetInfo;
import static com.android.quickstep.NavigationModeSwitchRule.Mode.ZERO_BUTTON;

import static org.junit.Assert.assertEquals;
@@ -187,7 +188,7 @@ public class ViewInflationDuringSwipeUp extends AbstractQuickStepTest {
            LauncherSettings.Settings.call(mResolver,
                    LauncherSettings.Settings.METHOD_CLEAR_EMPTY_DB_FLAG);
            LauncherAppWidgetProviderInfo info = TestViewHelpers.findWidgetProvider(this, false);
            LauncherAppWidgetInfo item = createWidgetInfo(info, true);
            LauncherAppWidgetInfo item = createWidgetInfo(info, getTargetContext(), true);

            addItemToScreen(item);
            assertTrue("Widget is not present",
+4 −1
Original line number Diff line number Diff line
@@ -22,7 +22,10 @@ LOCAL_MODULE := LauncherRoboTests
LOCAL_MODULE_CLASS := JAVA_LIBRARIES

LOCAL_SDK_VERSION := system_current
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_SRC_FILES := \
	$(call all-java-files-under, src) \
	$(call all-java-files-under, ../tests/src_common)

LOCAL_STATIC_JAVA_LIBRARIES := \
    androidx.test.runner \
    androidx.test.rules \
+5 −1
Original line number Diff line number Diff line
@@ -62,7 +62,11 @@ else
    LOCAL_STATIC_JAVA_LIBRARIES += ub-launcher-aosp-tapl
endif

LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_SRC_FILES := \
	$(call all-java-files-under, src) \
	$(call all-java-files-under, src_common)


LOCAL_FULL_LIBS_MANIFEST_FILES := $(LOCAL_PATH)/AndroidManifest-common.xml

LOCAL_PACKAGE_NAME := Launcher3Tests
+2 −23
Original line number Diff line number Diff line
@@ -17,7 +17,6 @@ package com.android.launcher3.ui;

import static androidx.test.InstrumentationRegistry.getInstrumentation;

import static com.android.launcher3.WorkspaceLayoutManager.FIRST_SCREEN_ID;
import static com.android.launcher3.ui.TaplTestsLauncher3.getAppPackageName;
import static com.android.launcher3.util.Executors.MAIN_EXECUTOR;

@@ -26,7 +25,6 @@ import static org.junit.Assert.assertTrue;

import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
@@ -53,6 +51,7 @@ import com.android.launcher3.LauncherSettings;
import com.android.launcher3.LauncherState;
import com.android.launcher3.LauncherStateManager;
import com.android.launcher3.Utilities;
import com.android.launcher3.common.WidgetUtils;
import com.android.launcher3.model.AppLaunchTracker;
import com.android.launcher3.model.data.ItemInfo;
import com.android.launcher3.tapl.LauncherInstrumentation;
@@ -60,7 +59,6 @@ import com.android.launcher3.tapl.LauncherInstrumentation.ContainerType;
import com.android.launcher3.tapl.TestHelpers;
import com.android.launcher3.testcomponent.TestCommandReceiver;
import com.android.launcher3.testing.TestProtocol;
import com.android.launcher3.util.ContentWriter;
import com.android.launcher3.util.LooperExecutor;
import com.android.launcher3.util.PackageManagerHelper;
import com.android.launcher3.util.Wait;
@@ -306,26 +304,7 @@ public abstract class AbstractLauncherUiTest {
     * Adds {@param item} on the homescreen on the 0th screen
     */
    protected void addItemToScreen(ItemInfo item) {
        ContentResolver resolver = mTargetContext.getContentResolver();
        int screenId = FIRST_SCREEN_ID;
        // Update the screen id counter for the provider.
        LauncherSettings.Settings.call(resolver,
                LauncherSettings.Settings.METHOD_NEW_SCREEN_ID);

        if (screenId > FIRST_SCREEN_ID) {
            screenId = FIRST_SCREEN_ID;
        }

        // Insert the item
        ContentWriter writer = new ContentWriter(mTargetContext);
        item.id = LauncherSettings.Settings.call(
                resolver, LauncherSettings.Settings.METHOD_NEW_ITEM_ID)
                .getInt(LauncherSettings.Settings.EXTRA_VALUE);
        item.screenId = screenId;
        item.onAddToDatabase(writer);
        writer.put(LauncherSettings.Favorites._ID, item.id);
        resolver.insert(LauncherSettings.Favorites.CONTENT_URI,
                writer.getValues(mTargetContext));
        WidgetUtils.addItemToScreen(item, mTargetContext);
        resetLoaderState();

        // Launch the home activity
+6 −51
Original line number Diff line number Diff line
@@ -17,18 +17,16 @@ package com.android.launcher3.ui.widget;

import static androidx.test.InstrumentationRegistry.getTargetContext;

import static com.android.launcher3.widget.WidgetHostViewLoader.getDefaultOptionsForWidget;
import static com.android.launcher3.common.WidgetUtils.createWidgetInfo;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;

import android.appwidget.AppWidgetHost;
import android.appwidget.AppWidgetManager;
import android.content.ComponentName;
import android.content.ContentResolver;
import android.content.Context;
import android.content.pm.PackageInstaller;
import android.content.pm.PackageInstaller.SessionParams;
import android.content.pm.PackageManager;
@@ -39,7 +37,6 @@ import android.widget.RemoteViews;
import androidx.test.filters.LargeTest;
import androidx.test.runner.AndroidJUnit4;

import com.android.launcher3.LauncherAppWidgetHost;
import com.android.launcher3.LauncherAppWidgetProviderInfo;
import com.android.launcher3.LauncherSettings;
import com.android.launcher3.R;
@@ -50,7 +47,6 @@ import com.android.launcher3.tapl.Workspace;
import com.android.launcher3.ui.AbstractLauncherUiTest;
import com.android.launcher3.ui.TestViewHelpers;
import com.android.launcher3.util.rule.ShellCommandRule;
import com.android.launcher3.widget.PendingAddWidgetInfo;
import com.android.launcher3.widget.WidgetManagerHelper;

import org.junit.After;
@@ -108,7 +104,7 @@ public class BindWidgetTest extends AbstractLauncherUiTest {
    @Test
    public void testBindNormalWidget_withConfig() {
        LauncherAppWidgetProviderInfo info = TestViewHelpers.findWidgetProvider(this, true);
        LauncherAppWidgetInfo item = createWidgetInfo(info, true);
        LauncherAppWidgetInfo item = createWidgetInfo(info, getTargetContext(), true);

        addItemToScreen(item);
        verifyWidgetPresent(info);
@@ -117,7 +113,7 @@ public class BindWidgetTest extends AbstractLauncherUiTest {
    @Test
    public void testBindNormalWidget_withoutConfig() {
        LauncherAppWidgetProviderInfo info = TestViewHelpers.findWidgetProvider(this, false);
        LauncherAppWidgetInfo item = createWidgetInfo(info, true);
        LauncherAppWidgetInfo item = createWidgetInfo(info, getTargetContext(), true);

        addItemToScreen(item);
        verifyWidgetPresent(info);
@@ -126,7 +122,7 @@ public class BindWidgetTest extends AbstractLauncherUiTest {
    @Test
    public void testUnboundWidget_removed() {
        LauncherAppWidgetProviderInfo info = TestViewHelpers.findWidgetProvider(this, false);
        LauncherAppWidgetInfo item = createWidgetInfo(info, false);
        LauncherAppWidgetInfo item = createWidgetInfo(info, getTargetContext(), false);
        item.appWidgetId = -33;

        addItemToScreen(item);
@@ -147,7 +143,7 @@ public class BindWidgetTest extends AbstractLauncherUiTest {
        LauncherAppWidgetProviderInfo info = TestViewHelpers.findWidgetProvider(this, false);

        // Do not bind the widget
        LauncherAppWidgetInfo item = createWidgetInfo(info, false);
        LauncherAppWidgetInfo item = createWidgetInfo(info, getTargetContext(), false);
        item.restoreStatus = LauncherAppWidgetInfo.FLAG_ID_NOT_VALID;

        addItemToScreen(item);
@@ -160,7 +156,7 @@ public class BindWidgetTest extends AbstractLauncherUiTest {
        LauncherAppWidgetProviderInfo info = TestViewHelpers.findWidgetProvider(this, true);

        // Do not bind the widget
        LauncherAppWidgetInfo item = createWidgetInfo(info, false);
        LauncherAppWidgetInfo item = createWidgetInfo(info, getTargetContext(), false);
        item.restoreStatus = LauncherAppWidgetInfo.FLAG_ID_NOT_VALID;

        addItemToScreen(item);
@@ -281,47 +277,6 @@ public class BindWidgetTest extends AbstractLauncherUiTest {
                widget != null);
    }

    /**
     * Creates a LauncherAppWidgetInfo corresponding to {@param info}
     *
     * @param bindWidget if true the info is bound and a valid widgetId is assigned to
     *                   the LauncherAppWidgetInfo
     */
    public static LauncherAppWidgetInfo createWidgetInfo(
            LauncherAppWidgetProviderInfo info, boolean bindWidget) {
        Context targetContext = getTargetContext();

        LauncherAppWidgetInfo item = new LauncherAppWidgetInfo(
                LauncherAppWidgetInfo.NO_ID, info.provider);
        item.spanX = info.minSpanX;
        item.spanY = info.minSpanY;
        item.minSpanX = info.minSpanX;
        item.minSpanY = info.minSpanY;
        item.user = info.getProfile();
        item.cellX = 0;
        item.cellY = 1;
        item.container = LauncherSettings.Favorites.CONTAINER_DESKTOP;

        if (bindWidget) {
            PendingAddWidgetInfo pendingInfo = new PendingAddWidgetInfo(info);
            pendingInfo.spanX = item.spanX;
            pendingInfo.spanY = item.spanY;
            pendingInfo.minSpanX = item.minSpanX;
            pendingInfo.minSpanY = item.minSpanY;
            Bundle options = getDefaultOptionsForWidget(targetContext, pendingInfo);

            AppWidgetHost host = new LauncherAppWidgetHost(targetContext);
            int widgetId = host.allocateAppWidgetId();
            if (!new WidgetManagerHelper(targetContext)
                    .bindAppWidgetIdIfAllowed(widgetId, info, options)) {
                host.deleteAppWidgetId(widgetId);
                throw new IllegalArgumentException("Unable to bind widget id");
            }
            item.appWidgetId = widgetId;
        }
        return item;
    }

    /**
     * Returns a LauncherAppWidgetInfo with package name which is not present on the device
     */
Loading