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 053f76faeefee40e6e40f6097ed961807894e8a2..044452d80848a61d44ac608f9410145b39cdb4ab 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 |
@@ -73,11 +73,11 @@ public class PolicyUrlFilteringTest extends AwTestBase { |
} |
}); |
- navigateAndCheckOutcome(mFooTestUrl, 0); |
+ navigateAndCheckOutcome(mFooTestUrl, 0 /* error count before */, 0 /* error count after*/); |
setFilteringPolicy(testProvider, new String[] {"localhost"}, new String[] {}); |
- navigateAndCheckOutcome(mFooTestUrl, 1); |
+ navigateAndCheckOutcome(mFooTestUrl, 0 /* error count before */, 1 /* error count after */); |
assertEquals(ErrorCodeConversionHelper.ERROR_CONNECT, |
mContentsClient.getOnReceivedErrorHelper().getErrorCode()); |
} |
@@ -89,10 +89,10 @@ public class PolicyUrlFilteringTest extends AwTestBase { |
@Policies.Item(key = sBlacklistPolicyName, stringArray = {"*"}), |
@Policies.Item(key = sWhitelistPolicyName, stringArray = {sFooWhitelistFilter})}) |
public void testWhitelistedUrl() throws Throwable { |
- navigateAndCheckOutcome(mFooTestUrl, 0); |
+ navigateAndCheckOutcome(mFooTestUrl, 0 /* error count before */, 0 /* error count after */); |
// Make sure it goes through the blacklist |
- navigateAndCheckOutcome(mBarTestUrl, 1); |
+ navigateAndCheckOutcome(mBarTestUrl, 0 /* error count before */, 1 /* error count after */); |
assertEquals(ErrorCodeConversionHelper.ERROR_CONNECT, |
mContentsClient.getOnReceivedErrorHelper().getErrorCode()); |
} |
@@ -103,7 +103,7 @@ public class PolicyUrlFilteringTest extends AwTestBase { |
@Policies.Add({ |
@Policies.Item(key = sBlacklistPolicyName, string = "shouldBeAJsonArrayNotAString")}) |
public void testBadPolicyValue() throws Exception { |
- navigateAndCheckOutcome(mFooTestUrl, 0); |
+ navigateAndCheckOutcome(mFooTestUrl, 0 /* error count before */, 0 /* error count after */); |
// At the moment this test is written, a failure is a crash, a success is no crash. |
} |
@@ -111,14 +111,26 @@ public class PolicyUrlFilteringTest extends AwTestBase { |
* Synchronously loads the provided URL and checks that the number or reported errors for the |
* current context is the expected one. |
*/ |
- private void navigateAndCheckOutcome(String url, int expectedErrorCount) throws Exception { |
+ private void navigateAndCheckOutcome(String url, int startingErrorCount, int expectedErrorCount) |
+ throws Exception { |
+ if (expectedErrorCount < startingErrorCount) { |
+ throw new IllegalArgumentException( |
+ "The navigation error count can't decrease over time"); |
+ } |
TestCallbackHelperContainer.OnReceivedErrorHelper onReceivedErrorHelper = |
mContentsClient.getOnReceivedErrorHelper(); |
TestCallbackHelperContainer.OnPageFinishedHelper onPageFinishedHelper = |
mContentsClient.getOnPageFinishedHelper(); |
+ assertEquals(startingErrorCount, onReceivedErrorHelper.getCallCount()); |
+ |
loadUrlSync(mAwContents, onPageFinishedHelper, url); |
assertEquals(url, onPageFinishedHelper.getUrl()); |
+ |
+ if (expectedErrorCount > startingErrorCount) { |
+ onReceivedErrorHelper.waitForCallback( |
+ startingErrorCount, expectedErrorCount - startingErrorCount); |
+ } |
assertEquals(expectedErrorCount, onReceivedErrorHelper.getCallCount()); |
} |