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

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: Introduce WebApkActivity. 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..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) {

Powered by Google App Engine
This is Rietveld 408576698