| 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);
|
|
|