Make ignored app tests actually test code in use.
The test was using a `findIgnored` method in `AppProvider`, which only existed for the purpose of testing. The test has been changed to instead check for apps which would end up in the "can update" list (which is really where the "ignored" apps are useful).
This commit is contained in:
parent
125acd6276
commit
9637de5e4c
@ -59,12 +59,6 @@ public class AppProvider extends FDroidProvider {
|
||||
return cursorToList(cursor);
|
||||
}
|
||||
|
||||
public static List<App> findIgnored(Context context, String[] projection) {
|
||||
final Uri uri = AppProvider.getIgnoredUri();
|
||||
Cursor cursor = context.getContentResolver().query(uri, projection, null, null, null);
|
||||
return cursorToList(cursor);
|
||||
}
|
||||
|
||||
static List<App> cursorToList(Cursor cursor) {
|
||||
int knownAppCount = cursor != null ? cursor.getCount() : 0;
|
||||
List<App> apps = new ArrayList<>(knownAppCount);
|
||||
@ -154,6 +148,10 @@ public class AppProvider extends FDroidProvider {
|
||||
final Uri fromUpstream = calcAppDetailsFromIndexUri();
|
||||
context.getContentResolver().update(fromUpstream, null, null, null);
|
||||
}
|
||||
|
||||
public static List<App> findCanUpdate(Context context, String[] projection) {
|
||||
return cursorToList(context.getContentResolver().query(AppProvider.getCanUpdateUri(), projection, null, null, null));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -406,7 +404,6 @@ public class AppProvider extends FDroidProvider {
|
||||
private static final String PATH_RECENTLY_UPDATED = "recentlyUpdated";
|
||||
private static final String PATH_NEWLY_ADDED = "newlyAdded";
|
||||
private static final String PATH_CATEGORY = "category";
|
||||
private static final String PATH_IGNORED = "ignored";
|
||||
private static final String PATH_CALC_APP_DETAILS_FROM_INDEX = "calcDetailsFromIndex";
|
||||
private static final String PATH_REPO = "repo";
|
||||
|
||||
@ -417,8 +414,7 @@ public class AppProvider extends FDroidProvider {
|
||||
private static final int RECENTLY_UPDATED = NO_APKS + 1;
|
||||
private static final int NEWLY_ADDED = RECENTLY_UPDATED + 1;
|
||||
private static final int CATEGORY = NEWLY_ADDED + 1;
|
||||
private static final int IGNORED = CATEGORY + 1;
|
||||
private static final int CALC_APP_DETAILS_FROM_INDEX = IGNORED + 1;
|
||||
private static final int CALC_APP_DETAILS_FROM_INDEX = CATEGORY + 1;
|
||||
private static final int REPO = CALC_APP_DETAILS_FROM_INDEX + 1;
|
||||
private static final int SEARCH_REPO = REPO + 1;
|
||||
private static final int SEARCH_INSTALLED = SEARCH_REPO + 1;
|
||||
@ -427,7 +423,6 @@ public class AppProvider extends FDroidProvider {
|
||||
static {
|
||||
MATCHER.addURI(getAuthority(), null, CODE_LIST);
|
||||
MATCHER.addURI(getAuthority(), PATH_CALC_APP_DETAILS_FROM_INDEX, CALC_APP_DETAILS_FROM_INDEX);
|
||||
MATCHER.addURI(getAuthority(), PATH_IGNORED, IGNORED);
|
||||
MATCHER.addURI(getAuthority(), PATH_RECENTLY_UPDATED, RECENTLY_UPDATED);
|
||||
MATCHER.addURI(getAuthority(), PATH_NEWLY_ADDED, NEWLY_ADDED);
|
||||
MATCHER.addURI(getAuthority(), PATH_CATEGORY + "/*", CATEGORY);
|
||||
@ -454,10 +449,6 @@ public class AppProvider extends FDroidProvider {
|
||||
return Uri.withAppendedPath(getContentUri(), PATH_NEWLY_ADDED);
|
||||
}
|
||||
|
||||
public static Uri getIgnoredUri() {
|
||||
return Uri.withAppendedPath(getContentUri(), PATH_IGNORED);
|
||||
}
|
||||
|
||||
private static Uri calcAppDetailsFromIndexUri() {
|
||||
return Uri.withAppendedPath(getContentUri(), PATH_CALC_APP_DETAILS_FROM_INDEX);
|
||||
}
|
||||
@ -636,13 +627,6 @@ public class AppProvider extends FDroidProvider {
|
||||
return new AppQuerySelection(selection, args);
|
||||
}
|
||||
|
||||
private AppQuerySelection queryIgnored() {
|
||||
final String table = getTableName();
|
||||
final String selection = "COALESCE(prefs." + AppPrefsTable.Cols.IGNORE_ALL_UPDATES + ", 0) = 1 OR " +
|
||||
"COALESCE(prefs." + AppPrefsTable.Cols.IGNORE_THIS_UPDATE + ", 0) >= " + table + "." + Cols.SUGGESTED_VERSION_CODE;
|
||||
return new AppQuerySelection(selection).requireLeftJoinPrefs();
|
||||
}
|
||||
|
||||
private AppQuerySelection queryExcludeSwap() {
|
||||
// fdroid_repo will have null fields if the LEFT JOIN didn't resolve, e.g. due to there
|
||||
// being no apks for the app in the result set. In that case, we can't tell if it is from
|
||||
@ -751,10 +735,6 @@ public class AppProvider extends FDroidProvider {
|
||||
selection = selection.add(queryNoApks());
|
||||
break;
|
||||
|
||||
case IGNORED:
|
||||
selection = selection.add(queryIgnored());
|
||||
break;
|
||||
|
||||
case CATEGORY:
|
||||
selection = selection.add(queryCategory(uri.getLastPathSegment()));
|
||||
includeSwap = false;
|
||||
|
@ -16,7 +16,8 @@ import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertNull;
|
||||
|
||||
@Config(constants = BuildConfig.class, application = Application.class)
|
||||
// TODO: Use sdk=24 when Robolectric supports this
|
||||
@Config(constants = BuildConfig.class, application = Application.class, sdk = 23)
|
||||
@RunWith(RobolectricGradleTestRunner.class)
|
||||
public class AppPrefsProviderTest extends FDroidProviderTest {
|
||||
|
||||
|
@ -170,21 +170,27 @@ public class AppProviderTest extends FDroidProviderTest {
|
||||
assertResultCount(contentResolver, 10, AppProvider.getContentUri(), PROJ);
|
||||
|
||||
String[] projection = {Cols.PACKAGE_NAME};
|
||||
List<App> ignoredApps = AppProvider.Helper.findIgnored(context, projection);
|
||||
List<App> canUpdateApps = AppProvider.Helper.findCanUpdate(context, projection);
|
||||
|
||||
String[] expectedIgnored = {
|
||||
"installed, already latest, ignore all",
|
||||
"installed, already latest, ignore latest",
|
||||
// NOT "installed, already latest, ignore old" - because it
|
||||
// is should only ignore if "ignored version" is >= suggested
|
||||
String[] expectedCanUpdate = {
|
||||
"installed, old version, no ignore",
|
||||
"installed, old version, ignore newer, but not latest",
|
||||
|
||||
// These are ignored because they don't have updates available:
|
||||
// "installed, only one version available",
|
||||
// "installed, already latest, no ignore",
|
||||
// "installed, already latest, ignore old",
|
||||
// "not installed",
|
||||
|
||||
// These four should be ignored due to the app preferences:
|
||||
// "installed, already latest, ignore all",
|
||||
// "installed, already latest, ignore latest",
|
||||
// "installed, old version, ignore all",
|
||||
// "installed, old version, ignore latest",
|
||||
|
||||
"installed, old version, ignore all",
|
||||
"installed, old version, ignore latest",
|
||||
// NOT "installed, old version, ignore newer, but not latest"
|
||||
// for the same reason as above.
|
||||
};
|
||||
|
||||
assertContainsOnlyIds(ignoredApps, expectedIgnored);
|
||||
assertContainsOnlyIds(canUpdateApps, expectedCanUpdate);
|
||||
}
|
||||
|
||||
private void assertContainsOnlyIds(List<App> actualApps, String[] expectedIds) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user