Chromium Code Reviews| 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..e1080a50be87424bd4f4e46b7c667f9d202b1605 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 |
|
gone
2016/04/07 19:10:44
nit: launched.
dominickn
2016/04/08 01:10:46
Done.
|
| + 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"; |