| 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() { } |
| } |
| } |