Add a new column for slices_index table.

To distinguish public and non-public slices, add public_slice column
to the database so we can return corresponding results based on this
value.

Bug: 141088937
Test: robotests
Change-Id: I05d003875a8be27e5cb735b4814eb86d6dc40174
This commit is contained in:
Yi-Ling Chuang
2019-11-18 16:39:02 +08:00
parent 345dc2bf3a
commit c7cd6c4671
9 changed files with 93 additions and 5 deletions

View File

@@ -105,8 +105,8 @@ public class SlicesIndexerTest {
}
@Test
public void testInsertSliceData_mockDataInserted() {
final List<SliceData> sliceData = getDummyIndexableData();
public void testInsertSliceData_nonPublicSlice_mockDataInserted() {
final List<SliceData> sliceData = getDummyIndexableData(false);
doReturn(sliceData).when(mManager).getSliceData();
mManager.run();
@@ -140,6 +140,53 @@ public class SlicesIndexerTest {
assertThat(cursor.getString(
cursor.getColumnIndex(IndexColumns.UNAVAILABLE_SLICE_SUBTITLE)))
.isEqualTo(UNAVAILABLE_SLICE_SUBTITLE);
assertThat(cursor.getInt(
cursor.getColumnIndex(IndexColumns.PUBLIC_SLICE))).isEqualTo(0);
cursor.moveToNext();
}
} finally {
db.close();
}
}
@Test
public void insertSliceData_publicSlice_mockDataInserted() {
final List<SliceData> sliceData = getDummyIndexableData(true);
doReturn(sliceData).when(mManager).getSliceData();
mManager.run();
final SQLiteDatabase db = SlicesDatabaseHelper.getInstance(mContext).getWritableDatabase();
try (Cursor cursor = db.rawQuery("SELECT * FROM slices_index", null)) {
assertThat(cursor.getCount()).isEqualTo(sliceData.size());
cursor.moveToFirst();
for (int i = 0; i < sliceData.size(); i++) {
assertThat(cursor.getString(cursor.getColumnIndex(IndexColumns.KEY)))
.isEqualTo(KEYS[i]);
assertThat(cursor.getString(cursor.getColumnIndex(IndexColumns.TITLE)))
.isEqualTo(TITLES[i]);
assertThat(
cursor.getString(cursor.getColumnIndex(IndexColumns.FRAGMENT)))
.isEqualTo(FRAGMENT_NAME);
assertThat(cursor.getString(
cursor.getColumnIndex(IndexColumns.SCREENTITLE))).isEqualTo(SCREEN_TITLE);
assertThat(
cursor.getString(cursor.getColumnIndex(IndexColumns.KEYWORDS)))
.isEqualTo(KEYWORDS);
assertThat(
cursor.getInt(cursor.getColumnIndex(IndexColumns.ICON_RESOURCE)))
.isEqualTo(ICON);
assertThat(
cursor.getString(cursor.getColumnIndex(IndexColumns.CONTROLLER)))
.isEqualTo(PREF_CONTROLLER);
assertThat(cursor.getInt(cursor.getColumnIndex(IndexColumns.SLICE_TYPE)))
.isEqualTo(SLICE_TYPE);
assertThat(cursor.getString(
cursor.getColumnIndex(IndexColumns.UNAVAILABLE_SLICE_SUBTITLE)))
.isEqualTo(UNAVAILABLE_SLICE_SUBTITLE);
assertThat(cursor.getInt(
cursor.getColumnIndex(IndexColumns.PUBLIC_SLICE))).isEqualTo(1);
cursor.moveToNext();
}
} finally {
@@ -162,7 +209,7 @@ public class SlicesIndexerTest {
db.close();
}
private List<SliceData> getDummyIndexableData() {
private List<SliceData> getDummyIndexableData(boolean isPublicSlice) {
final List<SliceData> sliceData = new ArrayList<>();
final SliceData.Builder builder = new SliceData.Builder()
.setSummary(SUMMARY)
@@ -175,6 +222,10 @@ public class SlicesIndexerTest {
.setSliceType(SLICE_TYPE)
.setUnavailableSliceSubtitle(UNAVAILABLE_SLICE_SUBTITLE);
if (isPublicSlice) {
builder.setIsPublicSlice(true);
}
for (int i = 0; i < KEYS.length; i++) {
builder.setKey(KEYS[i]).setTitle(TITLES[i]);
sliceData.add(builder.build());