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

Unified Diff: chrome/android/junit/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetectorTest.java

Issue 2543073005: Make ManifestUpgradeDetectorTest use the intent version of WebApkInfo#create() (Closed)
Patch Set: Merge branch 'master' into update_fail_refactor01 Created 4 years 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/junit/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetectorTest.java
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetectorTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetectorTest.java
index 2fc7f262040cb41383a0d5ac3c2bbf5a809f7e21..a580c4726a507879aef469b891f340abd291986c 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetectorTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetectorTest.java
@@ -5,8 +5,10 @@
package org.chromium.chrome.browser.webapps;
import android.content.Context;
+import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Color;
+import android.os.Bundle;
import android.text.TextUtils;
import org.junit.Assert;
@@ -24,6 +26,8 @@ import org.chromium.chrome.browser.ShortcutHelper;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.content_public.common.ScreenOrientationValues;
import org.chromium.testing.local.LocalRobolectricTestRunner;
+import org.chromium.webapk.lib.common.WebApkMetaDataKeys;
+import org.chromium.webapk.test.WebApkTestHelper;
import java.util.HashMap;
import java.util.Map;
@@ -41,8 +45,8 @@ public class ManifestUpgradeDetectorTest {
private static final String WEBAPK_SHORT_NAME = "Short Name";
private static final String WEBAPK_BEST_ICON_URL = "/icon.png";
private static final String WEBAPK_BEST_ICON_MURMUR2_HASH = "3";
- private static final int WEBAPK_DISPLAY_MODE = WebDisplayMode.Standalone;
- private static final int WEBAPK_ORIENTATION = ScreenOrientationValues.LANDSCAPE;
+ private static final int WEBAPK_DISPLAY_MODE = WebDisplayMode.Undefined;
+ private static final int WEBAPK_ORIENTATION = ScreenOrientationValues.DEFAULT;
private static final long WEBAPK_THEME_COLOR = 1L;
private static final long WEBAPK_BACKGROUND_COLOR = 2L;
private static final String WEBAPK_MANIFEST_URL = "manifest.json";
@@ -175,43 +179,69 @@ public class ManifestUpgradeDetectorTest {
WEBAPK_MANIFEST_URL, manifestData.startUrl, manifestData.iconUrlToMurmur2HashMap);
}
- private static TestManifestUpgradeDetector createDetectorWithFetchedData(
- ManifestData fetchedData, TestCallback callback) {
- return createDetector(defaultManifestData(), fetchedData, callback);
+ /**
+ * Checks whether the WebAPK is updated given data from the WebAPK's Android Manifest and data
+ * from the fetched Web Manifest. This function uses the intent version of
+ * {@link WebApkInfo#create()} in order to test default values set by the intent version of
+ * {@link WebApkInfo#create()} and how the defaults affect whether the WebAPK is updated.
+ */
+ private boolean checkUpdateNeededForFetchedManifest(
+ ManifestData androidManifestData, ManifestData fetchedManifestData) {
+ registerWebApk(androidManifestData);
+
+ Intent intent = new Intent();
+ intent.putExtra(ShortcutHelper.EXTRA_URL, "");
+ intent.putExtra(
+ ShortcutHelper.EXTRA_WEBAPK_PACKAGE_NAME, WebApkTestHelper.WEBAPK_PACKAGE_NAME);
+ WebApkInfo androidManifestInfo = WebApkInfo.create(intent);
+
+ TestCallback callback = new TestCallback();
+ TestManifestUpgradeDetector detector =
+ new TestManifestUpgradeDetector(androidManifestInfo, fetchedManifestData, callback);
+ detector.start();
+ Assert.assertTrue(callback.mWasCalled);
+ return callback.mIsUpgraded;
}
/**
- * Creates ManifestUpgradeDetector.
- * @param oldData Data used to create WebAPK. Potentially different from Web Manifest data at
- * time that the WebAPK was generated.
- * @param fetchedData Data fetched by ManifestUpgradeDetector.
- * @param callback Callback to call when the upgrade check is complete.
+ * Registers WebAPK with default package name. Overwrites previous registrations.
+ * @param manifestData <meta-data> values for WebAPK's Android Manifest.
*/
- private static TestManifestUpgradeDetector createDetector(
- ManifestData oldData, ManifestData fetchedData, TestCallback callback) {
- return new TestManifestUpgradeDetector(
- infoFromManifestData(oldData), fetchedData, callback);
+ private void registerWebApk(ManifestData manifestData) {
+ Bundle metaData = new Bundle();
+ metaData.putString(WebApkMetaDataKeys.START_URL, manifestData.startUrl);
+ metaData.putString(WebApkMetaDataKeys.SCOPE, manifestData.scopeUrl);
+ metaData.putString(WebApkMetaDataKeys.NAME, manifestData.name);
+ metaData.putString(WebApkMetaDataKeys.SHORT_NAME, manifestData.shortName);
+ metaData.putString(WebApkMetaDataKeys.THEME_COLOR, manifestData.themeColor + "L");
+ metaData.putString(WebApkMetaDataKeys.BACKGROUND_COLOR, manifestData.backgroundColor + "L");
+ metaData.putString(WebApkMetaDataKeys.WEB_MANIFEST_URL, WEBAPK_MANIFEST_URL);
+
+ String iconUrlsAndIconMurmur2Hashes = "";
+ for (String iconUrl : manifestData.iconUrlToMurmur2HashMap.keySet()) {
+ String murmur2Hash = manifestData.iconUrlToMurmur2HashMap.get(iconUrl);
+ if (murmur2Hash == null) {
+ murmur2Hash = "0";
+ }
+ iconUrlsAndIconMurmur2Hashes += " " + iconUrl + " " + murmur2Hash;
+ }
+ iconUrlsAndIconMurmur2Hashes = iconUrlsAndIconMurmur2Hashes.trim();
+ metaData.putString(WebApkMetaDataKeys.ICON_URLS_AND_ICON_MURMUR2_HASHES,
+ iconUrlsAndIconMurmur2Hashes);
+ WebApkTestHelper.registerWebApkWithMetaData(metaData);
}
@Test
public void testManifestDoesNotUpgrade() {
- TestCallback callback = new TestCallback();
- TestManifestUpgradeDetector detector =
- createDetectorWithFetchedData(defaultManifestData(), callback);
- detector.start();
- Assert.assertTrue(callback.mWasCalled);
- Assert.assertFalse(callback.mIsUpgraded);
+ Assert.assertFalse(
+ checkUpdateNeededForFetchedManifest(defaultManifestData(), defaultManifestData()));
}
@Test
public void testStartUrlChangeShouldUpgrade() {
ManifestData fetchedData = defaultManifestData();
fetchedData.startUrl = "/changed.html";
- TestCallback callback = new TestCallback();
- TestManifestUpgradeDetector detector = createDetectorWithFetchedData(fetchedData, callback);
- detector.start();
- Assert.assertTrue(callback.mWasCalled);
- Assert.assertTrue(callback.mIsUpgraded);
+ Assert.assertTrue(checkUpdateNeededForFetchedManifest(defaultManifestData(), fetchedData));
}
/**
@@ -226,12 +256,7 @@ public class ManifestUpgradeDetectorTest {
ManifestData fetchedData = defaultManifestData();
fetchedData.scopeUrl = "";
Assert.assertTrue(!oldData.scopeUrl.equals(fetchedData.scopeUrl));
-
- TestCallback callback = new TestCallback();
- TestManifestUpgradeDetector detector = createDetector(oldData, fetchedData, callback);
- detector.start();
- Assert.assertTrue(callback.mWasCalled);
- Assert.assertFalse(callback.mIsUpgraded);
+ Assert.assertFalse(checkUpdateNeededForFetchedManifest(oldData, fetchedData));
}
/**
@@ -249,11 +274,7 @@ public class ManifestUpgradeDetectorTest {
fetchedData.startUrl = "/fancy/scope/special/snowflake.html";
fetchedData.scopeUrl = "";
- TestCallback callback = new TestCallback();
- TestManifestUpgradeDetector detector = createDetector(oldData, fetchedData, callback);
- detector.start();
- Assert.assertTrue(callback.mWasCalled);
- Assert.assertTrue(callback.mIsUpgraded);
+ Assert.assertTrue(checkUpdateNeededForFetchedManifest(oldData, fetchedData));
}
/**
@@ -267,12 +288,7 @@ public class ManifestUpgradeDetectorTest {
fetchedData.iconUrlToMurmur2HashMap.put(fetchedData.bestIconUrl,
WEBAPK_BEST_ICON_MURMUR2_HASH + "1");
fetchedData.bestIcon = createBitmap(Color.BLUE);
- TestCallback callback = new TestCallback();
- TestManifestUpgradeDetector detector = createDetectorWithFetchedData(fetchedData, callback);
-
- detector.start();
- Assert.assertTrue(callback.mWasCalled);
- Assert.assertTrue(callback.mIsUpgraded);
+ Assert.assertTrue(checkUpdateNeededForFetchedManifest(defaultManifestData(), fetchedData));
}
/**
@@ -286,12 +302,7 @@ public class ManifestUpgradeDetectorTest {
fetchedData.iconUrlToMurmur2HashMap.clear();
fetchedData.iconUrlToMurmur2HashMap.put("/icon2.png", "22");
fetchedData.bestIconUrl = "/icon2.png";
-
- TestCallback callback = new TestCallback();
- TestManifestUpgradeDetector detector = createDetectorWithFetchedData(fetchedData, callback);
- detector.start();
- Assert.assertTrue(callback.mWasCalled);
- Assert.assertTrue(callback.mIsUpgraded);
+ Assert.assertTrue(checkUpdateNeededForFetchedManifest(defaultManifestData(), fetchedData));
}
/**
@@ -307,12 +318,7 @@ public class ManifestUpgradeDetectorTest {
fetchedData.iconUrlToMurmur2HashMap.put(
WEBAPK_BEST_ICON_URL, WEBAPK_BEST_ICON_MURMUR2_HASH);
fetchedData.iconUrlToMurmur2HashMap.put("/icon2.png", null);
-
- TestCallback callback = new TestCallback();
- TestManifestUpgradeDetector detector = createDetectorWithFetchedData(fetchedData, callback);
- detector.start();
- Assert.assertTrue(callback.mWasCalled);
- Assert.assertFalse(callback.mIsUpgraded);
+ Assert.assertFalse(checkUpdateNeededForFetchedManifest(defaultManifestData(), fetchedData));
}
/**
@@ -342,10 +348,6 @@ public class ManifestUpgradeDetectorTest {
fetchedData.iconUrlToMurmur2HashMap.put(iconUrl1, null);
fetchedData.iconUrlToMurmur2HashMap.put(iconUrl2, hash2);
- TestCallback callback = new TestCallback();
- TestManifestUpgradeDetector detector = createDetector(oldData, fetchedData, callback);
- detector.start();
- Assert.assertTrue(callback.mWasCalled);
- Assert.assertFalse(callback.mIsUpgraded);
+ Assert.assertFalse(checkUpdateNeededForFetchedManifest(oldData, fetchedData));
}
}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698