| Index: chrome/android/javatests_shell/src/org/chromium/chrome/browser/banners/AppBannerManagerTest.java
|
| diff --git a/chrome/android/javatests_shell/src/org/chromium/chrome/browser/banners/AppBannerManagerTest.java b/chrome/android/javatests_shell/src/org/chromium/chrome/browser/banners/AppBannerManagerTest.java
|
| index 6e2e8c9582e1fe5e65313a96b0679e39d066335f..5b01eee6020adf3823e3efb2473089c2a4638d1b 100644
|
| --- a/chrome/android/javatests_shell/src/org/chromium/chrome/browser/banners/AppBannerManagerTest.java
|
| +++ b/chrome/android/javatests_shell/src/org/chromium/chrome/browser/banners/AppBannerManagerTest.java
|
| @@ -63,6 +63,9 @@ public class AppBannerManagerTest extends ChromeShellTestBase {
|
|
|
| private static final String INSTALL_ACTION = "INSTALL_ACTION";
|
|
|
| + private static final String WEB_APP_NO_META_VIEWPORT_URL =
|
| + TestHttpServerClient.getUrl("chrome/test/data/banners/no_meta_viewport_test_page.html");
|
| +
|
| private static class MockAppDetailsDelegate extends AppDetailsDelegate {
|
| private Observer mObserver;
|
| private AppData mAppData;
|
| @@ -363,9 +366,7 @@ public class AppBannerManagerTest extends ChromeShellTestBase {
|
| }
|
| }
|
|
|
| - @SmallTest
|
| - @Feature({"AppBanners"})
|
| - public void testWebAppBannerAppears() throws Exception {
|
| + public void requestPageWithAWebAppBanner(String url) throws Exception {
|
| // Create a Tab that doesn't have the AppBannerManager enabled. This prevents race
|
| // conditions between service worker activation and AppBannerManager getting triggered.
|
| // This race condition is a known problem, which is why the specs include wiggle room for
|
| @@ -381,7 +382,7 @@ public class AppBannerManagerTest extends ChromeShellTestBase {
|
|
|
| // Visit a site that can have a banner, then wait until the service worker is activated.
|
| assertTrue(CriteriaHelper.pollForUIThreadCriteria(
|
| - new TabLoadObserver(getActivity().getActiveTab(), WEB_APP_URL)));
|
| + new TabLoadObserver(getActivity().getActiveTab(), url)));
|
| assertTrue(CriteriaHelper.pollForUIThreadCriteria(new Criteria() {
|
| @Override
|
| public boolean isSatisfied() {
|
| @@ -401,7 +402,7 @@ public class AppBannerManagerTest extends ChromeShellTestBase {
|
| });
|
| assertTrue(waitForActiveShellToBeDoneLoading());
|
| assertTrue(CriteriaHelper.pollForUIThreadCriteria(
|
| - new TabLoadObserver(getActivity().getActiveTab(), WEB_APP_URL)));
|
| + new TabLoadObserver(getActivity().getActiveTab(), url)));
|
|
|
| assertTrue(CriteriaHelper.pollForUIThreadCriteria(new Criteria() {
|
| @Override
|
| @@ -416,7 +417,7 @@ public class AppBannerManagerTest extends ChromeShellTestBase {
|
| // Indicate a day has passed, then revisit the page to show the banner.
|
| AppBannerManager.setTimeDeltaForTesting(1);
|
| assertTrue(CriteriaHelper.pollForUIThreadCriteria(
|
| - new TabLoadObserver(getActivity().getActiveTab(), WEB_APP_URL)));
|
| + new TabLoadObserver(getActivity().getActiveTab(), url)));
|
| assertTrue(CriteriaHelper.pollForUIThreadCriteria(new Criteria() {
|
| @Override
|
| public boolean isSatisfied() {
|
| @@ -425,6 +426,19 @@ public class AppBannerManagerTest extends ChromeShellTestBase {
|
| return !manager.isFetcherActiveForTesting();
|
| }
|
| }));
|
| + }
|
| +
|
| + @SmallTest
|
| + @Feature({"AppBanners"})
|
| + public void testWebAppBannerAppears() throws Exception {
|
| + requestPageWithAWebAppBanner(WEB_APP_URL);
|
| assertTrue(waitUntilAppBannerInfoBarAppears(WEB_APP_TITLE));
|
| }
|
| +
|
| + @SmallTest
|
| + @Feature({"AppBanners"})
|
| + public void testWebAppBannerBlockedWithoutMetaViewport() throws Exception {
|
| + requestPageWithAWebAppBanner(WEB_APP_NO_META_VIEWPORT_URL);
|
| + assertTrue(waitUntilNoInfoBarsExist());
|
| + }
|
| }
|
|
|