diff options
author | Sunny Goyal <sunnygoyal@google.com> | 2016-05-24 11:30:14 -0700 |
---|---|---|
committer | Sunny Goyal <sunnygoyal@google.com> | 2016-06-08 16:14:59 -0700 |
commit | e8f7d5a67ef71b1c6488f52145482a8876c1b708 (patch) | |
tree | 03f0eb8971342367059c9b7f091a41bd6c1c64bf /tests/src/com/android/launcher3/provider | |
parent | b7c2e99ffbedf0f38edfbf433087acac8620e36f (diff) | |
download | android_packages_apps_Trebuchet-e8f7d5a67ef71b1c6488f52145482a8876c1b708.tar.gz android_packages_apps_Trebuchet-e8f7d5a67ef71b1c6488f52145482a8876c1b708.tar.bz2 android_packages_apps_Trebuchet-e8f7d5a67ef71b1c6488f52145482a8876c1b708.zip |
Executing the DB migration during startup instead of restore.
This allows proper execution of DB.onUpgrade task if the app updates
after the restore
Change-Id: I4c40167b30e1d7040b3a38be70d834f7b215e540
Diffstat (limited to 'tests/src/com/android/launcher3/provider')
-rw-r--r-- | tests/src/com/android/launcher3/provider/RestoreDbTaskTest.java | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/tests/src/com/android/launcher3/provider/RestoreDbTaskTest.java b/tests/src/com/android/launcher3/provider/RestoreDbTaskTest.java new file mode 100644 index 000000000..29f738bab --- /dev/null +++ b/tests/src/com/android/launcher3/provider/RestoreDbTaskTest.java @@ -0,0 +1,74 @@ +package com.android.launcher3.provider; + +import android.content.ContentValues; +import android.database.Cursor; +import android.database.sqlite.SQLiteDatabase; +import android.test.AndroidTestCase; +import android.test.suitebuilder.annotation.MediumTest; + +import com.android.launcher3.LauncherProvider.DatabaseHelper; +import com.android.launcher3.LauncherSettings.Favorites; + +/** + * Tests for {@link RestoreDbTask} + */ +@MediumTest +public class RestoreDbTaskTest extends AndroidTestCase { + + public void testGetProfileId() throws Exception { + SQLiteDatabase db = new MyDatabaseHelper(23).getWritableDatabase(); + assertEquals(23, new RestoreDbTask().getDefaultProfileId(db)); + } + + public void testMigrateProfileId() throws Exception { + SQLiteDatabase db = new MyDatabaseHelper(42).getWritableDatabase(); + // Add some dummy data + for (int i = 0; i < 5; i++) { + ContentValues values = new ContentValues(); + values.put(Favorites._ID, i); + values.put(Favorites.TITLE, "item " + i); + db.insert(Favorites.TABLE_NAME, null, values); + } + // Verify item add + assertEquals(5, getCount(db, "select * from favorites where profileId = 42")); + + new RestoreDbTask().migrateProfileId(db, 33); + + // verify data migrated + assertEquals(0, getCount(db, "select * from favorites where profileId = 42")); + assertEquals(5, getCount(db, "select * from favorites where profileId = 33")); + + // Verify default value changed + ContentValues values = new ContentValues(); + values.put(Favorites._ID, 100); + values.put(Favorites.TITLE, "item 100"); + db.insert(Favorites.TABLE_NAME, null, values); + assertEquals(6, getCount(db, "select * from favorites where profileId = 33")); + } + + private int getCount(SQLiteDatabase db, String sql) { + Cursor c = db.rawQuery(sql, null); + try { + return c.getCount(); + } finally { + c.getCount(); + } + } + + private class MyDatabaseHelper extends DatabaseHelper { + + private final long mProfileId; + + public MyDatabaseHelper(long profileId) { + super(getContext(), null, null); + mProfileId = profileId; + } + + @Override + public long getDefaultUserSerial() { + return mProfileId; + } + + protected void onEmptyDbCreated() { } + } +} |