@Test
public void testInsertWithValidExtraFields() {

    assertResultCount(0, queryAllApks());
    ContentValues values = new ContentValues();
    values.put(Cols.REPO_ID, 10);
    values.put(Cols.Repo.ADDRESS, "http://example.com");
    values.put(Cols.Repo.VERSION, 3);
    values.put(Cols.FEATURES, "Some features");
    Uri uri = Assert.insertApk(context, "com.example.com", 1, values);
    assertResultCount(1, queryAllApks());
    String[] projections = Cols.ALL;
    Cursor cursor = contentResolver.query(uri, projections, null, null, null);
    cursor.moveToFirst();
    Apk apk = new Apk(cursor);
    cursor.close();
    // These should have quietly been dropped when we tried to save them,
    // because the provider only knows how to query them (not update them).
    assertEquals(null, apk.repoAddress);
    assertEquals(0, apk.repoVersion);
    // But this should have saved correctly...
    assertEquals(1, apk.features.length);
    assertEquals("Some features", apk.features[0]);
    assertEquals("com.example.com", apk.packageName);
    assertEquals(1, apk.versionCode);
    assertEquals(10, apk.repoId);
}