Chromium Code Reviews| 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 6107c0b6c2a7a771597f47cff6739b5742fa2905..46f531eb0a9a73e3ff0f151234543c6714b86be7 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; |
| @@ -427,4 +430,64 @@ public class AppBannerManagerTest extends ChromeShellTestBase { |
| })); |
| assertTrue(waitUntilAppBannerInfoBarAppears(WEB_APP_TITLE)); |
| } |
| + |
| + @SmallTest |
| + @Feature({"AppBanners"}) |
| + public void testWebAppBannerBlockedWithoutMetaViewport() throws Exception { |
| + AppBannerManager.setIsEnabledForTesting(false); |
| + ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
| + @Override |
| + public void run() { |
| + getActivity().createTab("about:blank"); |
| + } |
| + }); |
| + assertTrue(waitForActiveShellToBeDoneLoading()); |
| + |
| + // Visit a site that can have a banner, then wait until the service worker is activated. |
|
gone
2015/05/27 22:53:34
This should just be refactored instead of copied o
|
| + assertTrue(CriteriaHelper.pollForUIThreadCriteria( |
| + new TabLoadObserver(getActivity().getActiveTab(), WEB_APP_NO_META_VIEWPORT_URL))); |
| + assertTrue(CriteriaHelper.pollForUIThreadCriteria(new Criteria() { |
| + @Override |
| + public boolean isSatisfied() { |
| + String url = getActivity().getActiveTab().getUrl(); |
| + Uri uri = Uri.parse(url); |
| + return TextUtils.equals(uri.getFragment(), "sw_activated"); |
| + } |
| + })); |
| + AppBannerManager.setIsEnabledForTesting(true); |
| + |
| + ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
| + @Override |
| + public void run() { |
| + getActivity().createTab("about:blank"); |
| + } |
| + }); |
| + assertTrue(waitForActiveShellToBeDoneLoading()); |
| + assertTrue(CriteriaHelper.pollForUIThreadCriteria( |
| + new TabLoadObserver(getActivity().getActiveTab(), WEB_APP_NO_META_VIEWPORT_URL))); |
| + |
| + assertTrue(CriteriaHelper.pollForUIThreadCriteria(new Criteria() { |
| + @Override |
| + public boolean isSatisfied() { |
| + AppBannerManager manager = |
| + getActivity().getActiveTab().getAppBannerManagerForTesting(); |
| + return !manager.isFetcherActiveForTesting(); |
| + } |
| + })); |
| + assertTrue(waitUntilNoInfoBarsExist()); |
| + |
| + // 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_NO_META_VIEWPORT_URL))); |
| + assertTrue(CriteriaHelper.pollForUIThreadCriteria(new Criteria() { |
| + @Override |
| + public boolean isSatisfied() { |
| + AppBannerManager manager = |
| + getActivity().getActiveTab().getAppBannerManagerForTesting(); |
| + return !manager.isFetcherActiveForTesting(); |
| + } |
| + })); |
| + assertTrue(waitUntilNoInfoBarsExist()); |
| + } |
| } |