Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5276)

Unified Diff: chrome/android/javatests_shell/src/org/chromium/chrome/browser/banners/AppBannerManagerTest.java

Issue 1148163003: Allow only responsive websites to install as a web app on mobile. Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Preventing unintended method hiding Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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());
+ }
}

Powered by Google App Engine
This is Rietveld 408576698