Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4044)

Unified Diff: chrome/android/javatests/src/org/chromium/chrome/browser/webapps/ActivityAssignerTest.java

Issue 1989283002: Upstream: Launch WebApkActivity from WebAPK. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Nits. Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..e4641776c9f190fc682a582ff010297b6975535e 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
@@ -8,9 +8,11 @@ import android.test.InstrumentationTestCase;
import android.test.UiThreadTest;
import android.test.suitebuilder.annotation.SmallTest;
+import org.chromium.base.ContextUtils;
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,22 +26,27 @@ 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);
+ mContext = new AdvancedMockContext(ContextUtils.getApplicationContext());
+ 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]);
+ }
+ ContextUtils.initApplicationContextForTests(mContext);
}
@UiThreadTest
@SmallTest
@Feature({"Webapps"})
public void testEntriesCreated() {
- ActivityAssigner assigner = ActivityAssigner.instance(mContext);
+ String webappId = BASE_WEBAPP_ID;
+ ActivityAssigner assigner = ActivityAssigner.instance(webappId);
// Make sure that no webapps have been assigned to any Activities for a fresh install.
checkState(assigner);
@@ -60,9 +67,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(webappId);
+ assertEquals(index, assigner.getActivityTypeIndex());
checkState(assigner);
}
@@ -74,10 +84,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(webappId);
+ assertEquals(index, assigner.getActivityTypeIndex());
checkState(assigner);
}
@@ -85,7 +98,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(webappId);
+ int index = assigner.getActivityTypeIndex();
+
checkState(assigner);
// Assign all of the Activities to webapps.
@@ -115,6 +131,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 +146,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>();

Powered by Google App Engine
This is Rietveld 408576698