Add tests for searching null or empty values.

Should help prevent abuse of the search API into the future.
This commit is contained in:
Peter Serwylo 2016-02-04 09:58:42 +11:00
parent 5f08181f7d
commit 46817b1893
2 changed files with 9 additions and 2 deletions

View File

@ -86,8 +86,10 @@ public class AppProviderTest extends FDroidProviderTest<AppProvider> {
assertInvalidUri(AppProvider.getAuthority());
assertInvalidUri(ApkProvider.getContentUri());
assertValidUri(AppProvider.getContentUri());
assertValidUri(AppProvider.getSearchUri("'searching!'"));
assertValidUri(AppProvider.getContentUri(), "content://org.fdroid.fdroid.data.AppProvider");
assertValidUri(AppProvider.getSearchUri("'searching!'"), "content://org.fdroid.fdroid.data.AppProvider/search/'searching!'");
assertValidUri(AppProvider.getSearchUri(""), "content://org.fdroid.fdroid.data.AppProvider");
assertValidUri(AppProvider.getSearchUri(null), "content://org.fdroid.fdroid.data.AppProvider");
assertValidUri(AppProvider.getNoApksUri());
assertValidUri(AppProvider.getInstalledUri());
assertValidUri(AppProvider.getCanUpdateUri());

View File

@ -131,6 +131,11 @@ public abstract class FDroidProviderTest<T extends FDroidProvider> extends Provi
cursor.close();
}
protected void assertValidUri(Uri actualUri, String expectedUri) {
assertValidUri(actualUri);
assertEquals(expectedUri, actualUri.toString());
}
/**
* Many queries need at least some sort of projection in order to produce
* valid SQL. As such, we also need to know about that, so we can provide