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 3148d26f855dfda65c034995f8052e0f5cf2a742..20253ec12a79b6f1d670645b3cd3e895b0f01459 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 |
@@ -168,11 +168,6 @@ public class WebApkUpdateManagerTest { |
mDestroyedFetcher = true; |
} |
- @Override |
- protected long currentTimeMillis() { |
- return mClock.currentTimeMillis(); |
- } |
- |
public void setIsWebApkForeground(boolean isForeground) { |
mIsWebApkForeground = isForeground; |
} |
@@ -321,7 +316,7 @@ public class WebApkUpdateManagerTest { |
private boolean checkUpdateNeededForFetchedManifest( |
ManifestData androidManifestData, ManifestData fetchedManifestData) { |
registerWebApk(androidManifestData, WebApkVersion.CURRENT_SHELL_APK_VERSION); |
- mClock.advance(WebApkUpdateManager.FULL_CHECK_UPDATE_INTERVAL); |
+ mClock.advance(WebappDataStorage.UPDATE_INTERVAL); |
TestWebApkUpdateManager updateManager = new TestWebApkUpdateManager(mClock); |
updateIfNeeded(updateManager); |
@@ -365,14 +360,13 @@ public class WebApkUpdateManagerTest { |
*/ |
@Test |
public void testCheckUpdateMoreFrequentlyIfUpdateFails() { |
- assertTrue(WebApkUpdateManager.FULL_CHECK_UPDATE_INTERVAL |
- > WebApkUpdateManager.RETRY_UPDATE_DURATION); |
+ assertTrue(WebappDataStorage.UPDATE_INTERVAL > WebappDataStorage.RETRY_UPDATE_DURATION); |
WebappDataStorage storage = getStorage(); |
assertTrue(storage.getDidLastWebApkUpdateRequestSucceed()); |
assertFalse(updateIfNeededChecksForUpdatedWebManifest()); |
- mClock.advance(WebApkUpdateManager.RETRY_UPDATE_DURATION); |
+ mClock.advance(WebappDataStorage.RETRY_UPDATE_DURATION); |
assertFalse(updateIfNeededChecksForUpdatedWebManifest()); |
// Advance all of the time stamps. |
@@ -381,7 +375,7 @@ public class WebApkUpdateManagerTest { |
storage.updateDidLastWebApkUpdateRequestSucceed(false); |
assertFalse(updateIfNeededChecksForUpdatedWebManifest()); |
- mClock.advance(WebApkUpdateManager.RETRY_UPDATE_DURATION); |
+ mClock.advance(WebappDataStorage.RETRY_UPDATE_DURATION); |
assertTrue(updateIfNeededChecksForUpdatedWebManifest()); |
} |
@@ -392,8 +386,7 @@ public class WebApkUpdateManagerTest { |
*/ |
@Test |
public void testRegularCheckIntervalIfNoPriorWebApkUpdate() { |
- assertTrue(WebApkUpdateManager.FULL_CHECK_UPDATE_INTERVAL |
- > WebApkUpdateManager.RETRY_UPDATE_DURATION); |
+ assertTrue(WebappDataStorage.UPDATE_INTERVAL > WebappDataStorage.RETRY_UPDATE_DURATION); |
getStorage().delete(); |
WebappDataStorage storage = getStorage(); |
@@ -402,20 +395,38 @@ public class WebApkUpdateManagerTest { |
storage.updateTimeOfLastCheckForUpdatedWebManifest(); |
assertFalse(updateIfNeededChecksForUpdatedWebManifest()); |
- mClock.advance(WebApkUpdateManager.RETRY_UPDATE_DURATION); |
+ mClock.advance(WebappDataStorage.RETRY_UPDATE_DURATION); |
assertFalse(updateIfNeededChecksForUpdatedWebManifest()); |
- mClock.advance(WebApkUpdateManager.FULL_CHECK_UPDATE_INTERVAL |
- - WebApkUpdateManager.RETRY_UPDATE_DURATION); |
+ mClock.advance(WebappDataStorage.UPDATE_INTERVAL - WebappDataStorage.RETRY_UPDATE_DURATION); |
assertTrue(updateIfNeededChecksForUpdatedWebManifest()); |
} |
/** |
+ * Test that if a WebAPK is expected to check updates less frequently, the |
+ * {@link WebappDataStorage#shouldUpdate()} returns true after an extended time interval (as |
+ * opposed to the usual delay). |
+ */ |
+ @Test |
+ public void testRelaxedUpdateIntervalIfNoPriorWebApkUpdate() { |
+ assertTrue(WebappDataStorage.RELAXED_UPDATE_INTERVAL > WebappDataStorage.UPDATE_INTERVAL); |
+ |
+ WebappDataStorage storage = getStorage(); |
+ storage.setRelaxedUpdates(true); |
+ |
+ mClock.advance(WebappDataStorage.UPDATE_INTERVAL); |
+ assertFalse(storage.shouldUpdate()); |
+ mClock.advance( |
+ WebappDataStorage.RELAXED_UPDATE_INTERVAL - WebappDataStorage.UPDATE_INTERVAL); |
+ assertTrue(storage.shouldUpdate()); |
+ } |
+ |
+ /** |
* Test that the is-update-needed check is tried the next time that the WebAPK is launched if |
* Chrome is killed prior to the initial URL finishing loading. |
*/ |
@Test |
public void testCheckOnNextLaunchIfClosePriorToFirstPageLoad() { |
- mClock.advance(WebApkUpdateManager.FULL_CHECK_UPDATE_INTERVAL); |
+ mClock.advance(WebappDataStorage.UPDATE_INTERVAL); |
{ |
TestWebApkUpdateManager updateManager = new TestWebApkUpdateManager(mClock); |
updateIfNeeded(updateManager); |
@@ -451,7 +462,7 @@ public class WebApkUpdateManagerTest { |
@Test |
public void testUpdateNotNeeded() { |
long initialTime = mClock.currentTimeMillis(); |
- mClock.advance(WebApkUpdateManager.FULL_CHECK_UPDATE_INTERVAL); |
+ mClock.advance(WebappDataStorage.UPDATE_INTERVAL); |
TestWebApkUpdateManager updateManager = new TestWebApkUpdateManager(mClock); |
updateIfNeeded(updateManager); |
@@ -474,7 +485,7 @@ public class WebApkUpdateManagerTest { |
public void testMarkUpdateAsSucceededIfUpdateNoLongerNeeded() { |
WebappDataStorage storage = getStorage(); |
storage.updateDidLastWebApkUpdateRequestSucceed(false); |
- mClock.advance(WebApkUpdateManager.RETRY_UPDATE_DURATION); |
+ mClock.advance(WebappDataStorage.RETRY_UPDATE_DURATION); |
TestWebApkUpdateManager updateManager = new TestWebApkUpdateManager(mClock); |
updateIfNeeded(updateManager); |
@@ -493,7 +504,7 @@ public class WebApkUpdateManagerTest { |
*/ |
@Test |
public void testMarkUpdateAsFailedIfClosePriorToUpdateCompleting() { |
- mClock.advance(WebApkUpdateManager.FULL_CHECK_UPDATE_INTERVAL); |
+ mClock.advance(WebappDataStorage.UPDATE_INTERVAL); |
TestWebApkUpdateManager updateManager = new TestWebApkUpdateManager(mClock); |
updateIfNeeded(updateManager); |
@@ -524,7 +535,7 @@ public class WebApkUpdateManagerTest { |
@Test |
public void testShellApkOutOfDateNoWebManifest() { |
registerWebApk(defaultManifestData(), WebApkVersion.CURRENT_SHELL_APK_VERSION - 1); |
- mClock.advance(WebApkUpdateManager.FULL_CHECK_UPDATE_INTERVAL); |
+ mClock.advance(WebappDataStorage.UPDATE_INTERVAL); |
TestWebApkUpdateManager updateManager = new TestWebApkUpdateManager(mClock); |
updateIfNeeded(updateManager); |
@@ -547,7 +558,7 @@ public class WebApkUpdateManagerTest { |
@Test |
public void testShellApkOutOfDateStillHasWebManifest() { |
registerWebApk(defaultManifestData(), WebApkVersion.CURRENT_SHELL_APK_VERSION - 1); |
- mClock.advance(WebApkUpdateManager.FULL_CHECK_UPDATE_INTERVAL); |
+ mClock.advance(WebappDataStorage.UPDATE_INTERVAL); |
TestWebApkUpdateManager updateManager = new TestWebApkUpdateManager(mClock); |
updateIfNeeded(updateManager); |
@@ -572,7 +583,7 @@ public class WebApkUpdateManagerTest { |
*/ |
@Test |
public void testStartUrlRedirectsToPageWithUpdatedWebManifest() { |
- mClock.advance(WebApkUpdateManager.FULL_CHECK_UPDATE_INTERVAL); |
+ mClock.advance(WebappDataStorage.UPDATE_INTERVAL); |
TestWebApkUpdateManager updateManager = new TestWebApkUpdateManager(mClock); |
updateIfNeeded(updateManager); |
@@ -606,7 +617,7 @@ public class WebApkUpdateManagerTest { |
*/ |
@Test |
public void testStartUrlRedirectsToPageWithUnchangedWebManifest() { |
- mClock.advance(WebApkUpdateManager.FULL_CHECK_UPDATE_INTERVAL); |
+ mClock.advance(WebappDataStorage.UPDATE_INTERVAL); |
TestWebApkUpdateManager updateManager = new TestWebApkUpdateManager(mClock); |
updateIfNeeded(updateManager); |
@@ -732,7 +743,7 @@ public class WebApkUpdateManagerTest { |
@Test |
public void testForceUpdateWhenUncompletedUpdateRequestRechesMaximumTimes() { |
- mClock.advance(WebApkUpdateManager.FULL_CHECK_UPDATE_INTERVAL); |
+ mClock.advance(WebappDataStorage.UPDATE_INTERVAL); |
ManifestData differentManifestData = defaultManifestData(); |
differentManifestData.name = DIFFERENT_NAME; |
WebappDataStorage storage = WebappRegistry.getInstance().getWebappDataStorage(WEBAPK_ID); |
@@ -764,7 +775,7 @@ public class WebApkUpdateManagerTest { |
differentManifestData.name = DIFFERENT_NAME; |
WebappDataStorage storage = WebappRegistry.getInstance().getWebappDataStorage(WEBAPK_ID); |
- mClock.advance(WebApkUpdateManager.FULL_CHECK_UPDATE_INTERVAL); |
+ mClock.advance(WebappDataStorage.UPDATE_INTERVAL); |
TestWebApkUpdateManager updateManager = new TestWebApkUpdateManager(mClock); |
updateManager.setIsWebApkForeground(true); |
updateIfNeeded(updateManager); |