1 package com.android.launcher3.provider; 2 3 import android.content.ContentValues; 4 import android.database.Cursor; 5 import android.database.sqlite.SQLiteDatabase; 6 import android.test.AndroidTestCase; 7 import android.test.suitebuilder.annotation.MediumTest; 8 9 import com.android.launcher3.LauncherProvider.DatabaseHelper; 10 import com.android.launcher3.LauncherSettings.Favorites; 11 12 /** 13 * Tests for {@link RestoreDbTask} 14 */ 15 @MediumTest 16 public class RestoreDbTaskTest extends AndroidTestCase { 17 testGetProfileId()18 public void testGetProfileId() throws Exception { 19 SQLiteDatabase db = new MyDatabaseHelper(23).getWritableDatabase(); 20 assertEquals(23, new RestoreDbTask().getDefaultProfileId(db)); 21 } 22 testMigrateProfileId()23 public void testMigrateProfileId() throws Exception { 24 SQLiteDatabase db = new MyDatabaseHelper(42).getWritableDatabase(); 25 // Add some dummy data 26 for (int i = 0; i < 5; i++) { 27 ContentValues values = new ContentValues(); 28 values.put(Favorites._ID, i); 29 values.put(Favorites.TITLE, "item " + i); 30 db.insert(Favorites.TABLE_NAME, null, values); 31 } 32 // Verify item add 33 assertEquals(5, getCount(db, "select * from favorites where profileId = 42")); 34 35 new RestoreDbTask().migrateProfileId(db, 33); 36 37 // verify data migrated 38 assertEquals(0, getCount(db, "select * from favorites where profileId = 42")); 39 assertEquals(5, getCount(db, "select * from favorites where profileId = 33")); 40 41 // Verify default value changed 42 ContentValues values = new ContentValues(); 43 values.put(Favorites._ID, 100); 44 values.put(Favorites.TITLE, "item 100"); 45 db.insert(Favorites.TABLE_NAME, null, values); 46 assertEquals(6, getCount(db, "select * from favorites where profileId = 33")); 47 } 48 getCount(SQLiteDatabase db, String sql)49 private int getCount(SQLiteDatabase db, String sql) { 50 try (Cursor c = db.rawQuery(sql, null)) { 51 return c.getCount(); 52 } 53 } 54 55 private class MyDatabaseHelper extends DatabaseHelper { 56 57 private final long mProfileId; 58 MyDatabaseHelper(long profileId)59 MyDatabaseHelper(long profileId) { 60 super(getContext(), null, null); 61 mProfileId = profileId; 62 } 63 64 @Override getDefaultUserSerial()65 public long getDefaultUserSerial() { 66 return mProfileId; 67 } 68 onEmptyDbCreated()69 protected void onEmptyDbCreated() { } 70 } 71 } 72