From 8b0a647a1144ca9fe600014d36a25e13012a99f5 Mon Sep 17 00:00:00 2001 From: Sunny Goyal Date: Mon, 6 Nov 2017 21:09:23 -0800 Subject: Removing dependency on deprecated android.test.** package Change-Id: Ib1065e26fff3c193d12531c8bca944693ea6137c --- .../com/android/launcher3/logging/FileLogTest.java | 31 +++++--- .../launcher3/model/AddWorkspaceItemsTaskTest.java | 30 +++---- .../model/BaseModelUpdateTaskTestCase.java | 33 +++++--- .../launcher3/model/CacheDataUpdatedTaskTest.java | 22 +++++- .../launcher3/model/GridSizeMigrationTaskTest.java | 91 +++++++++++++++------- .../model/PackageInstallStateChangedTaskTest.java | 17 +++- .../launcher3/provider/RestoreDbTaskTest.java | 20 ++++- .../com/android/launcher3/util/FocusLogicTest.java | 32 ++++---- .../android/launcher3/util/GridOccupancyTest.java | 15 +++- 9 files changed, 198 insertions(+), 93 deletions(-) (limited to 'tests') diff --git a/tests/src/com/android/launcher3/logging/FileLogTest.java b/tests/src/com/android/launcher3/logging/FileLogTest.java index 7048c2868..9c7cb8f61 100644 --- a/tests/src/com/android/launcher3/logging/FileLogTest.java +++ b/tests/src/com/android/launcher3/logging/FileLogTest.java @@ -1,41 +1,51 @@ package com.android.launcher3.logging; -import android.test.AndroidTestCase; -import android.test.suitebuilder.annotation.SmallTest; +import android.support.test.InstrumentationRegistry; +import android.support.test.filters.SmallTest; +import android.support.test.runner.AndroidJUnit4; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; import java.io.File; import java.io.PrintWriter; import java.io.StringWriter; import java.util.Calendar; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + /** * Tests for {@link FileLog} */ @SmallTest -public class FileLogTest extends AndroidTestCase { +@RunWith(AndroidJUnit4.class) +public class FileLogTest { private File mTempDir; - @Override - protected void setUp() throws Exception { - super.setUp(); + @Before + public void setUp() throws Exception { int count = 0; do { - mTempDir = new File(getContext().getCacheDir(), "log-test-" + (count++)); + mTempDir = new File(InstrumentationRegistry.getTargetContext().getCacheDir(), + "log-test-" + (count++)); } while(!mTempDir.mkdir()); FileLog.setDir(mTempDir); } - @Override - protected void tearDown() throws Exception { + @After + public void tearDown() throws Exception { // Clear existing logs new File(mTempDir, "log-0").delete(); new File(mTempDir, "log-1").delete(); mTempDir.delete(); - super.tearDown(); } + @Test public void testPrintLog() throws Exception { if (!FileLog.ENABLED) { return; @@ -56,6 +66,7 @@ public class FileLogTest extends AndroidTestCase { assertTrue(writer.toString().contains("hoolalala")); } + @Test public void testOldFileTruncated() throws Exception { if (!FileLog.ENABLED) { return; diff --git a/tests/src/com/android/launcher3/model/AddWorkspaceItemsTaskTest.java b/tests/src/com/android/launcher3/model/AddWorkspaceItemsTaskTest.java index a486cebc2..401711d07 100644 --- a/tests/src/com/android/launcher3/model/AddWorkspaceItemsTaskTest.java +++ b/tests/src/com/android/launcher3/model/AddWorkspaceItemsTaskTest.java @@ -7,6 +7,7 @@ import android.content.Context; import android.content.Intent; import android.graphics.Rect; import android.net.Uri; +import android.support.test.runner.AndroidJUnit4; import android.util.Pair; import com.android.launcher3.ItemInfo; @@ -15,21 +16,25 @@ import com.android.launcher3.LauncherSettings; import com.android.launcher3.ShortcutInfo; import com.android.launcher3.util.GridOccupancy; import com.android.launcher3.util.LongArrayMap; -import com.android.launcher3.util.Provider; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; import java.util.ArrayList; import java.util.List; -import static org.mockito.Matchers.isNull; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.any; import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; /** * Tests for {@link AddWorkspaceItemsTask} */ +@RunWith(AndroidJUnit4.class) public class AddWorkspaceItemsTaskTest extends BaseModelUpdateTaskTestCase { private final ComponentName mComponent1 = new ComponentName("a", "b"); @@ -39,9 +44,8 @@ public class AddWorkspaceItemsTaskTest extends BaseModelUpdateTaskTestCase { private ArrayList newScreens; private LongArrayMap screenOccupancy; - @Override - protected void setUp() throws Exception { - super.setUp(); + @Before + public void initData() throws Exception { existingScreens = new ArrayList<>(); screenOccupancy = new LongArrayMap<>(); newScreens = new ArrayList<>(); @@ -62,6 +66,7 @@ public class AddWorkspaceItemsTaskTest extends BaseModelUpdateTaskTestCase { }; } + @Test public void testFindSpaceForItem_prefers_second() { // First screen has only one hole of size 1 int nextId = setupWorkspaceWithHoles(1, 1, new Rect(2, 2, 3, 3)); @@ -83,13 +88,12 @@ public class AddWorkspaceItemsTaskTest extends BaseModelUpdateTaskTestCase { .isRegionVacant(spaceFound.second[0], spaceFound.second[1], 2, 3)); } + @Test public void testFindSpaceForItem_adds_new_screen() throws Exception { // First screen has 2 holes of sizes 3x2 and 2x3 setupWorkspaceWithHoles(1, 1, new Rect(2, 0, 5, 2), new Rect(0, 2, 2, 5)); commitScreensToDb(); - when(appState.getContext()).thenReturn(getMockContext()); - ArrayList oldScreens = new ArrayList<>(existingScreens); Pair spaceFound = newTask() .findSpaceForItem(appState, bgDataModel, existingScreens, newScreens, 3, 3); @@ -97,6 +101,7 @@ public class AddWorkspaceItemsTaskTest extends BaseModelUpdateTaskTestCase { assertTrue(newScreens.contains(spaceFound.first)); } + @Test public void testAddItem_existing_item_ignored() throws Exception { ShortcutInfo info = new ShortcutInfo(); info.intent = new Intent().setComponent(mComponent1); @@ -105,12 +110,11 @@ public class AddWorkspaceItemsTaskTest extends BaseModelUpdateTaskTestCase { setupWorkspaceWithHoles(1, 1, new Rect(2, 2, 3, 3)); commitScreensToDb(); - when(appState.getContext()).thenReturn(getMockContext()); - // Nothing was added assertTrue(executeTaskForTest(newTask(info)).isEmpty()); } + @Test public void testAddItem_some_items_added() throws Exception { ShortcutInfo info = new ShortcutInfo(); info.intent = new Intent().setComponent(mComponent1); @@ -122,8 +126,6 @@ public class AddWorkspaceItemsTaskTest extends BaseModelUpdateTaskTestCase { setupWorkspaceWithHoles(1, 1, new Rect(2, 2, 3, 3)); commitScreensToDb(); - when(appState.getContext()).thenReturn(getMockContext()); - executeTaskForTest(newTask(info, info2)).get(0).run(); ArgumentCaptor notAnimated = ArgumentCaptor.forClass(ArrayList.class); ArgumentCaptor animated = ArgumentCaptor.forClass(ArrayList.class); @@ -168,7 +170,7 @@ public class AddWorkspaceItemsTaskTest extends BaseModelUpdateTaskTestCase { } private void commitScreensToDb() throws Exception { - LauncherSettings.Settings.call(getMockContentResolver(), + LauncherSettings.Settings.call(mProviderRule.getResolver(), LauncherSettings.Settings.METHOD_CREATE_EMPTY_DB); Uri uri = LauncherSettings.WorkspaceScreens.CONTENT_URI; @@ -183,6 +185,6 @@ public class AddWorkspaceItemsTaskTest extends BaseModelUpdateTaskTestCase { v.put(LauncherSettings.WorkspaceScreens.SCREEN_RANK, i); ops.add(ContentProviderOperation.newInsert(uri).withValues(v).build()); } - getMockContentResolver().applyBatch(LauncherProvider.AUTHORITY, ops); + mProviderRule.getResolver().applyBatch(LauncherProvider.AUTHORITY, ops); } } diff --git a/tests/src/com/android/launcher3/model/BaseModelUpdateTaskTestCase.java b/tests/src/com/android/launcher3/model/BaseModelUpdateTaskTestCase.java index 3d03507ea..bbb6772d3 100644 --- a/tests/src/com/android/launcher3/model/BaseModelUpdateTaskTestCase.java +++ b/tests/src/com/android/launcher3/model/BaseModelUpdateTaskTestCase.java @@ -1,7 +1,9 @@ package com.android.launcher3.model; import android.content.ComponentName; +import android.content.ContentResolver; import android.content.Context; +import android.content.ContextWrapper; import android.content.Intent; import android.content.pm.LauncherActivityInfo; import android.content.res.Resources; @@ -11,7 +13,8 @@ import android.os.Process; import android.os.UserHandle; import android.support.annotation.NonNull; import android.support.test.InstrumentationRegistry; -import android.test.ProviderTestCase2; +import android.support.test.rule.provider.ProviderTestRule; +import android.support.test.runner.AndroidJUnit4; import com.android.launcher3.AllAppsList; import com.android.launcher3.AppFilter; @@ -28,6 +31,8 @@ import com.android.launcher3.util.ComponentKey; import com.android.launcher3.util.Provider; import com.android.launcher3.util.TestLauncherProvider; +import org.junit.Before; +import org.junit.Rule; import org.mockito.ArgumentCaptor; import java.io.BufferedReader; @@ -46,7 +51,12 @@ import static org.mockito.Mockito.when; /** * Base class for writing tests for Model update tasks. */ -public class BaseModelUpdateTaskTestCase extends ProviderTestCase2 { +public class BaseModelUpdateTaskTestCase { + + @Rule + public ProviderTestRule mProviderRule = + new ProviderTestRule.Builder(TestLauncherProvider.class, LauncherProvider.AUTHORITY) + .build(); public final HashMap> fieldCache = new HashMap<>(); @@ -63,14 +73,8 @@ public class BaseModelUpdateTaskTestCase extends ProviderTestCase2(Arrays.asList(pkg))); } + @Test public void testCacheUpdate_update_apps() throws Exception { // Clear all icons from apps list so that its easy to check what was updated for (AppInfo info : allAppsList.data) { @@ -52,6 +64,7 @@ public class CacheDataUpdatedTaskTest extends BaseModelUpdateTaskTestCase { } } + @Test public void testSessionUpdate_ignores_normal_apps() throws Exception { executeTaskForTest(newTask(CacheDataUpdatedTask.OP_SESSION_UPDATE, "app1")); @@ -59,6 +72,7 @@ public class CacheDataUpdatedTaskTest extends BaseModelUpdateTaskTestCase { verifyUpdate(); } + @Test public void testSessionUpdate_updates_pending_apps() throws Exception { executeTaskForTest(newTask(CacheDataUpdatedTask.OP_SESSION_UPDATE, "app3")); diff --git a/tests/src/com/android/launcher3/model/GridSizeMigrationTaskTest.java b/tests/src/com/android/launcher3/model/GridSizeMigrationTaskTest.java index fd62d3644..b92f61205 100644 --- a/tests/src/com/android/launcher3/model/GridSizeMigrationTaskTest.java +++ b/tests/src/com/android/launcher3/model/GridSizeMigrationTaskTest.java @@ -1,11 +1,16 @@ package com.android.launcher3.model; +import android.content.ContentResolver; import android.content.ContentValues; +import android.content.Context; +import android.content.ContextWrapper; import android.content.Intent; import android.database.Cursor; import android.graphics.Point; -import android.test.ProviderTestCase2; -import android.test.suitebuilder.annotation.MediumTest; +import android.support.test.InstrumentationRegistry; +import android.support.test.filters.MediumTest; +import android.support.test.rule.provider.ProviderTestRule; +import android.support.test.runner.AndroidJUnit4; import com.android.launcher3.InvariantDeviceProfile; import com.android.launcher3.LauncherModel; @@ -15,15 +20,29 @@ import com.android.launcher3.config.FeatureFlags; import com.android.launcher3.model.GridSizeMigrationTask.MultiStepMigrationTask; import com.android.launcher3.util.TestLauncherProvider; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + import java.util.ArrayList; import java.util.HashSet; import java.util.LinkedList; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + /** * Unit tests for {@link GridSizeMigrationTask} */ @MediumTest -public class GridSizeMigrationTaskTest extends ProviderTestCase2 { +@RunWith(AndroidJUnit4.class) +public class GridSizeMigrationTaskTest { + + @Rule + public ProviderTestRule mProviderRule = + new ProviderTestRule.Builder(TestLauncherProvider.class, LauncherProvider.AUTHORITY) + .build(); private static final long DESKTOP = LauncherSettings.Favorites.CONTAINER_DESKTOP; private static final long HOTSEAT = LauncherSettings.Favorites.CONTAINER_HOTSEAT; @@ -37,20 +56,25 @@ public class GridSizeMigrationTaskTest extends ProviderTestCase2 mValidPackages; private InvariantDeviceProfile mIdp; + private Context mContext; - public GridSizeMigrationTaskTest() { - super(TestLauncherProvider.class, LauncherProvider.AUTHORITY); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); + @Before + public void setUp() throws Exception { mValidPackages = new HashSet<>(); mValidPackages.add(TEST_PACKAGE); mIdp = new InvariantDeviceProfile(); + + mContext = new ContextWrapper(InstrumentationRegistry.getTargetContext()) { + + @Override + public ContentResolver getContentResolver() { + return mProviderRule.getResolver(); + } + }; } + @Test public void testHotseatMigration_apps_dropped() throws Exception { long[] hotseatItems = { addItem(APPLICATION, 0, HOTSEAT, 0, 0), @@ -61,7 +85,7 @@ public class GridSizeMigrationTaskTest extends ProviderTestCase2 allScreens = LauncherModel.loadWorkspaceScreensDb(getMockContext()); + ArrayList allScreens = LauncherModel.loadWorkspaceScreensDb(mContext); assertEquals(ids.length, allScreens.size()); int total = 0; @@ -330,7 +361,8 @@ public class GridSizeMigrationTaskTest extends ProviderTestCase2