| Index: chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappVisibilityTest.java
|
| diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappVisibilityTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappVisibilityTest.java
|
| index 94889aaa34d5d74d11a03d84b135111c93cf1ccf..37cc00163ba9ed2b51667c195ac72a81421aef64 100644
|
| --- a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappVisibilityTest.java
|
| +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappVisibilityTest.java
|
| @@ -7,6 +7,7 @@ package org.chromium.chrome.browser.webapps;
|
| import android.support.test.filters.MediumTest;
|
|
|
| import org.chromium.base.test.util.Feature;
|
| +import org.chromium.chrome.browser.tab.Tab;
|
| import org.chromium.components.security_state.ConnectionSecurityLevel;
|
| import org.chromium.content.browser.test.NativeLibraryTestBase;
|
|
|
| @@ -16,6 +17,11 @@ import org.chromium.content.browser.test.NativeLibraryTestBase;
|
| public class WebappVisibilityTest extends NativeLibraryTestBase {
|
| private static final String WEBAPP_URL = "http://originalwebsite.com";
|
|
|
| + private static enum Type {
|
| + WEBAPP,
|
| + WEBAPK,
|
| + };
|
| +
|
| @Override
|
| protected void setUp() throws Exception {
|
| super.setUp();
|
| @@ -25,51 +31,80 @@ public class WebappVisibilityTest extends NativeLibraryTestBase {
|
| @MediumTest
|
| @Feature({"Webapps"})
|
| public void testShouldShowBrowserControls() {
|
| - // Show browser controls for out-of-domain URLs.
|
| - assertTrue(shouldShowBrowserControls(
|
| - WEBAPP_URL, "http://notoriginalwebsite.com", ConnectionSecurityLevel.NONE));
|
| - assertTrue(shouldShowBrowserControls(
|
| - WEBAPP_URL, "http://otherwebsite.com", ConnectionSecurityLevel.NONE));
|
| + Type[] types = new Type[] {Type.WEBAPP, Type.WEBAPK};
|
| + for (Type type : types) {
|
| + boolean isWebApk = (type == Type.WEBAPK);
|
| +
|
| + // Show browser controls for out-of-domain URLs.
|
| + assertTrue(shouldShowBrowserControls(WEBAPP_URL, "http://notoriginalwebsite.com",
|
| + ConnectionSecurityLevel.NONE, type));
|
| + assertTrue(shouldShowBrowserControls(
|
| + WEBAPP_URL, "http://otherwebsite.com", ConnectionSecurityLevel.NONE, type));
|
| +
|
| + // Do not show browser controls for subpaths.
|
| + assertFalse(shouldShowBrowserControls(
|
| + WEBAPP_URL, WEBAPP_URL, ConnectionSecurityLevel.NONE, type));
|
| + assertFalse(shouldShowBrowserControls(
|
| + WEBAPP_URL, WEBAPP_URL + "/things.html", ConnectionSecurityLevel.NONE, type));
|
| + assertFalse(shouldShowBrowserControls(
|
| + WEBAPP_URL, WEBAPP_URL + "/stuff.html", ConnectionSecurityLevel.NONE, type));
|
|
|
| - // Do not show browser controls for subdomains and private registries that are secure.
|
| - assertFalse(shouldShowBrowserControls(
|
| - WEBAPP_URL, "http://sub.originalwebsite.com", ConnectionSecurityLevel.NONE));
|
| - assertFalse(shouldShowBrowserControls(
|
| - WEBAPP_URL, "http://thing.originalwebsite.com", ConnectionSecurityLevel.NONE));
|
| - assertFalse(
|
| - shouldShowBrowserControls(WEBAPP_URL, WEBAPP_URL, ConnectionSecurityLevel.NONE));
|
| - assertFalse(shouldShowBrowserControls(
|
| - WEBAPP_URL, WEBAPP_URL + "/things.html", ConnectionSecurityLevel.NONE));
|
| - assertFalse(shouldShowBrowserControls(
|
| - WEBAPP_URL, WEBAPP_URL + "/stuff.html", ConnectionSecurityLevel.NONE));
|
| + // For WebAPKs but not Webapps show browser controls for subdomains and private
|
| + // registries that are secure.
|
| + assertEquals(isWebApk,
|
| + shouldShowBrowserControls(WEBAPP_URL, "http://sub.originalwebsite.com",
|
| + ConnectionSecurityLevel.NONE, type));
|
| + assertEquals(isWebApk,
|
| + shouldShowBrowserControls(WEBAPP_URL, "http://thing.originalwebsite.com",
|
| + ConnectionSecurityLevel.NONE, type));
|
|
|
| - // Do not show browser controls when URL is not available yet.
|
| - assertFalse(shouldShowBrowserControls(WEBAPP_URL, "", ConnectionSecurityLevel.NONE));
|
| + // Do not show browser controls when URL is not available yet.
|
| + assertFalse(
|
| + shouldShowBrowserControls(WEBAPP_URL, "", ConnectionSecurityLevel.NONE, type));
|
|
|
| - // Show browser controls for non secure URLs.
|
| - assertTrue(shouldShowBrowserControls(WEBAPP_URL, "http://sub.originalwebsite.com",
|
| - ConnectionSecurityLevel.SECURITY_WARNING));
|
| - assertTrue(shouldShowBrowserControls(
|
| - WEBAPP_URL, "http://notoriginalwebsite.com", ConnectionSecurityLevel.DANGEROUS));
|
| - assertTrue(shouldShowBrowserControls(
|
| - WEBAPP_URL, "http://otherwebsite.com", ConnectionSecurityLevel.DANGEROUS));
|
| - assertTrue(shouldShowBrowserControls(
|
| - WEBAPP_URL, "http://thing.originalwebsite.com", ConnectionSecurityLevel.DANGEROUS));
|
| - assertTrue(shouldShowBrowserControls(
|
| - WEBAPP_URL, WEBAPP_URL, ConnectionSecurityLevel.SECURITY_WARNING));
|
| - assertTrue(shouldShowBrowserControls(
|
| - WEBAPP_URL, WEBAPP_URL + "/things.html", ConnectionSecurityLevel.SECURITY_WARNING));
|
| - assertTrue(shouldShowBrowserControls(
|
| - WEBAPP_URL, WEBAPP_URL + "/stuff.html", ConnectionSecurityLevel.SECURITY_WARNING));
|
| + // Show browser controls for non secure URLs.
|
| + assertTrue(shouldShowBrowserControls(
|
| + WEBAPP_URL, WEBAPP_URL, ConnectionSecurityLevel.SECURITY_WARNING, type));
|
| + assertTrue(shouldShowBrowserControls(WEBAPP_URL, WEBAPP_URL + "/things.html",
|
| + ConnectionSecurityLevel.SECURITY_WARNING, type));
|
| + assertTrue(shouldShowBrowserControls(WEBAPP_URL, WEBAPP_URL + "/stuff.html",
|
| + ConnectionSecurityLevel.SECURITY_WARNING, type));
|
| + assertTrue(shouldShowBrowserControls(WEBAPP_URL, WEBAPP_URL + "/stuff.html",
|
| + ConnectionSecurityLevel.DANGEROUS, type));
|
| + assertTrue(shouldShowBrowserControls(WEBAPP_URL, WEBAPP_URL + "/things.html",
|
| + ConnectionSecurityLevel.DANGEROUS, type));
|
| + assertTrue(shouldShowBrowserControls(WEBAPP_URL, "http://sub.originalwebsite.com",
|
| + ConnectionSecurityLevel.SECURITY_WARNING, type));
|
| + assertTrue(shouldShowBrowserControls(
|
| + WEBAPP_URL, "http://notoriginalwebsite.com", ConnectionSecurityLevel.DANGEROUS, type));
|
| + assertTrue(shouldShowBrowserControls(
|
| + WEBAPP_URL, "http://otherwebsite.com", ConnectionSecurityLevel.DANGEROUS, type));
|
| + assertTrue(shouldShowBrowserControls(
|
| + WEBAPP_URL, "http://thing.originalwebsite.com", ConnectionSecurityLevel.DANGEROUS, type));
|
| + }
|
| }
|
|
|
| /**
|
| - * Convenience wrapper for
|
| - * WebappDelegateFactory.BrowserControlsDelegate#shouldShowBrowserControls()
|
| + * Calls either WebappBrowserControlsDelegate#shouldShowBrowserControls() or
|
| + * WebApkBrowserControlsDelegate#shouldShowBrowserControls() based on the type.
|
| + * @param webappStartUrlOrScopeUrl Web Manifest start URL when {@link type} == Type.WEBAPP and
|
| + * the Web Manifest scope URL otherwise.
|
| + * @param url The current page URL
|
| + * @param type
|
| */
|
| private static boolean shouldShowBrowserControls(
|
| - String webappStartUrl, String url, int securityLevel) {
|
| - return WebappDelegateFactory.BrowserControlsDelegate.shouldShowBrowserControls(
|
| - webappStartUrl, url, securityLevel);
|
| + String webappStartUrlOrScopeUrl, String url, int securityLevel, Type type) {
|
| + WebappBrowserControlsDelegate delegate;
|
| + WebappInfo info;
|
| + if (type == Type.WEBAPP) {
|
| + delegate = new WebappBrowserControlsDelegate(null, new Tab(0, false, null));
|
| + info = WebappInfo.create(
|
| + "", webappStartUrlOrScopeUrl, null, null, null, null, 0, 0, 0, 0, 0, false);
|
| + } else {
|
| + delegate = new WebApkBrowserControlsDelegate(null, new Tab(0, false, null));
|
| + info = WebApkInfo.create("", "", webappStartUrlOrScopeUrl, null, null, null, 0, 0, 0, 0,
|
| + 0, "", 0, null, "", null);
|
| + }
|
| + return delegate.shouldShowBrowserControls(info, url, securityLevel);
|
| }
|
| }
|
|
|