| Index: chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappDataStorageTest.java
|
| diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappDataStorageTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappDataStorageTest.java
|
| index 2582b402c2045082f77127616de3cee2b3ac21f4..a1baa2b4e239755c1a85c78277611fedd2fe4cda 100644
|
| --- a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappDataStorageTest.java
|
| +++ b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappDataStorageTest.java
|
| @@ -22,6 +22,8 @@ import org.junit.runner.RunWith;
|
| import org.robolectric.Robolectric;
|
| import org.robolectric.annotation.Config;
|
|
|
| +import java.util.concurrent.TimeUnit;
|
| +
|
| /**
|
| * Tests the WebappDataStorage class by ensuring that it persists data to
|
| * SharedPreferences as expected.
|
| @@ -47,6 +49,23 @@ public class WebappDataStorageTest {
|
| }
|
| }
|
|
|
| + private static class TestClock extends WebappDataStorage.Clock {
|
| + private long mCurrentTime;
|
| +
|
| + public TestClock(long currentTime) {
|
| + updateTime(currentTime);
|
| + }
|
| +
|
| + public void updateTime(long currentTime) {
|
| + mCurrentTime = currentTime;
|
| + }
|
| +
|
| + @Override
|
| + public long currentTimeMillis() {
|
| + return mCurrentTime;
|
| + }
|
| + }
|
| +
|
| @Before
|
| public void setUp() throws Exception {
|
| mSharedPreferences = Robolectric.application
|
| @@ -149,13 +168,13 @@ public class WebappDataStorageTest {
|
|
|
| @Test
|
| @Feature({"Webapp"})
|
| - public void testURLRetrieval() throws Exception {
|
| + public void testUrlRetrieval() throws Exception {
|
| final String url = "https://www.google.com";
|
| mSharedPreferences.edit()
|
| .putString(WebappDataStorage.KEY_URL, url)
|
| .commit();
|
|
|
| - WebappDataStorage.getURL(Robolectric.application, "test",
|
| + WebappDataStorage.getUrl(Robolectric.application, "test",
|
| new FetchCallback<String>(url));
|
| BackgroundShadowAsyncTask.runBackgroundTasks();
|
| Robolectric.runUiThreadTasks();
|
| @@ -165,6 +184,71 @@ public class WebappDataStorageTest {
|
|
|
| @Test
|
| @Feature({"Webapp"})
|
| + public void testWasLaunchedRecently() throws Exception {
|
| + final TestClock clock = new TestClock(System.currentTimeMillis());
|
| + WebappDataStorage.setClockForTests(clock);
|
| +
|
| + WebappDataStorage storage = WebappDataStorage.open(Robolectric.application, "test");
|
| + storage.updateLastUsedTime();
|
| + BackgroundShadowAsyncTask.runBackgroundTasks();
|
| + Robolectric.runUiThreadTasks();
|
| + assertTrue(!storage.wasLaunchedRecently());
|
| +
|
| + long lastUsedTime = mSharedPreferences.getLong(WebappDataStorage.KEY_LAST_USED,
|
| + WebappDataStorage.LAST_USED_INVALID);
|
| +
|
| + assertTrue(lastUsedTime != WebappDataStorage.LAST_USED_UNSET);
|
| + assertTrue(lastUsedTime != WebappDataStorage.LAST_USED_INVALID);
|
| +
|
| + // Mark as launched, check launched recently.
|
| + mSharedPreferences.edit()
|
| + .putBoolean(WebappDataStorage.KEY_LAUNCHED, true)
|
| + .commit();
|
| + assertTrue(storage.wasLaunchedRecently());
|
| +
|
| + // Move the last used time one day in the past.
|
| + mSharedPreferences.edit()
|
| + .putLong(WebappDataStorage.KEY_LAST_USED, lastUsedTime - TimeUnit.DAYS.toMillis(1L))
|
| + .commit();
|
| + assertTrue(storage.wasLaunchedRecently());
|
| +
|
| + // Move the last used time three days in the past.
|
| + mSharedPreferences.edit()
|
| + .putLong(WebappDataStorage.KEY_LAST_USED, lastUsedTime - TimeUnit.DAYS.toMillis(3L))
|
| + .commit();
|
| + assertTrue(storage.wasLaunchedRecently());
|
| +
|
| + // Move the last used time one week in the past.
|
| + mSharedPreferences.edit()
|
| + .putLong(WebappDataStorage.KEY_LAST_USED, lastUsedTime - TimeUnit.DAYS.toMillis(7L))
|
| + .commit();
|
| + assertTrue(storage.wasLaunchedRecently());
|
| +
|
| + // Move the last used time just under ten days in the past.
|
| + mSharedPreferences.edit().putLong(WebappDataStorage.KEY_LAST_USED,
|
| + lastUsedTime - TimeUnit.DAYS.toMillis(10L) + 1).commit();
|
| + assertTrue(storage.wasLaunchedRecently());
|
| +
|
| + // Mark as not launched.
|
| + mSharedPreferences.edit()
|
| + .putBoolean(WebappDataStorage.KEY_LAUNCHED, false)
|
| + .commit();
|
| + assertTrue(!storage.wasLaunchedRecently());
|
| +
|
| + // Mark as launched.
|
| + mSharedPreferences.edit()
|
| + .putBoolean(WebappDataStorage.KEY_LAUNCHED, true)
|
| + .commit();
|
| + assertTrue(storage.wasLaunchedRecently());
|
| +
|
| + // Move the last used time to exactly ten days in the past.
|
| + mSharedPreferences.edit().putLong(WebappDataStorage.KEY_LAST_USED,
|
| + lastUsedTime - TimeUnit.DAYS.toMillis(10L)).commit();
|
| + assertTrue(!storage.wasLaunchedRecently());
|
| + }
|
| +
|
| + @Test
|
| + @Feature({"Webapp"})
|
| public void testIntentUpdate() throws Exception {
|
| final String id = "id";
|
| final String action = "action";
|
|
|