From 851b1f3b1c103b28d6df6653693ee132c92086e7 Mon Sep 17 00:00:00 2001 From: Sebastian Franco Date: Mon, 4 Mar 2024 18:42:24 -0600 Subject: [PATCH] Add testing for GridMigration. Bug: 325286145 Flag: ACONFIG grid_migration_fix disabled Test: GridMigrationTest Change-Id: I49fd32be895f3a05204775373b9eec62d9026f3b --- .../launcher3/model/DeviceGridState.java | 7 + .../model/GridSizeMigrationUtil.java | 12 +- .../GridMigrationTest/result5x5to3x3.db | Bin 0 -> 77824 bytes .../GridMigrationTest/result5x5to4x7.db | Bin 0 -> 77824 bytes .../GridMigrationTest/result5x5to5x8.db | Bin 0 -> 77824 bytes .../GridMigrationTest/test_launcher.db | Bin 0 -> 77824 bytes .../celllayout/board/CellLayoutBoard.java | 13 ++ .../launcher3/model/GridMigrationTest.kt | 195 ++++++++++++++++++ .../util/rule/TestToPhoneFileCopier.kt | 55 +++++ 9 files changed, 281 insertions(+), 1 deletion(-) create mode 100644 tests/assets/databases/GridMigrationTest/result5x5to3x3.db create mode 100644 tests/assets/databases/GridMigrationTest/result5x5to4x7.db create mode 100644 tests/assets/databases/GridMigrationTest/result5x5to5x8.db create mode 100644 tests/assets/databases/GridMigrationTest/test_launcher.db create mode 100644 tests/src/com/android/launcher3/model/GridMigrationTest.kt create mode 100644 tests/src/com/android/launcher3/util/rule/TestToPhoneFileCopier.kt diff --git a/src/com/android/launcher3/model/DeviceGridState.java b/src/com/android/launcher3/model/DeviceGridState.java index f24d1d2fff..8c68eb84ec 100644 --- a/src/com/android/launcher3/model/DeviceGridState.java +++ b/src/com/android/launcher3/model/DeviceGridState.java @@ -53,6 +53,13 @@ public class DeviceGridState implements Comparable { private final @DeviceType int mDeviceType; private final String mDbFile; + public DeviceGridState(int columns, int row, int numHotseat, int deviceType, String dbFile) { + mGridSizeString = String.format(Locale.ENGLISH, "%d,%d", columns, row); + mNumHotseat = numHotseat; + mDeviceType = deviceType; + mDbFile = dbFile; + } + public DeviceGridState(InvariantDeviceProfile idp) { mGridSizeString = String.format(Locale.ENGLISH, "%d,%d", idp.numColumns, idp.numRows); mNumHotseat = idp.numDatabaseHotseatIcons; diff --git a/src/com/android/launcher3/model/GridSizeMigrationUtil.java b/src/com/android/launcher3/model/GridSizeMigrationUtil.java index 1d44f205f0..30d2cfbf86 100644 --- a/src/com/android/launcher3/model/GridSizeMigrationUtil.java +++ b/src/com/android/launcher3/model/GridSizeMigrationUtil.java @@ -38,6 +38,7 @@ import android.util.ArrayMap; import android.util.Log; import androidx.annotation.NonNull; +import androidx.annotation.VisibleForTesting; import com.android.launcher3.InvariantDeviceProfile; import com.android.launcher3.LauncherPrefs; @@ -94,6 +95,15 @@ public class GridSizeMigrationUtil { return needsToMigrate; } + @VisibleForTesting + public static List readAllEntries(SQLiteDatabase db, String tableName, + Context context) { + DbReader dbReader = new DbReader(db, tableName, context, getValidPackages(context)); + List result = dbReader.loadAllWorkspaceEntries(); + result.addAll(dbReader.loadHotseatEntries()); + return result; + } + /** * When migrating the grid, we copy the table * {@link LauncherSettings.Favorites#TABLE_NAME} from {@code source} into @@ -654,7 +664,7 @@ public class GridSizeMigrationUtil { } } - protected static class DbEntry extends ItemInfo implements Comparable { + public static class DbEntry extends ItemInfo implements Comparable { private String mIntent; private String mProvider; diff --git a/tests/assets/databases/GridMigrationTest/result5x5to3x3.db b/tests/assets/databases/GridMigrationTest/result5x5to3x3.db new file mode 100644 index 0000000000000000000000000000000000000000..686056dc21fc4b73e6e21be3ec664c85d1f9ff2a GIT binary patch literal 77824 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 HEMWuxLK#*K literal 0 HcmV?d00001 diff --git a/tests/assets/databases/GridMigrationTest/result5x5to4x7.db b/tests/assets/databases/GridMigrationTest/result5x5to4x7.db new file mode 100644 index 0000000000000000000000000000000000000000..cd105c5847d8159d4508c48693491ef66d3a8779 GIT binary patch literal 77824 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 literal 0 HcmV?d00001 diff --git a/tests/assets/databases/GridMigrationTest/test_launcher.db b/tests/assets/databases/GridMigrationTest/test_launcher.db new file mode 100644 index 0000000000000000000000000000000000000000..c680e95efbcdfdfe2a22f0f859be94853892842c GIT binary patch literal 77824 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 literal 0 HcmV?d00001 diff --git a/tests/src/com/android/launcher3/celllayout/board/CellLayoutBoard.java b/tests/src/com/android/launcher3/celllayout/board/CellLayoutBoard.java index 62f2259ca3..e5ad888a8c 100644 --- a/tests/src/com/android/launcher3/celllayout/board/CellLayoutBoard.java +++ b/tests/src/com/android/launcher3/celllayout/board/CellLayoutBoard.java @@ -199,6 +199,19 @@ public class CellLayoutBoard implements Comparable { return 'z'; } + /** + * Check if the given area is empty. + */ + public boolean isEmpty(int x, int y, int spanX, int spanY) { + for (int xi = x; xi < x + spanX; xi++) { + for (int yi = y; yi < y + spanY; yi++) { + if (mWidget[xi][yi] == CellType.IGNORE) continue; + if (mWidget[xi][yi] != CellType.EMPTY) return false; + } + } + return true; + } + public void addWidget(int x, int y, int spanX, int spanY, char type) { Rect rect = new Rect(x, y + spanY - 1, x + spanX - 1, y); removeOverlappingItems(rect); diff --git a/tests/src/com/android/launcher3/model/GridMigrationTest.kt b/tests/src/com/android/launcher3/model/GridMigrationTest.kt new file mode 100644 index 0000000000..eb8604ea24 --- /dev/null +++ b/tests/src/com/android/launcher3/model/GridMigrationTest.kt @@ -0,0 +1,195 @@ +/* + * Copyright (C) 2024 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 androidx.test.ext.junit.runners.AndroidJUnit4 +import androidx.test.filters.SmallTest +import androidx.test.platform.app.InstrumentationRegistry +import com.android.launcher3.InvariantDeviceProfile.TYPE_PHONE +import com.android.launcher3.LauncherSettings.Favorites.TABLE_NAME +import com.android.launcher3.celllayout.board.CellLayoutBoard +import com.android.launcher3.pm.UserCache +import com.android.launcher3.util.rule.TestToPhoneFileCopier +import org.junit.Rule +import org.junit.Test +import org.junit.runner.RunWith + +private val phoneContext = InstrumentationRegistry.getInstrumentation().targetContext + +data class EntryData(val x: Int, val y: Int, val spanX: Int, val spanY: Int, val rank: Int) + +/** + * Holds the data needed to run a test in GridMigrationTest, usually we would have a src + * GridMigrationData and a dst GridMigrationData meaning the data after a migration has occurred. + * This class holds a gridState, which is the size of the grid like 5x5 (among other things). a + * dbHelper which contains the readable database and writable database used to migrate the + * databases. + * + * You can also get all the entries defined in the dbHelper database. + */ +class GridMigrationData(dbFileName: String?, val gridState: DeviceGridState) { + + val dbHelper: DatabaseHelper = + DatabaseHelper( + phoneContext, + dbFileName, + { UserCache.INSTANCE.get(phoneContext).getSerialNumberForUser(it) }, + {} + ) + + fun readEntries(): List = + GridSizeMigrationUtil.readAllEntries(dbHelper.readableDatabase, TABLE_NAME, phoneContext) +} + +/** + * Test the migration of a database from one size to another. It reads a database from the test + * assets, uploads it into the phone and migrates the database to a database in memory which is + * later compared against a database in the test assets to make sure they are identical. + */ +@SmallTest +@RunWith(AndroidJUnit4::class) +class GridMigrationTest { + private val DB_FILE = "test_launcher.db" + + // Copying the src db for all tests. + @JvmField + @Rule + val fileCopier = + TestToPhoneFileCopier("databases/GridMigrationTest/$DB_FILE", "databases/$DB_FILE", true) + + private fun migrate(src: GridMigrationData, dst: GridMigrationData) { + GridSizeMigrationUtil.migrateGridIfNeeded( + phoneContext, + src.gridState, + dst.gridState, + dst.dbHelper, + src.dbHelper.readableDatabase + ) + } + + /** + * Makes sure that none of the items overlaps on the result, i.e. no widget or icons share the + * same space in the db. + */ + private fun validateDb(data: GridMigrationData) { + val cellLayoutBoard = CellLayoutBoard(data.gridState.columns, data.gridState.rows) + data.readEntries().forEach { + assert(cellLayoutBoard.isEmpty(it.cellX, it.cellY, it.spanX, it.spanY)) { + "Db has overlapping items" + } + cellLayoutBoard.addWidget(it.cellX, it.cellY, it.spanX, it.spanY) + } + } + + private fun compare(dst: GridMigrationData, target: GridMigrationData) { + val sortX = { it: GridSizeMigrationUtil.DbEntry -> it.cellX } + val sortY = { it: GridSizeMigrationUtil.DbEntry -> it.cellX } + val mapF = { it: GridSizeMigrationUtil.DbEntry -> + EntryData(it.cellX, it.cellY, it.spanX, it.spanY, it.rank) + } + val entriesDst = dst.readEntries().sortedBy(sortX).sortedBy(sortY).map(mapF) + val entriesTarget = target.readEntries().sortedBy(sortX).sortedBy(sortY).map(mapF) + assert(entriesDst == entriesTarget) { + "The elements on the dst database is not the same as in the target" + } + } + + /** + * Migrate src into dst and compare to target. This method validates 3 things: + * 1. dst has the same number of items as src after the migration, meaning, none of the items + * were removed during the migration. + * 2. dst is valid, meaning that none of the items overlap with each other. + * 3. dst is equal to target to ensure we don't unintentionally change the migration logic. + */ + private fun runTest(src: GridMigrationData, dst: GridMigrationData, target: GridMigrationData) { + migrate(src, dst) + assert(src.readEntries().size == dst.readEntries().size) { + "Source db and destination db do not contain the same number of elements" + } + validateDb(dst) + compare(dst, target) + } + + @JvmField + @Rule + val result5x5to3x3 = + TestToPhoneFileCopier( + "databases/GridMigrationTest/result5x5to3x3.db", + "databases/result5x5to3x3.db", + true + ) + + @Test + fun `5x5 to 3x3`() = + runTest( + src = GridMigrationData(DB_FILE, DeviceGridState(5, 5, 5, TYPE_PHONE, DB_FILE)), + dst = + GridMigrationData( + null, // in memory db, to download a new db change null for the filename of the + // db name to store it. Do not use existing names. + DeviceGridState(3, 3, 3, TYPE_PHONE, "") + ), + target = + GridMigrationData("result5x5to3x3.db", DeviceGridState(3, 3, 3, TYPE_PHONE, "")) + ) + + @JvmField + @Rule + val result5x5to4x7 = + TestToPhoneFileCopier( + "databases/GridMigrationTest/result5x5to4x7.db", + "databases/result5x5to4x7.db", + true + ) + + @Test + fun `5x5 to 4x7`() = + runTest( + src = GridMigrationData(DB_FILE, DeviceGridState(5, 5, 5, TYPE_PHONE, DB_FILE)), + dst = + GridMigrationData( + null, // in memory db, to download a new db change null for the filename of the + // db name to store it. Do not use existing names. + DeviceGridState(4, 7, 4, TYPE_PHONE, "") + ), + target = + GridMigrationData("result5x5to4x7.db", DeviceGridState(4, 7, 4, TYPE_PHONE, "")) + ) + + @JvmField + @Rule + val result5x5to5x8 = + TestToPhoneFileCopier( + "databases/GridMigrationTest/result5x5to5x8.db", + "databases/result5x5to5x8.db", + true + ) + + @Test + fun `5x5 to 5x8`() = + runTest( + src = GridMigrationData(DB_FILE, DeviceGridState(5, 5, 5, TYPE_PHONE, DB_FILE)), + dst = + GridMigrationData( + null, // in memory db, to download a new db change null for the filename of the + // db name to store it. Do not use existing names. + DeviceGridState(5, 8, 5, TYPE_PHONE, "") + ), + target = + GridMigrationData("result5x5to5x8.db", DeviceGridState(5, 8, 5, TYPE_PHONE, "")) + ) +} diff --git a/tests/src/com/android/launcher3/util/rule/TestToPhoneFileCopier.kt b/tests/src/com/android/launcher3/util/rule/TestToPhoneFileCopier.kt new file mode 100644 index 0000000000..72c4f16f90 --- /dev/null +++ b/tests/src/com/android/launcher3/util/rule/TestToPhoneFileCopier.kt @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2024 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.util.rule + +import androidx.test.platform.app.InstrumentationRegistry +import java.io.File +import org.junit.rules.TestRule +import org.junit.runner.Description +import org.junit.runners.model.Statement + +/** Copy a file from the tests assets folder to the phone. */ +class TestToPhoneFileCopier( + val src: String, + dest: String, + private val removeOnFinish: Boolean = false +) : TestRule { + + private val dstFile = + File(InstrumentationRegistry.getInstrumentation().targetContext.dataDir, dest) + + fun getDst() = dstFile.absolutePath + + fun before() = + dstFile.writeBytes( + InstrumentationRegistry.getInstrumentation().context.assets.open(src).readBytes() + ) + + fun after() { + if (removeOnFinish) { + dstFile.delete() + } + } + + override fun apply(base: Statement, description: Description): Statement = + object : Statement() { + override fun evaluate() { + before() + base.evaluate() + } + } +}