Add testOnReceivedLoginRequest to WebViewClientTest in mnc-dev
Change-Id: I597c24f537ddd044c64443fd3acb9347f0c43b6c
diff --git a/tests/tests/webkit/src/android/webkit/cts/WebViewClientTest.java b/tests/tests/webkit/src/android/webkit/cts/WebViewClientTest.java
index 7f51cdc..ecc57d4 100644
--- a/tests/tests/webkit/src/android/webkit/cts/WebViewClientTest.java
+++ b/tests/tests/webkit/src/android/webkit/cts/WebViewClientTest.java
@@ -34,11 +34,14 @@
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.webkit.cts.WebViewOnUiThread.WaitForLoadedClient;
+import android.util.Pair;
import java.io.ByteArrayInputStream;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
+import java.util.List;
+import java.util.ArrayList;
public class WebViewClientTest extends ActivityInstrumentationTestCase2<WebViewCtsActivity> {
private static final long TEST_TIMEOUT = 5000;
@@ -210,6 +213,41 @@
}.run();
}
+ public void testOnReceivedLoginRequest() throws Exception {
+ if (!NullWebViewUtils.isWebViewAvailable()) {
+ return;
+ }
+ final MockWebViewClient webViewClient = new MockWebViewClient();
+ mOnUiThread.setWebViewClient(webViewClient);
+ TestWebServer testServer = null;
+ //set the url and html
+ final String path = "/main";
+ final String page = "<head></head><body>test onReceivedLoginRequest</body>";
+ final String headerName = "x-auto-login";
+ final String headerValue = "realm=com.google&account=foo%40bar.com&args=random_string";
+ List<Pair<String, String>> headers = new ArrayList<Pair<String, String>>();
+ headers.add(Pair.create(headerName, headerValue));
+
+ try {
+ testServer = new TestWebServer(false);
+ String url = testServer.setResponse(path, page, headers);
+ assertFalse(webViewClient.hasOnReceivedLoginRequest());
+ mOnUiThread.loadUrlAndWaitForCompletion(url);
+ assertTrue(webViewClient.hasOnReceivedLoginRequest());
+ new PollingCheck(TEST_TIMEOUT) {
+ @Override
+ protected boolean check() {
+ return webViewClient.hasOnReceivedLoginRequest();
+ }
+ }.run();
+ assertEquals("com.google", webViewClient.getLoginRequestRealm());
+ assertEquals("foo@bar.com", webViewClient.getLoginRequestAccount());
+ assertEquals("random_string", webViewClient.getLoginRequestArgs());
+ } finally {
+ testServer.shutdown();
+ }
+ }
+
public void testOnReceivedError() throws Exception {
if (!NullWebViewUtils.isWebViewAvailable()) {
return;
@@ -541,6 +579,10 @@
private boolean mOnFormResubmissionCalled;
private boolean mDoUpdateVisitedHistoryCalled;
private boolean mOnReceivedHttpAuthRequestCalled;
+ private boolean mOnReceivedLoginRequest;
+ private String mOnReceivedLoginAccount;
+ private String mOnReceivedLoginArgs;
+ private String mOnReceivedLoginRealm;
private boolean mOnUnhandledKeyEventCalled;
private boolean mOnScaleChangedCalled;
private int mShouldOverrideUrlLoadingCallCount;
@@ -566,6 +608,10 @@
return mOnReceivedErrorCode;
}
+ public boolean hasOnReceivedLoginRequest() {
+ return mOnReceivedLoginRequest;
+ }
+
public WebResourceError hasOnReceivedResourceError() {
return mOnReceivedResourceError;
}
@@ -602,6 +648,18 @@
return mLastShouldOverrideUrl;
}
+ public String getLoginRequestRealm() {
+ return mOnReceivedLoginRealm;
+ }
+
+ public String getLoginRequestAccount() {
+ return mOnReceivedLoginAccount;
+ }
+
+ public String getLoginRequestArgs() {
+ return mOnReceivedLoginArgs;
+ }
+
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);