summaryrefslogtreecommitdiffstats
path: root/tests/src/com/android/launcher3/model
diff options
context:
space:
mode:
authorSunny Goyal <sunnygoyal@google.com>2018-12-07 11:43:47 -0800
committerSunny Goyal <sunnygoyal@google.com>2018-12-10 11:43:35 -0800
commitc5939393a92e3a07fbd6e17527b8b2a1d108f1d7 (patch)
treeda3dc6b9b4e87ffd670d9828de485a77f3f2b1a1 /tests/src/com/android/launcher3/model
parent415f17333123eb40e7677cf0766f59e7af3f7418 (diff)
downloadandroid_packages_apps_Trebuchet-c5939393a92e3a07fbd6e17527b8b2a1d108f1d7.tar.gz
android_packages_apps_Trebuchet-c5939393a92e3a07fbd6e17527b8b2a1d108f1d7.tar.bz2
android_packages_apps_Trebuchet-c5939393a92e3a07fbd6e17527b8b2a1d108f1d7.zip
Bye bye workspace screens table
Removing a separate table for workspace screens. List of screens are automatically parsed using the items in the favorites DB. Order of the screen based on the screen id and rearranging screens is no longer supported. In case the screens need to be rearranged, all the items in the favorites db will need to be updated with new screen ids. This makes backing up the DB (in the same database) easier as only one table needs to be duplicates. Change-Id: I8ba947a898f637d780e2f49925e78604263126e8
Diffstat (limited to 'tests/src/com/android/launcher3/model')
-rw-r--r--tests/src/com/android/launcher3/model/DbDowngradeHelperTest.java194
-rw-r--r--tests/src/com/android/launcher3/model/LoaderCursorTest.java52
2 files changed, 12 insertions, 234 deletions
diff --git a/tests/src/com/android/launcher3/model/DbDowngradeHelperTest.java b/tests/src/com/android/launcher3/model/DbDowngradeHelperTest.java
deleted file mode 100644
index 0903ddc16..000000000
--- a/tests/src/com/android/launcher3/model/DbDowngradeHelperTest.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.launcher3.model;
-
-import static junit.framework.Assert.assertEquals;
-import static junit.framework.Assert.assertFalse;
-import static junit.framework.Assert.assertNotSame;
-import static junit.framework.Assert.assertTrue;
-
-import android.content.ContentValues;
-import android.content.Context;
-import android.database.Cursor;
-import android.database.sqlite.SQLiteDatabase;
-import android.database.sqlite.SQLiteOpenHelper;
-import androidx.test.InstrumentationRegistry;
-import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
-
-import com.android.launcher3.LauncherProvider;
-import com.android.launcher3.LauncherProvider.DatabaseHelper;
-import com.android.launcher3.LauncherSettings.Favorites;
-import com.android.launcher3.R;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import java.io.File;
-
-/**
- * Tests for {@link DbDowngradeHelper}
- */
-@SmallTest
-@RunWith(AndroidJUnit4.class)
-public class DbDowngradeHelperTest {
-
- private static final String SCHEMA_FILE = "test_schema.json";
- private static final String DB_FILE = "test.db";
-
- private Context mContext;
- private File mSchemaFile;
- private File mDbFile;
-
- @Before
- public void setup() {
- mContext = InstrumentationRegistry.getTargetContext();
- mSchemaFile = mContext.getFileStreamPath(SCHEMA_FILE);
- mDbFile = mContext.getDatabasePath(DB_FILE);
- }
-
- @Test
- public void testUpdateSchemaFile() throws Exception {
- Context myContext = InstrumentationRegistry.getContext();
- int testResId = myContext.getResources().getIdentifier(
- "db_schema_v10", "raw", myContext.getPackageName());
- mSchemaFile.delete();
- assertFalse(mSchemaFile.exists());
-
- DbDowngradeHelper.updateSchemaFile(mSchemaFile, 10, myContext, testResId);
- assertTrue(mSchemaFile.exists());
- assertEquals(10, DbDowngradeHelper.parse(mSchemaFile).version);
-
- // Schema is updated on version upgrade
- assertTrue(mSchemaFile.setLastModified(0));
- DbDowngradeHelper.updateSchemaFile(mSchemaFile, 11, myContext, testResId);
- assertNotSame(0, mSchemaFile.lastModified());
-
- // Schema is not updated when version is same
- assertTrue(mSchemaFile.setLastModified(0));
- DbDowngradeHelper.updateSchemaFile(mSchemaFile, 10, myContext, testResId);
- assertEquals(0, mSchemaFile.lastModified());
-
- // Schema is not updated on version downgrade
- DbDowngradeHelper.updateSchemaFile(mSchemaFile, 3, myContext, testResId);
- assertEquals(0, mSchemaFile.lastModified());
- }
-
- @Test
- public void testDowngrade_success_v24() throws Exception {
- setupTestDb();
-
- TestOpenHelper helper = new TestOpenHelper(24);
- assertEquals(24, helper.getReadableDatabase().getVersion());
- helper.close();
- }
-
- @Test
- public void testDowngrade_success_v22() throws Exception {
- setupTestDb();
-
- SQLiteOpenHelper helper = new TestOpenHelper(22);
- assertEquals(22, helper.getWritableDatabase().getVersion());
-
- // Check column does not exist
- try (Cursor c = helper.getWritableDatabase().query(Favorites.TABLE_NAME,
- null, null, null, null, null, null)) {
- assertEquals(-1, c.getColumnIndex(Favorites.OPTIONS));
-
- // Check data is present
- assertEquals(10, c.getCount());
- }
- helper.close();
-
- helper = new DatabaseHelper(mContext, null, DB_FILE) {
- @Override
- public void onOpen(SQLiteDatabase db) { }
- };
- assertEquals(LauncherProvider.SCHEMA_VERSION, helper.getWritableDatabase().getVersion());
-
- try (Cursor c = helper.getWritableDatabase().query(Favorites.TABLE_NAME,
- null, null, null, null, null, null)) {
- // Check column exists
- assertNotSame(-1, c.getColumnIndex(Favorites.OPTIONS));
-
- // Check data is present
- assertEquals(10, c.getCount());
- }
- helper.close();
- }
-
- @Test(expected = DowngradeFailException.class)
- public void testDowngrade_fail_v20() throws Exception {
- setupTestDb();
-
- TestOpenHelper helper = new TestOpenHelper(20);
- helper.getReadableDatabase().getVersion();
- }
-
- private void setupTestDb() throws Exception {
- mSchemaFile.delete();
- mDbFile.delete();
-
- DbDowngradeHelper.updateSchemaFile(mSchemaFile, LauncherProvider.SCHEMA_VERSION, mContext,
- R.raw.downgrade_schema);
-
- DatabaseHelper dbHelper = new DatabaseHelper(mContext, null, DB_FILE) {
- @Override
- public void onOpen(SQLiteDatabase db) { }
- };
- // Insert dummy data
- for (int i = 0; i < 10; i++) {
- ContentValues values = new ContentValues();
- values.put(Favorites._ID, i);
- values.put(Favorites.TITLE, "title " + i);
- dbHelper.getWritableDatabase().insert(Favorites.TABLE_NAME, null, values);
- }
- dbHelper.close();
- }
-
- private class TestOpenHelper extends SQLiteOpenHelper {
-
- public TestOpenHelper(int version) {
- super(mContext, DB_FILE, null, version);
- }
-
- @Override
- public void onCreate(SQLiteDatabase sqLiteDatabase) {
- throw new RuntimeException("DB should already be created");
- }
-
- @Override
- public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
- throw new RuntimeException("Only downgrade supported");
- }
-
- @Override
- public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {
- try {
- DbDowngradeHelper.parse(mSchemaFile).onDowngrade(db, oldVersion, newVersion);
- } catch (Exception e) {
- throw new DowngradeFailException(e);
- }
- }
- }
-
- private static class DowngradeFailException extends RuntimeException {
- public DowngradeFailException(Exception e) {
- super(e);
- }
- }
-}
diff --git a/tests/src/com/android/launcher3/model/LoaderCursorTest.java b/tests/src/com/android/launcher3/model/LoaderCursorTest.java
index ac1be1777..df935b8db 100644
--- a/tests/src/com/android/launcher3/model/LoaderCursorTest.java
+++ b/tests/src/com/android/launcher3/model/LoaderCursorTest.java
@@ -18,16 +18,12 @@ import com.android.launcher3.ShortcutInfo;
import com.android.launcher3.Utilities;
import com.android.launcher3.compat.LauncherAppsCompat;
import com.android.launcher3.icons.BitmapInfo;
-import com.android.launcher3.util.IntArray;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import java.util.ArrayList;
-import java.util.Arrays;
-
-import static com.android.launcher3.LauncherSettings.BaseLauncherColumns.INTENT;
+import static com.android.launcher3.LauncherSettings.Favorites.INTENT;
import static com.android.launcher3.LauncherSettings.Favorites.CELLX;
import static com.android.launcher3.LauncherSettings.Favorites.CELLY;
import static com.android.launcher3.LauncherSettings.Favorites.CONTAINER;
@@ -149,80 +145,56 @@ public class LoaderCursorTest {
}
@Test
- public void checkItemPlacement_wrongWorkspaceScreen() {
- IntArray workspaceScreens = IntArray.wrap(1, 3);
- mIDP.numRows = 4;
- mIDP.numColumns = 4;
- mIDP.numHotseatIcons = 3;
-
- // Item on unknown screen are not placed
- assertFalse(mLoaderCursor.checkItemPlacement(
- newItemInfo(0, 0, 1, 1, CONTAINER_DESKTOP, 4), workspaceScreens));
- assertFalse(mLoaderCursor.checkItemPlacement(
- newItemInfo(0, 0, 1, 1, CONTAINER_DESKTOP, 5), workspaceScreens));
- assertFalse(mLoaderCursor.checkItemPlacement(
- newItemInfo(0, 0, 1, 1, CONTAINER_DESKTOP, 2), workspaceScreens));
-
- assertTrue(mLoaderCursor.checkItemPlacement(
- newItemInfo(0, 0, 1, 1, CONTAINER_DESKTOP, 1), workspaceScreens));
- assertTrue(mLoaderCursor.checkItemPlacement(
- newItemInfo(0, 0, 1, 1, CONTAINER_DESKTOP, 3), workspaceScreens));
-
- }
- @Test
public void checkItemPlacement_outsideBounds() {
- IntArray workspaceScreens = IntArray.wrap(1, 2);
mIDP.numRows = 4;
mIDP.numColumns = 4;
mIDP.numHotseatIcons = 3;
// Item outside screen bounds are not placed
assertFalse(mLoaderCursor.checkItemPlacement(
- newItemInfo(4, 4, 1, 1, CONTAINER_DESKTOP, 1), workspaceScreens));
+ newItemInfo(4, 4, 1, 1, CONTAINER_DESKTOP, 1)));
}
@Test
public void checkItemPlacement_overlappingItems() {
- IntArray workspaceScreens = IntArray.wrap(1, 2);
mIDP.numRows = 4;
mIDP.numColumns = 4;
mIDP.numHotseatIcons = 3;
// Overlapping items are not placed
assertTrue(mLoaderCursor.checkItemPlacement(
- newItemInfo(0, 0, 1, 1, CONTAINER_DESKTOP, 1), workspaceScreens));
+ newItemInfo(0, 0, 1, 1, CONTAINER_DESKTOP, 1)));
assertFalse(mLoaderCursor.checkItemPlacement(
- newItemInfo(0, 0, 1, 1, CONTAINER_DESKTOP, 1), workspaceScreens));
+ newItemInfo(0, 0, 1, 1, CONTAINER_DESKTOP, 1)));
assertTrue(mLoaderCursor.checkItemPlacement(
- newItemInfo(0, 0, 1, 1, CONTAINER_DESKTOP, 2), workspaceScreens));
+ newItemInfo(0, 0, 1, 1, CONTAINER_DESKTOP, 2)));
assertFalse(mLoaderCursor.checkItemPlacement(
- newItemInfo(0, 0, 1, 1, CONTAINER_DESKTOP, 2), workspaceScreens));
+ newItemInfo(0, 0, 1, 1, CONTAINER_DESKTOP, 2)));
assertTrue(mLoaderCursor.checkItemPlacement(
- newItemInfo(1, 1, 1, 1, CONTAINER_DESKTOP, 1), workspaceScreens));
+ newItemInfo(1, 1, 1, 1, CONTAINER_DESKTOP, 1)));
assertTrue(mLoaderCursor.checkItemPlacement(
- newItemInfo(2, 2, 2, 2, CONTAINER_DESKTOP, 1), workspaceScreens));
+ newItemInfo(2, 2, 2, 2, CONTAINER_DESKTOP, 1)));
assertFalse(mLoaderCursor.checkItemPlacement(
- newItemInfo(3, 2, 1, 2, CONTAINER_DESKTOP, 1), workspaceScreens));
+ newItemInfo(3, 2, 1, 2, CONTAINER_DESKTOP, 1)));
}
@Test
public void checkItemPlacement_hotseat() {
- IntArray workspaceScreens = new IntArray();
mIDP.numRows = 4;
mIDP.numColumns = 4;
mIDP.numHotseatIcons = 3;
// Hotseat items are only placed based on screenId
assertTrue(mLoaderCursor.checkItemPlacement(
- newItemInfo(3, 3, 1, 1, CONTAINER_HOTSEAT, 1), workspaceScreens));
+ newItemInfo(3, 3, 1, 1, CONTAINER_HOTSEAT, 1)));
assertTrue(mLoaderCursor.checkItemPlacement(
- newItemInfo(3, 3, 1, 1, CONTAINER_HOTSEAT, 2), workspaceScreens));
+ newItemInfo(3, 3, 1, 1, CONTAINER_HOTSEAT, 2)));
assertFalse(mLoaderCursor.checkItemPlacement(
- newItemInfo(3, 3, 1, 1, CONTAINER_HOTSEAT, 3), workspaceScreens));
+ newItemInfo(3, 3, 1, 1, CONTAINER_HOTSEAT, 3)));
}
private ItemInfo newItemInfo(int cellX, int cellY, int spanX, int spanY,