Index: chrome/android/javatests/src/org/chromium/chrome/browser/webapps/ActivityAssignerTest.java |
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/ActivityAssignerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/ActivityAssignerTest.java |
index ae88be18b938d734df850f474025389a82390d0c..d1cda61577e33eb219bfb1063df3db3a474572ec 100644 |
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/ActivityAssignerTest.java |
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/ActivityAssignerTest.java |
@@ -11,6 +11,7 @@ import android.test.suitebuilder.annotation.SmallTest; |
import org.chromium.base.metrics.RecordHistogram; |
import org.chromium.base.test.util.AdvancedMockContext; |
import org.chromium.base.test.util.Feature; |
+import org.chromium.webapk.lib.common.WebApkConstants; |
import java.util.HashMap; |
import java.util.HashSet; |
@@ -24,15 +25,18 @@ public class ActivityAssignerTest extends InstrumentationTestCase { |
private static final String BASE_WEBAPP_ID = "BASE_WEBAPP_ID_"; |
private AdvancedMockContext mContext; |
- private HashMap<String, Object> mPreferences; |
+ private HashMap<String, Object>[] mPreferences; |
@Override |
protected void setUp() throws Exception { |
super.setUp(); |
RecordHistogram.disableForTests(); |
mContext = new AdvancedMockContext(); |
- mPreferences = new HashMap<String, Object>(); |
- mContext.addSharedPreferences(ActivityAssigner.PREF_PACKAGE, mPreferences); |
+ mPreferences = new HashMap[ActivityAssigner.ACTIVITY_TYPES]; |
+ for (int i = 0; i < ActivityAssigner.ACTIVITY_TYPES; ++i) { |
+ mPreferences[i] = new HashMap<String, Object>(); |
+ mContext.addSharedPreferences(ActivityAssigner.PREF_PACKAGE[i], mPreferences[i]); |
+ } |
} |
@UiThreadTest |
@@ -42,11 +46,13 @@ public class ActivityAssignerTest extends InstrumentationTestCase { |
ActivityAssigner assigner = ActivityAssigner.instance(mContext); |
// Make sure that no webapps have been assigned to any Activities for a fresh install. |
- checkState(assigner); |
- List<ActivityAssigner.ActivityEntry> entries = assigner.getEntries(); |
- assertEquals(ActivityAssigner.NUM_WEBAPP_ACTIVITIES, entries.size()); |
- for (ActivityAssigner.ActivityEntry entry : entries) { |
- assertEquals(null, entry.mWebappId); |
+ List<ActivityAssigner.ActivityEntry>[] entries = assigner.getEntries(); |
+ for (int i = 0; i < entries.length; ++i) { |
+ checkState(assigner, i); |
+ assertEquals(ActivityAssigner.NUM_WEBAPP_ACTIVITIES, entries[i].size()); |
+ for (ActivityAssigner.ActivityEntry entry : entries[i]) { |
+ assertEquals(null, entry.mWebappId); |
+ } |
} |
} |
@@ -60,10 +66,11 @@ public class ActivityAssignerTest extends InstrumentationTestCase { |
public void testEntriesDownsized() { |
// Store preferences indicating that more Activities existed previously than there are now. |
int numSavedEntries = ActivityAssigner.NUM_WEBAPP_ACTIVITIES + 1; |
- createPreferences(numSavedEntries); |
+ int index = ActivityAssigner.WEBAPP_ACTIVITY_INDEX; |
+ createPreferences(numSavedEntries, index); |
ActivityAssigner assigner = ActivityAssigner.instance(mContext); |
- checkState(assigner); |
+ checkState(assigner, index); |
} |
/** |
@@ -74,11 +81,12 @@ public class ActivityAssignerTest extends InstrumentationTestCase { |
@Feature({"Webapps"}) |
public void testCorruptedPreferences() { |
String wrongVariableType = "omgwtfbbq"; |
- mPreferences.clear(); |
- mPreferences.put(ActivityAssigner.PREF_NUM_SAVED_ENTRIES, wrongVariableType); |
+ int index = ActivityAssigner.WEBAPP_ACTIVITY_INDEX; |
+ mPreferences[index].clear(); |
+ mPreferences[index].put(ActivityAssigner.PREF_NUM_SAVED_ENTRIES[index], wrongVariableType); |
ActivityAssigner assigner = ActivityAssigner.instance(mContext); |
- checkState(assigner); |
+ checkState(assigner, index); |
} |
@UiThreadTest |
@@ -86,7 +94,8 @@ public class ActivityAssignerTest extends InstrumentationTestCase { |
@Feature({"Webapps"}) |
public void testAssignment() { |
ActivityAssigner assigner = ActivityAssigner.instance(mContext); |
- checkState(assigner); |
+ int index = assigner.getIndex(BASE_WEBAPP_ID); |
+ checkState(assigner, index); |
// Assign all of the Activities to webapps. |
// Go backwards to make sure ordering doesn't matter. |
@@ -115,6 +124,7 @@ public class ActivityAssignerTest extends InstrumentationTestCase { |
// Make sure that the least recently used Activity is repurposed when we run out. |
String overflowWebappId = "OVERFLOW_ID"; |
+ assertEquals(index, assigner.getIndex(overflowWebappId)); |
int overflowActivityIndex = assigner.assign(overflowWebappId); |
String lastAssignedWebappId = BASE_WEBAPP_ID + (ActivityAssigner.NUM_WEBAPP_ACTIVITIES - 1); |
@@ -126,35 +136,50 @@ public class ActivityAssignerTest extends InstrumentationTestCase { |
assertNotSame("Webapp did not get reassigned to a new Activity.", |
lastAssignedPreviousActivityIndex, lastAssignedCurrentActivityIndex); |
- checkState(assigner); |
+ checkState(assigner, index); |
+ } |
+ |
+ @UiThreadTest |
+ @SmallTest |
+ @Feature({"WebApk"}) |
+ public void testGetIndex() { |
+ String webappId = BASE_WEBAPP_ID; |
+ ActivityAssigner assigner = ActivityAssigner.instance(mContext); |
+ assertEquals(ActivityAssigner.WEBAPP_ACTIVITY_INDEX, assigner.getIndex(webappId)); |
+ |
+ String webApkId = WebApkConstants.WEBAPK_ID_PREFIX + "id"; |
+ assertEquals(ActivityAssigner.WEBAPK_ACTIVITY_INDEX, assigner.getIndex(webApkId)); |
} |
/** Saves state indicating that a number of WebappActivities have already been saved out. */ |
- private void createPreferences(int numSavedEntries) { |
- mPreferences.clear(); |
- mPreferences.put(ActivityAssigner.PREF_NUM_SAVED_ENTRIES, numSavedEntries); |
+ private void createPreferences(int numSavedEntries, int activityType) { |
+ mPreferences[activityType].clear(); |
+ mPreferences[activityType].put(ActivityAssigner.PREF_NUM_SAVED_ENTRIES[activityType], |
+ numSavedEntries); |
for (int i = 0; i < numSavedEntries; ++i) { |
- String activityIndexKey = ActivityAssigner.PREF_ACTIVITY_INDEX + i; |
- mPreferences.put(activityIndexKey, i); |
+ String activityIndexKey = |
+ ActivityAssigner.PREF_ACTIVITY_INDEX[activityType] + i; |
+ mPreferences[activityType].put(activityIndexKey, i); |
- String webappIdKey = ActivityAssigner.PREF_WEBAPP_ID + i; |
+ String webappIdKey = ActivityAssigner.PREF_WEBAPP_ID[activityType] + i; |
String webappIdValue = BASE_WEBAPP_ID + i; |
- mPreferences.put(webappIdKey, webappIdValue); |
+ mPreferences[activityType].put(webappIdKey, webappIdValue); |
} |
} |
/** Checks the saved state to make sure it makes sense. */ |
- private void checkState(ActivityAssigner assigner) { |
- List<ActivityAssigner.ActivityEntry> entries = assigner.getEntries(); |
+ private void checkState(ActivityAssigner assigner, int index) { |
+ List<ActivityAssigner.ActivityEntry>[] entries = assigner.getEntries(); |
// Confirm that the right number of entries in memory and in the preferences. |
- assertEquals(ActivityAssigner.NUM_WEBAPP_ACTIVITIES, entries.size()); |
+ assertEquals(ActivityAssigner.NUM_WEBAPP_ACTIVITIES, entries[index].size()); |
assertEquals(ActivityAssigner.NUM_WEBAPP_ACTIVITIES, |
- (int) (Integer) mPreferences.get(ActivityAssigner.PREF_NUM_SAVED_ENTRIES)); |
+ (int) (Integer) mPreferences[index].get( |
+ ActivityAssigner.PREF_NUM_SAVED_ENTRIES[index])); |
// Confirm that the Activity indices go from 0 to NUM_WEBAPP_ACTIVITIES - 1. |
HashSet<Integer> assignedActivities = new HashSet<Integer>(); |
- for (ActivityAssigner.ActivityEntry entry : entries) { |
+ for (ActivityAssigner.ActivityEntry entry : entries[index]) { |
assignedActivities.add(entry.mActivityIndex); |
} |
for (int i = 0; i < ActivityAssigner.NUM_WEBAPP_ACTIVITIES; ++i) { |