Index: chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerTest.java |
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerTest.java |
index 140acd8ea233ad6bae38a19d6d85daf4ff8dd2f6..01052563699ab69b729b26c17ad22b63af82ab18 100644 |
--- a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerTest.java |
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerTest.java |
@@ -8,8 +8,6 @@ import static org.junit.Assert.assertEquals; |
import static org.junit.Assert.assertFalse; |
import static org.junit.Assert.assertTrue; |
-import android.graphics.Bitmap; |
-import android.os.Bundle; |
import android.provider.Settings; |
import org.junit.Before; |
@@ -25,13 +23,13 @@ import org.chromium.blink_public.platform.WebDisplayMode; |
import org.chromium.chrome.browser.ShortcutHelper; |
import org.chromium.chrome.browser.ShortcutSource; |
import org.chromium.chrome.browser.tab.Tab; |
-import org.chromium.chrome.browser.webapps.ManifestUpgradeDetectorFetcher.FetchedManifestData; |
import org.chromium.content_public.common.ScreenOrientationValues; |
import org.chromium.testing.local.LocalRobolectricTestRunner; |
import org.chromium.webapk.lib.client.WebApkVersion; |
-import org.chromium.webapk.lib.common.WebApkMetaDataKeys; |
import org.chromium.webapk.test.WebApkTestHelper; |
+import java.util.HashMap; |
+ |
/** |
* Unit tests for WebApkUpdateManager. |
*/ |
@@ -41,9 +39,6 @@ public class WebApkUpdateManagerTest { |
/** WebAPK's id in {@link WebAppDataStorage}. */ |
private static final String WEBAPK_ID = "id"; |
- /** WebAPK's start URL. */ |
- private static final String WEBAPK_START_URL = "https://www.unicode.party"; |
- |
/** Value of the "name" <meta-data> tag in the Android Manifest. */ |
private static final String ANDROID_MANIFEST_NAME = "Android Manifest name"; |
@@ -70,8 +65,8 @@ public class WebApkUpdateManagerTest { |
private boolean mStarted; |
public TestManifestUpgradeDetector( |
- Tab tab, WebApkMetaData metaData, ManifestUpgradeDetector.Callback callback) { |
- super(tab, metaData, callback); |
+ Tab tab, WebApkInfo info, ManifestUpgradeDetector.Callback callback) { |
+ super(tab, info, callback); |
} |
public boolean wasStarted() { |
@@ -129,19 +124,15 @@ public class WebApkUpdateManagerTest { |
} |
@Override |
- protected ManifestUpgradeDetector buildManifestUpgradeDetector( |
- Tab tab, WebApkMetaData metaData) { |
- mUpgradeDetector = new TestManifestUpgradeDetector(tab, metaData, this); |
+ protected ManifestUpgradeDetector buildManifestUpgradeDetector(Tab tab, WebApkInfo info) { |
+ mUpgradeDetector = new TestManifestUpgradeDetector(tab, info, this); |
return mUpgradeDetector; |
} |
@Override |
- protected void updateAsync(String startUrl, String scopeUrl, String name, String shortName, |
- String bestIconUrl, String bestIconMurmur2Hash, Bitmap bestIcon, |
- String[] iconUrls, int displayMode, int orientation, long themeColor, |
- long backgroundColor) { |
+ protected void updateAsync(WebApkInfo info, String bestIconUrl) { |
++mNumUpdatesRequested; |
- mUpdateName = name; |
+ mUpdateName = info.name(); |
} |
@Override |
@@ -157,35 +148,39 @@ public class WebApkUpdateManagerTest { |
} |
private MockClock mClock; |
+ private int mShellApkVersion; |
- /** Registers WebAPK with default package name. Overwrites previous registrations. */ |
- private void registerWebApk(int shellApkVersionCode) { |
- Bundle metaData = new Bundle(); |
- metaData.putString(WebApkMetaDataKeys.START_URL, WEBAPK_START_URL); |
- metaData.putString(WebApkMetaDataKeys.NAME, ANDROID_MANIFEST_NAME); |
- metaData.putInt( |
- WebApkMetaDataKeys.SHELL_APK_VERSION, shellApkVersionCode); |
- WebApkTestHelper.registerWebApkWithMetaData(metaData); |
+ /** Sets the version of the code in //chrome/android/webapk/shell_apk. */ |
+ public void setShellApkVersion(int shellApkVersion) { |
+ mShellApkVersion = shellApkVersion; |
} |
private WebappDataStorage getStorage() { |
return WebappRegistry.getInstance().getWebappDataStorage(WEBAPK_ID); |
} |
- private void updateIfNeeded(WebApkUpdateManager updateManager) { |
- WebApkInfo info = WebApkInfo.create(WEBAPK_ID, WEBAPK_START_URL, null, null, null, null, |
- WebDisplayMode.Standalone, ScreenOrientationValues.DEFAULT, ShortcutSource.UNKNOWN, |
+ private WebApkInfo infoWithName(String name) { |
+ return WebApkInfo.create(WEBAPK_ID, "", "", null, name, "", WebDisplayMode.Standalone, |
+ ScreenOrientationValues.DEFAULT, ShortcutSource.UNKNOWN, |
ShortcutHelper.MANIFEST_COLOR_INVALID_OR_MISSING, |
ShortcutHelper.MANIFEST_COLOR_INVALID_OR_MISSING, |
- WebApkTestHelper.WEBAPK_PACKAGE_NAME); |
+ WebApkTestHelper.WEBAPK_PACKAGE_NAME, mShellApkVersion, "", "", |
+ new HashMap<String, String>()); |
+ } |
+ |
+ private WebApkInfo fetchedWebApkInfo() { |
+ return infoWithName(WEB_MANIFEST_NAME); |
+ } |
+ |
+ private void updateIfNeeded(WebApkUpdateManager updateManager) { |
+ WebApkInfo info = infoWithName(ANDROID_MANIFEST_NAME); |
updateManager.updateIfNeeded(null, info); |
} |
private void onGotWebApkCompatibleWebManifestForInitialUrl( |
WebApkUpdateManager updateManager, boolean needsUpdate) { |
- FetchedManifestData fetchedManifestData = new FetchedManifestData(); |
- fetchedManifestData.name = WEB_MANIFEST_NAME; |
- updateManager.onFinishedFetchingWebManifestForInitialUrl(needsUpdate, fetchedManifestData); |
+ updateManager.onFinishedFetchingWebManifestForInitialUrl( |
+ needsUpdate, fetchedWebApkInfo(), null); |
} |
/** |
@@ -209,7 +204,7 @@ public class WebApkUpdateManagerTest { |
mClock = new MockClock(); |
WebappDataStorage.setClockForTests(mClock); |
- registerWebApk(WebApkVersion.CURRENT_SHELL_APK_VERSION); |
+ mShellApkVersion = WebApkVersion.CURRENT_SHELL_APK_VERSION; |
WebappRegistry.getInstance().register( |
WEBAPK_ID, new WebappRegistry.FetchWebappDataStorageCallback() { |
@@ -387,14 +382,14 @@ public class WebApkUpdateManagerTest { |
*/ |
@Test |
public void testShellApkOutOfDateNoWebManifest() { |
- registerWebApk(WebApkVersion.CURRENT_SHELL_APK_VERSION - 1); |
+ setShellApkVersion(WebApkVersion.CURRENT_SHELL_APK_VERSION - 1); |
mClock.advance(WebApkUpdateManager.FULL_CHECK_UPDATE_INTERVAL); |
TestWebApkUpdateManager updateManager = new TestWebApkUpdateManager(mClock); |
updateIfNeeded(updateManager); |
assertTrue(updateManager.updateCheckStarted()); |
- updateManager.onFinishedFetchingWebManifestForInitialUrl(false, null); |
+ updateManager.onFinishedFetchingWebManifestForInitialUrl(false, null, null); |
assertTrue(updateManager.updateRequested()); |
assertEquals(ANDROID_MANIFEST_NAME, updateManager.requestedUpdateName()); |
@@ -410,16 +405,14 @@ public class WebApkUpdateManagerTest { |
*/ |
@Test |
public void testShellApkOutOfDateStillHasWebManifest() { |
- registerWebApk(WebApkVersion.CURRENT_SHELL_APK_VERSION - 1); |
+ setShellApkVersion(WebApkVersion.CURRENT_SHELL_APK_VERSION - 1); |
mClock.advance(WebApkUpdateManager.FULL_CHECK_UPDATE_INTERVAL); |
TestWebApkUpdateManager updateManager = new TestWebApkUpdateManager(mClock); |
updateIfNeeded(updateManager); |
assertTrue(updateManager.updateCheckStarted()); |
- FetchedManifestData fetchedManifestData = new FetchedManifestData(); |
- fetchedManifestData.name = WEB_MANIFEST_NAME; |
- updateManager.onFinishedFetchingWebManifestForInitialUrl(false, fetchedManifestData); |
+ updateManager.onFinishedFetchingWebManifestForInitialUrl(false, fetchedWebApkInfo(), null); |
assertTrue(updateManager.updateRequested()); |
assertEquals(WEB_MANIFEST_NAME, updateManager.requestedUpdateName()); |
@@ -445,7 +438,7 @@ public class WebApkUpdateManagerTest { |
assertTrue(updateManager.updateCheckStarted()); |
// start_url does not have a Web Manifest. No update should be requested. |
- updateManager.onFinishedFetchingWebManifestForInitialUrl(false, null); |
+ updateManager.onFinishedFetchingWebManifestForInitialUrl(false, null, null); |
assertFalse(updateManager.updateRequested()); |
// {@link ManifestUpgradeDetector} should still be alive so that it can get |
// {@link #onGotManifestData} when page with the Web Manifest finishes loading. |
@@ -453,9 +446,7 @@ public class WebApkUpdateManagerTest { |
// start_url redirects to page with Web Manifest. |
- FetchedManifestData fetchedManifestData = new FetchedManifestData(); |
- fetchedManifestData.name = WEB_MANIFEST_NAME; |
- updateManager.onGotManifestData(true, fetchedManifestData); |
+ updateManager.onGotManifestData(true, fetchedWebApkInfo(), null); |
assertTrue(updateManager.updateRequested()); |
assertEquals(WEB_MANIFEST_NAME, updateManager.requestedUpdateName()); |
@@ -476,8 +467,8 @@ public class WebApkUpdateManagerTest { |
TestWebApkUpdateManager updateManager = new TestWebApkUpdateManager(mClock); |
updateIfNeeded(updateManager); |
- updateManager.onFinishedFetchingWebManifestForInitialUrl(false, null); |
- updateManager.onGotManifestData(false, new FetchedManifestData()); |
+ updateManager.onFinishedFetchingWebManifestForInitialUrl(false, null, null); |
+ updateManager.onGotManifestData(false, fetchedWebApkInfo(), null); |
assertFalse(updateManager.updateRequested()); |
// We got the Web Manifest. The {@link ManifestUpgradeDetector} should be destroyed to stop |