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()); |
+ } |
} |