Test that WebViewClient.onReceivedSslError() is called with the correct WebView and URL
Bug: 5410252
Change-Id: Iba9d394b8c36038914ad3c1fcbdae612f1039a2b
diff --git a/tests/tests/webkit/src/android/webkit/cts/WebViewTest.java b/tests/tests/webkit/src/android/webkit/cts/WebViewTest.java
index 3934f40..afdde44 100755
--- a/tests/tests/webkit/src/android/webkit/cts/WebViewTest.java
+++ b/tests/tests/webkit/src/android/webkit/cts/WebViewTest.java
@@ -2239,6 +2239,45 @@
@TestTargetNew(
level = TestLevel.COMPLETE,
+ method = "WebViewClient.onReceivedSslError",
+ args = {}
+ )
+ public void testOnReceivedSslError() throws Throwable {
+ final class MockWebViewClient extends WebViewClient {
+ private String mErrorUrl;
+ private WebView mWebView;
+ @Override
+ public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
+ mWebView = view;
+ mErrorUrl = error.getUrl();
+ handler.proceed();
+ }
+ public String errorUrl() {
+ return mErrorUrl;
+ }
+ public WebView webView() {
+ return mWebView;
+ }
+ }
+
+ startWebServer(true);
+ final String errorUrl = mWebServer.getAssetUrl(TestHtmlConstants.HELLO_WORLD_URL);
+ final MockWebViewClient webViewClient = new MockWebViewClient();
+ runTestOnUiThread(new Runnable() {
+ public void run() {
+ mWebView.setWebViewClient(webViewClient);
+ mWebView.setWebChromeClient(new LoadCompleteWebChromeClient());
+ mWebView.loadUrl(errorUrl);
+ }
+ });
+ waitForUiThreadDone();
+
+ assertEquals(webViewClient.webView(), mWebView);
+ assertEquals(webViewClient.errorUrl(), errorUrl);
+ }
+
+ @TestTargetNew(
+ level = TestLevel.COMPLETE,
method = "requestChildRectangleOnScreen",
args = {View.class, Rect.class, boolean.class}
)