| Index: android_webview/javatests/src/org/chromium/android_webview/test/PolicyUrlFilteringTest.java
|
| diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/PolicyUrlFilteringTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/PolicyUrlFilteringTest.java
|
| index 6fa683a759113d6d55154e679374bb15a4fbe234..30b785283519cbe8b379b0ae3ac3de6c4bdd7412 100644
|
| --- a/android_webview/javatests/src/org/chromium/android_webview/test/PolicyUrlFilteringTest.java
|
| +++ b/android_webview/javatests/src/org/chromium/android_webview/test/PolicyUrlFilteringTest.java
|
| @@ -5,9 +5,7 @@
|
| package org.chromium.android_webview.test;
|
|
|
| import android.os.Build;
|
| -import android.os.Bundle;
|
| import android.test.suitebuilder.annotation.MediumTest;
|
| -import android.text.TextUtils;
|
| import android.util.Pair;
|
|
|
| import org.chromium.android_webview.AwContents;
|
| @@ -19,8 +17,11 @@
|
| import org.chromium.content.browser.test.util.TestCallbackHelperContainer;
|
| import org.chromium.net.test.util.TestWebServer;
|
| import org.chromium.policy.CombinedPolicyProvider;
|
| +import org.chromium.policy.test.PolicyData;
|
| +import org.chromium.policy.test.annotations.Policies;
|
|
|
| import java.util.ArrayList;
|
| +import java.util.Arrays;
|
|
|
| /** Tests for the policy based URL filtering. */
|
| @MinAndroidSdkLevel(Build.VERSION_CODES.KITKAT)
|
| @@ -30,7 +31,7 @@
|
| private TestWebServer mWebServer;
|
| private String mFooTestUrl;
|
| private String mBarTestUrl;
|
| - private AwPolicyProvider mTestProvider;
|
| + private static final String sFooTestFilePath = "/foo.html";
|
|
|
| private static final String sBlacklistPolicyName = "com.android.browser:URLBlacklist";
|
| private static final String sWhitelistPolicyName = "com.android.browser:URLWhitelist";
|
| @@ -40,19 +41,11 @@ public void setUp() throws Exception {
|
| super.setUp();
|
| setTestAwContentsClient(new TestAwContentsClient());
|
| mWebServer = TestWebServer.start();
|
| - mFooTestUrl = mWebServer.setResponse("/foo.html", "<html><body>foo</body></html>",
|
| + mFooTestUrl = mWebServer.setResponse(sFooTestFilePath, "<html><body>foo</body></html>",
|
| new ArrayList<Pair<String, String>>());
|
| mBarTestUrl = mWebServer.setResponse("/bar.html", "<html><body>bar</body></html>",
|
| new ArrayList<Pair<String, String>>());
|
|
|
| - ThreadUtils.runOnUiThreadBlocking(new Runnable() {
|
| - @Override
|
| - public void run() {
|
| - mTestProvider = new AwPolicyProvider(getActivity().getApplicationContext());
|
| - CombinedPolicyProvider.get().registerProvider(mTestProvider);
|
| - }
|
| - });
|
| -
|
| getInstrumentation().waitForIdleSync();
|
| }
|
|
|
| @@ -79,11 +72,20 @@ public void testBlacklistedUrl() throws Throwable {
|
| TestCallbackHelperContainer.OnPageFinishedHelper onPageFinishedHelper =
|
| mContentsClient.getOnPageFinishedHelper();
|
|
|
| + final AwPolicyProvider testProvider =
|
| + new AwPolicyProvider(getActivity().getApplicationContext());
|
| + ThreadUtils.runOnUiThreadBlocking(new Runnable() {
|
| + @Override
|
| + public void run() {
|
| + CombinedPolicyProvider.get().registerProvider(testProvider);
|
| + }
|
| + });
|
| +
|
| loadUrlSync(mAwContents, onPageFinishedHelper, mFooTestUrl);
|
| assertEquals(mFooTestUrl, onPageFinishedHelper.getUrl());
|
| assertEquals(0, onReceivedErrorHelper.getCallCount());
|
|
|
| - setFilteringPolicy(new String[] {"localhost"}, new String[] {});
|
| + setFilteringPolicy(testProvider, new String[] {"localhost"}, new String[] {});
|
|
|
| loadUrlSync(mAwContents, onPageFinishedHelper, mFooTestUrl);
|
| assertEquals(mFooTestUrl, onPageFinishedHelper.getUrl());
|
| @@ -91,16 +93,20 @@ public void testBlacklistedUrl() throws Throwable {
|
| assertEquals(ErrorCodeConversionHelper.ERROR_CONNECT, onReceivedErrorHelper.getErrorCode());
|
| }
|
|
|
| - // Tests transforming the bundle to native policies, reloading the policies and getting a
|
| - // successful navigation with a whitelist.
|
| + // Tests getting a successful navigation with a whitelist.
|
| @MediumTest
|
| @Feature({"AndroidWebView", "Policy"})
|
| + @Policies.Add({
|
| + @Policies.Item(key = sBlacklistPolicyName, type = Policies.Type.STRING_ARRAY,
|
| + stringArray = {"*"}),
|
| + @Policies.Item(key = sWhitelistPolicyName, type = Policies.Type.STRING_ARRAY,
|
| + stringArray = {"localhost" + sFooTestFilePath}),
|
| + })
|
| public void testWhitelistedUrl() throws Throwable {
|
| TestCallbackHelperContainer.OnReceivedErrorHelper onReceivedErrorHelper =
|
| mContentsClient.getOnReceivedErrorHelper();
|
| TestCallbackHelperContainer.OnPageFinishedHelper onPageFinishedHelper =
|
| mContentsClient.getOnPageFinishedHelper();
|
| - setFilteringPolicy(new String[] {"*"}, new String[] {mFooTestUrl});
|
|
|
| loadUrlSync(mAwContents, onPageFinishedHelper, mFooTestUrl);
|
| assertEquals(mFooTestUrl, onPageFinishedHelper.getUrl());
|
| @@ -113,25 +119,18 @@ public void testWhitelistedUrl() throws Throwable {
|
| assertEquals(ErrorCodeConversionHelper.ERROR_CONNECT, onReceivedErrorHelper.getErrorCode());
|
| }
|
|
|
| - private void setFilteringPolicy(final String[] blacklistUrls, final String[] whitelistUrls) {
|
| - final Bundle newPolicies = new Bundle();
|
| -
|
| - if (blacklistUrls != null && blacklistUrls.length > 0) {
|
| - String blacklistString =
|
| - String.format("[\"%s\"]", TextUtils.join("\",\"", blacklistUrls));
|
| - newPolicies.putString(sBlacklistPolicyName, blacklistString);
|
| - }
|
| + private void setFilteringPolicy(final AwPolicyProvider testProvider,
|
| + final String[] blacklistUrls, final String[] whitelistUrls) {
|
|
|
| - if (whitelistUrls != null && whitelistUrls.length > 0) {
|
| - String whitelistString =
|
| - String.format("[\"%s\"]", TextUtils.join("\",\"", whitelistUrls));
|
| - newPolicies.putString(sWhitelistPolicyName, whitelistString);
|
| - }
|
| + final PolicyData[] policies = {
|
| + new PolicyData.StrArray(sBlacklistPolicyName, blacklistUrls),
|
| + new PolicyData.StrArray(sWhitelistPolicyName, whitelistUrls)
|
| + };
|
|
|
| ThreadUtils.runOnUiThreadBlocking(new Runnable() {
|
| @Override
|
| public void run() {
|
| - mTestProvider.notifySettingsAvailable(newPolicies);
|
| + testProvider.notifySettingsAvailable(PolicyData.asBundle(Arrays.asList(policies)));
|
| }
|
| });
|
|
|
|
|