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..5cda91377e2f565feeb7cf23212ae85e3ec51b7d 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,26 +25,30 @@ 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_TYPE_COUNT]; |
+ for (int i = 0; i < ActivityAssigner.ACTIVITY_TYPE_COUNT; ++i) { |
+ mPreferences[i] = new HashMap<String, Object>(); |
+ mContext.addSharedPreferences(ActivityAssigner.PREF_PACKAGE[i], mPreferences[i]); |
+ } |
} |
@UiThreadTest |
@SmallTest |
@Feature({"Webapps"}) |
public void testEntriesCreated() { |
- ActivityAssigner assigner = ActivityAssigner.instance(mContext); |
+ String webappId = BASE_WEBAPP_ID; |
+ ActivityAssigner assigner = ActivityAssigner.instance(mContext, webappId); |
// Make sure that no webapps have been assigned to any Activities for a fresh install. |
- checkState(assigner); |
List<ActivityAssigner.ActivityEntry> entries = assigner.getEntries(); |
gone
2016/05/26 18:20:36
This ordering change seems unnecessary.
Xi Han
2016/05/26 20:54:58
Done.
|
+ checkState(assigner); |
assertEquals(ActivityAssigner.NUM_WEBAPP_ACTIVITIES, entries.size()); |
for (ActivityAssigner.ActivityEntry entry : entries) { |
assertEquals(null, entry.mWebappId); |
@@ -60,9 +65,12 @@ 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); |
+ String webappId = BASE_WEBAPP_ID; |
+ int index = ActivityAssigner.getIndex(webappId); |
+ createPreferences(numSavedEntries, index); |
- ActivityAssigner assigner = ActivityAssigner.instance(mContext); |
+ ActivityAssigner assigner = ActivityAssigner.instance(mContext, webappId); |
+ assertEquals(index, assigner.getActivityTypeIndex()); |
checkState(assigner); |
} |
@@ -74,10 +82,13 @@ public class ActivityAssignerTest extends InstrumentationTestCase { |
@Feature({"Webapps"}) |
public void testCorruptedPreferences() { |
String wrongVariableType = "omgwtfbbq"; |
- mPreferences.clear(); |
- mPreferences.put(ActivityAssigner.PREF_NUM_SAVED_ENTRIES, wrongVariableType); |
+ String webappId = BASE_WEBAPP_ID; |
+ int index = ActivityAssigner.getIndex(BASE_WEBAPP_ID); |
+ mPreferences[index].clear(); |
+ mPreferences[index].put(ActivityAssigner.PREF_NUM_SAVED_ENTRIES[index], wrongVariableType); |
- ActivityAssigner assigner = ActivityAssigner.instance(mContext); |
+ ActivityAssigner assigner = ActivityAssigner.instance(mContext, webappId); |
+ assertEquals(index, assigner.getActivityTypeIndex()); |
checkState(assigner); |
} |
@@ -85,7 +96,10 @@ public class ActivityAssignerTest extends InstrumentationTestCase { |
@SmallTest |
@Feature({"Webapps"}) |
public void testAssignment() { |
- ActivityAssigner assigner = ActivityAssigner.instance(mContext); |
+ String webappId = BASE_WEBAPP_ID; |
+ ActivityAssigner assigner = ActivityAssigner.instance(mContext, webappId); |
+ int index = assigner.getActivityTypeIndex(); |
+ |
checkState(assigner); |
// Assign all of the Activities to webapps. |
@@ -115,6 +129,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, ActivityAssigner.getIndex(overflowWebappId)); |
int overflowActivityIndex = assigner.assign(overflowWebappId); |
String lastAssignedWebappId = BASE_WEBAPP_ID + (ActivityAssigner.NUM_WEBAPP_ACTIVITIES - 1); |
@@ -129,28 +144,43 @@ public class ActivityAssignerTest extends InstrumentationTestCase { |
checkState(assigner); |
} |
+ @UiThreadTest |
+ @SmallTest |
+ @Feature({"WebApk"}) |
+ public void testGetIndex() { |
+ String webappId = BASE_WEBAPP_ID; |
+ assertEquals(ActivityAssigner.WEBAPP_ACTIVITY_INDEX, ActivityAssigner.getIndex(webappId)); |
+ |
+ String webApkId = WebApkConstants.WEBAPK_ID_PREFIX + "id"; |
+ assertEquals(ActivityAssigner.WEBAPK_ACTIVITY_INDEX, ActivityAssigner.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 activityTypeIndex) { |
+ mPreferences[activityTypeIndex].clear(); |
+ mPreferences[activityTypeIndex].put( |
+ ActivityAssigner.PREF_NUM_SAVED_ENTRIES[activityTypeIndex], 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[activityTypeIndex] + i; |
+ mPreferences[activityTypeIndex].put(activityIndexKey, i); |
- String webappIdKey = ActivityAssigner.PREF_WEBAPP_ID + i; |
+ String webappIdKey = ActivityAssigner.PREF_WEBAPP_ID[activityTypeIndex] + i; |
String webappIdValue = BASE_WEBAPP_ID + i; |
- mPreferences.put(webappIdKey, webappIdValue); |
+ mPreferences[activityTypeIndex].put(webappIdKey, webappIdValue); |
} |
} |
/** Checks the saved state to make sure it makes sense. */ |
private void checkState(ActivityAssigner assigner) { |
List<ActivityAssigner.ActivityEntry> entries = assigner.getEntries(); |
+ int activityTypeIndex = assigner.getActivityTypeIndex(); |
// 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, |
- (int) (Integer) mPreferences.get(ActivityAssigner.PREF_NUM_SAVED_ENTRIES)); |
+ (int) (Integer) mPreferences[activityTypeIndex].get( |
+ ActivityAssigner.PREF_NUM_SAVED_ENTRIES[activityTypeIndex])); |
// Confirm that the Activity indices go from 0 to NUM_WEBAPP_ACTIVITIES - 1. |
HashSet<Integer> assignedActivities = new HashSet<Integer>(); |