summaryrefslogtreecommitdiff
path: root/tests/src/com/android/launcher3/model/PackageInstallStateChangedTaskTest.java
diff options
context:
space:
mode:
authorSunny Goyal <sunnygoyal@google.com>2021-08-27 21:22:17 +0000
committerAlex Chau <alexchau@google.com>2021-08-31 10:51:52 +0000
commit777d49062ff241ad2d0cfa7d1b0cf01368d32b51 (patch)
tree5f6e1d84e61b438202402228dd6e6bfa7545716a /tests/src/com/android/launcher3/model/PackageInstallStateChangedTaskTest.java
parentee3814de1acbdc994e4d0862969019d5ee4f632f (diff)
Revert "Revert "Migrating all model tests to Instrumentation tests""
This reverts commit 7a4a30d86d471e6c45adc2a9907efb27e9b1799b. Test: Presubmit Reason for revert: Fixing original bug Bug: 196825541 Change-Id: Id4b1eb24a89564d264266d305aebea52917dfcd9
Diffstat (limited to 'tests/src/com/android/launcher3/model/PackageInstallStateChangedTaskTest.java')
-rw-r--r--tests/src/com/android/launcher3/model/PackageInstallStateChangedTaskTest.java83
1 files changed, 83 insertions, 0 deletions
diff --git a/tests/src/com/android/launcher3/model/PackageInstallStateChangedTaskTest.java b/tests/src/com/android/launcher3/model/PackageInstallStateChangedTaskTest.java
new file mode 100644
index 0000000000..519191e251
--- /dev/null
+++ b/tests/src/com/android/launcher3/model/PackageInstallStateChangedTaskTest.java
@@ -0,0 +1,83 @@
+package com.android.launcher3.model;
+
+import static org.junit.Assert.assertEquals;
+
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+import androidx.test.filters.SmallTest;
+
+import com.android.launcher3.model.data.ItemInfo;
+import com.android.launcher3.model.data.LauncherAppWidgetInfo;
+import com.android.launcher3.model.data.WorkspaceItemInfo;
+import com.android.launcher3.pm.PackageInstallInfo;
+import com.android.launcher3.util.LauncherModelHelper;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.Arrays;
+import java.util.HashSet;
+
+/**
+ * Tests for {@link PackageInstallStateChangedTask}
+ */
+@SmallTest
+@RunWith(AndroidJUnit4.class)
+public class PackageInstallStateChangedTaskTest {
+
+ private LauncherModelHelper mModelHelper;
+
+ @Before
+ public void setup() throws Exception {
+ mModelHelper = new LauncherModelHelper();
+ mModelHelper.initializeData("package_install_state_change_task_data");
+ }
+
+ @After
+ public void tearDown() {
+ mModelHelper.destroy();
+ }
+
+ private PackageInstallStateChangedTask newTask(String pkg, int progress) {
+ int state = PackageInstallInfo.STATUS_INSTALLING;
+ PackageInstallInfo installInfo = new PackageInstallInfo(pkg, state, progress,
+ android.os.Process.myUserHandle());
+ return new PackageInstallStateChangedTask(installInfo);
+ }
+
+ @Test
+ public void testSessionUpdate_ignore_installed() throws Exception {
+ mModelHelper.executeTaskForTest(newTask("app1", 30));
+
+ // No shortcuts were updated
+ verifyProgressUpdate(0);
+ }
+
+ @Test
+ public void testSessionUpdate_shortcuts_updated() throws Exception {
+ mModelHelper.executeTaskForTest(newTask("app3", 30));
+
+ verifyProgressUpdate(30, 5, 6, 7);
+ }
+
+ @Test
+ public void testSessionUpdate_widgets_updated() throws Exception {
+ mModelHelper.executeTaskForTest(newTask("app4", 30));
+
+ verifyProgressUpdate(30, 8, 9);
+ }
+
+ private void verifyProgressUpdate(int progress, Integer... idsUpdated) {
+ HashSet<Integer> updates = new HashSet<>(Arrays.asList(idsUpdated));
+ for (ItemInfo info : mModelHelper.getBgDataModel().itemsIdMap) {
+ if (info instanceof WorkspaceItemInfo) {
+ assertEquals(updates.contains(info.id) ? progress: 100,
+ ((WorkspaceItemInfo) info).getProgressLevel());
+ } else {
+ assertEquals(updates.contains(info.id) ? progress: -1,
+ ((LauncherAppWidgetInfo) info).installProgress);
+ }
+ }
+ }
+}