Update AppDetailsAdapterTest for apps that don't have screenshots.
While here, also added a couple of new test cases to better ensure the adapter plays nicely with its items when receiving an app with specific states.
This commit is contained in:
parent
e34f289246
commit
c3424f9ff3
@ -136,7 +136,7 @@ public class AppDetailsRecyclerViewAdapter
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
private void setShowVersions(boolean showVersions) {
|
||||
void setShowVersions(boolean showVersions) {
|
||||
this.showVersions = showVersions;
|
||||
boolean itemsWereRemoved = items.removeAll(versions);
|
||||
int startIndex = items.indexOf(VIEWTYPE_VERSIONS) + 1;
|
||||
|
@ -304,6 +304,6 @@ public class AppProviderTest extends FDroidProviderTest {
|
||||
|
||||
AppProvider.Helper.recalculatePreferredMetadata(context);
|
||||
|
||||
return AppProvider.Helper.findSpecificApp(context.getContentResolver(), id, 1, Cols.ALL);
|
||||
return AppProvider.Helper.findSpecificApp(context.getContentResolver(), id, repoId, Cols.ALL);
|
||||
}
|
||||
}
|
||||
|
@ -23,6 +23,7 @@ package org.fdroid.fdroid.data;
|
||||
|
||||
import android.app.Application;
|
||||
import android.content.ContentValues;
|
||||
import android.content.Context;
|
||||
import android.net.Uri;
|
||||
import android.support.annotation.Nullable;
|
||||
|
||||
@ -125,6 +126,7 @@ public class RepoProviderTest extends FDroidProviderTest {
|
||||
assertEquals(4, RepoProvider.Helper.all(context).size());
|
||||
|
||||
Repo mock1 = insertRepo(
|
||||
context,
|
||||
"https://mock-repo-1.example.com/fdroid/repo",
|
||||
"Just a made up repo",
|
||||
"ABCDEF1234567890",
|
||||
@ -132,6 +134,7 @@ public class RepoProviderTest extends FDroidProviderTest {
|
||||
);
|
||||
|
||||
Repo mock2 = insertRepo(
|
||||
context,
|
||||
"http://mock-repo-2.example.com/fdroid/repo",
|
||||
"Mock repo without a name",
|
||||
"0123456789ABCDEF"
|
||||
@ -167,6 +170,7 @@ public class RepoProviderTest extends FDroidProviderTest {
|
||||
@Test
|
||||
public void canDeleteRepo() {
|
||||
Repo mock1 = insertRepo(
|
||||
context,
|
||||
"https://mock-repo-1.example.com/fdroid/repo",
|
||||
"Just a made up repo",
|
||||
"ABCDEF1234567890",
|
||||
@ -174,6 +178,7 @@ public class RepoProviderTest extends FDroidProviderTest {
|
||||
);
|
||||
|
||||
Repo mock2 = insertRepo(
|
||||
context,
|
||||
"http://mock-repo-2.example.com/fdroid/repo",
|
||||
"Mock repo without a name",
|
||||
"0123456789ABCDEF"
|
||||
@ -191,11 +196,11 @@ public class RepoProviderTest extends FDroidProviderTest {
|
||||
assertEquals(mock2.id, afterDelete.get(4).id);
|
||||
}
|
||||
|
||||
protected Repo insertRepo(String address, String description, String fingerprint) {
|
||||
return insertRepo(address, description, fingerprint, null);
|
||||
public Repo insertRepo(Context context, String address, String description, String fingerprint) {
|
||||
return insertRepo(context, address, description, fingerprint, null);
|
||||
}
|
||||
|
||||
protected Repo insertRepo(String address, String description, String fingerprint, @Nullable String name) {
|
||||
public static Repo insertRepo(Context context, String address, String description, String fingerprint, @Nullable String name) {
|
||||
ContentValues values = new ContentValues();
|
||||
values.put(RepoTable.Cols.ADDRESS, address);
|
||||
values.put(RepoTable.Cols.DESCRIPTION, description);
|
||||
|
@ -1,6 +1,7 @@
|
||||
package org.fdroid.fdroid.views;
|
||||
|
||||
import android.app.Application;
|
||||
import android.content.ContentValues;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.ViewGroup;
|
||||
@ -8,12 +9,17 @@ import android.view.ViewGroup;
|
||||
import com.nostra13.universalimageloader.core.ImageLoader;
|
||||
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
|
||||
|
||||
import org.fdroid.fdroid.Assert;
|
||||
import org.fdroid.fdroid.BuildConfig;
|
||||
import org.fdroid.fdroid.Preferences;
|
||||
import org.fdroid.fdroid.R;
|
||||
import org.fdroid.fdroid.data.Apk;
|
||||
import org.fdroid.fdroid.data.App;
|
||||
import org.fdroid.fdroid.data.AppProviderTest;
|
||||
import org.fdroid.fdroid.data.FDroidProvider;
|
||||
import org.fdroid.fdroid.data.FDroidProviderTest;
|
||||
import org.fdroid.fdroid.data.Repo;
|
||||
import org.fdroid.fdroid.data.RepoProviderTest;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
@ -27,22 +33,35 @@ import static org.junit.Assert.assertEquals;
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
public class AppDetailsAdapterTest extends FDroidProviderTest {
|
||||
|
||||
private App app;
|
||||
|
||||
@Before
|
||||
public void setup() {
|
||||
ImageLoader.getInstance().init(ImageLoaderConfiguration.createDefault(context));
|
||||
Preferences.setup(context);
|
||||
|
||||
Repo repo = RepoProviderTest.insertRepo(context, "http://www.example.com/fdroid/repo", "", "", "Test Repo");
|
||||
app = AppProviderTest.insertApp(contentResolver, context, "com.example.app", "Test App", new ContentValues(), repo.getId());
|
||||
}
|
||||
|
||||
@After
|
||||
public void teardown() {
|
||||
ImageLoader.getInstance().destroy();
|
||||
FDroidProvider.clearDbHelperSingleton();
|
||||
Preferences.clearSingletonForTesting();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void appWithNoVersions() {
|
||||
App app = new App();
|
||||
app.name = "Test App";
|
||||
app.description = "Test App <b>Description</b>";
|
||||
public void appWithNoVersionsOrScreenshots() {
|
||||
AppDetailsRecyclerViewAdapter adapter = new AppDetailsRecyclerViewAdapter(context, app, dummyCallbacks);
|
||||
populateViewHolders(adapter);
|
||||
|
||||
assertEquals(3, adapter.getItemCount());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void appWithScreenshots() {
|
||||
app.phoneScreenshots = new String[] {"screenshot1.png", "screenshot2.png"};
|
||||
|
||||
AppDetailsRecyclerViewAdapter adapter = new AppDetailsRecyclerViewAdapter(context, app, dummyCallbacks);
|
||||
populateViewHolders(adapter);
|
||||
@ -51,6 +70,25 @@ public class AppDetailsAdapterTest extends FDroidProviderTest {
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void appWithVersions() {
|
||||
Assert.insertApk(context, app, 1);
|
||||
Assert.insertApk(context, app, 2);
|
||||
Assert.insertApk(context, app, 3);
|
||||
|
||||
AppDetailsRecyclerViewAdapter adapter = new AppDetailsRecyclerViewAdapter(context, app, dummyCallbacks);
|
||||
populateViewHolders(adapter);
|
||||
|
||||
// Starts collapsed, now showing versions at all.
|
||||
assertEquals(3, adapter.getItemCount());
|
||||
|
||||
adapter.setShowVersions(true);
|
||||
assertEquals(6, adapter.getItemCount());
|
||||
|
||||
adapter.setShowVersions(false);
|
||||
assertEquals(3, adapter.getItemCount());
|
||||
}
|
||||
|
||||
/**
|
||||
* Ensures that every single item in the adapter gets its view holder created and bound.
|
||||
* Doesn't care about what type of holder it should be, the adapter is able to figure all that
|
||||
|
Loading…
x
Reference in New Issue
Block a user