• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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