Bug 1016949 - Add unit test for enabling/disabling suggested sites (r=mfinkle)

This commit is contained in:
Lucas Rocha 2014-05-29 13:04:35 +01:00
parent 8e4af3603b
commit 247c85247c

View File

@ -5,14 +5,18 @@ package org.mozilla.gecko.browser.tests;
import android.content.Context;
import android.content.res.Resources;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.test.mock.MockContext;
import android.test.mock.MockResources;
import android.test.RenamingDelegatingContext;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.json.JSONArray;
import org.json.JSONException;
@ -21,20 +25,41 @@ import org.json.JSONObject;
import org.mozilla.gecko.R;
import org.mozilla.gecko.db.BrowserContract;
import org.mozilla.gecko.db.SuggestedSites;
import org.mozilla.gecko.GeckoSharedPrefs;
import org.mozilla.gecko.preferences.GeckoPreferences;
import org.mozilla.gecko.util.RawResource;
public class TestSuggestedSites extends BrowserTestCase {
private static class TestContext extends MockContext {
private final Resources resources;
private static class TestContext extends RenamingDelegatingContext {
private static final String PREFIX = "TestSuggestedSites-";
public TestContext() {
private final Resources resources;
private final Set<String> usedPrefs;
public TestContext(Context context) {
super(context, PREFIX);
resources = new TestResources();
usedPrefs = Collections.synchronizedSet(new HashSet<String>());
}
@Override
public Resources getResources() {
return resources;
}
@Override
public SharedPreferences getSharedPreferences(String name, int mode) {
usedPrefs.add(name);
return super.getSharedPreferences(PREFIX + name, mode);
}
public void clearUsedPrefs() {
for (String prefsName : usedPrefs) {
getSharedPreferences(prefsName, 0).edit().clear().commit();
}
usedPrefs.clear();
}
}
private static class TestResources extends MockResources {
@ -91,10 +116,14 @@ public class TestSuggestedSites extends BrowserTestCase {
}
protected void setUp() {
context = new TestContext();
context = new TestContext(getApplicationContext());
resources = (TestResources) context.getResources();
}
protected void tearDown() {
context.clearUsedPrefs();
}
public void testCount() {
// Empty array = empty cursor
checkCursorCount(generateSites(0), 0);
@ -167,4 +196,22 @@ public class TestSuggestedSites extends BrowserTestCase {
c.close();
}
public void testDisabledState() {
resources.setSuggestedSitesResource(generateSites(3));
Cursor c = new SuggestedSites(context).get(DEFAULT_LIMIT);
assertEquals(3, c.getCount());
c.close();
// Disable suggested sites
GeckoSharedPrefs.forApp(context).edit()
.putBoolean(GeckoPreferences.PREFS_SUGGESTED_SITES, false)
.commit();
c = new SuggestedSites(context).get(DEFAULT_LIMIT);
assertNotNull(c);
assertEquals(0, c.getCount());
c.close();
}
}