Index: chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappModeTest.java |
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappModeTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappModeTest.java |
index a105310bfa3d8405fbf8012937788266ce394da7..2b6bb9ed4a5713c18b0a54b44b29cad926cf68e9 100644 |
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappModeTest.java |
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappModeTest.java |
@@ -25,11 +25,13 @@ import org.chromium.base.ThreadUtils; |
import org.chromium.base.test.util.CommandLineFlags; |
import org.chromium.base.test.util.Feature; |
import org.chromium.base.test.util.RetryOnFailure; |
+import org.chromium.base.test.util.ScalableTimeout; |
import org.chromium.base.test.util.UrlUtils; |
import org.chromium.blink_public.platform.WebDisplayMode; |
import org.chromium.chrome.browser.ChromeActivity; |
import org.chromium.chrome.browser.ChromeSwitches; |
import org.chromium.chrome.browser.ChromeTabbedActivity; |
+import org.chromium.chrome.browser.DeferredStartupHandler; |
import org.chromium.chrome.browser.ShortcutHelper; |
import org.chromium.chrome.browser.ShortcutSource; |
import org.chromium.chrome.browser.tab.Tab; |
@@ -272,6 +274,29 @@ public class WebappModeTest { |
}); |
} |
+ /** Test that on first launch {@link WebappDataStorage#hasBeenLaunched()} is set. */ |
+ @Test |
+ @MediumTest |
+ @Feature({"Webapps"}) |
+ public void testSetsHasBeenLaunchedOnFirstLaunch() throws Exception { |
+ WebappDataStorage storage = WebappRegistry.getInstance().getWebappDataStorage(WEBAPP_1_ID); |
+ Assert.assertFalse(storage.hasBeenLaunched()); |
+ |
+ final WebappActivity activity = |
+ startWebappActivity(WEBAPP_1_ID, WEBAPP_1_URL, WEBAPP_1_TITLE, WEBAPP_ICON); |
+ |
+ // Use a longer timeout because the DeferredStartupHandler is called after the page has |
+ // finished loading. |
+ CriteriaHelper.pollUiThread(new Criteria("Deferred startup never completed") { |
+ @Override |
+ public boolean isSatisfied() { |
+ return DeferredStartupHandler.getInstance().isDeferredStartupCompleteForApp(); |
+ } |
+ }, ScalableTimeout.scaleTimeout(5000), CriteriaHelper.DEFAULT_POLLING_INTERVAL); |
+ |
+ Assert.assertTrue(storage.hasBeenLaunched()); |
+ } |
+ |
/** |
* Tests that WebappActivities handle window.open() properly in tabbed mode. |
*/ |