Add a test for WebView.removeJavascriptInterface()
Bug: 3234178
Change-Id: Id46edc4484fb485efe90e896a615e564a307bf28
diff --git a/tests/tests/webkit/src/android/webkit/cts/WebViewTest.java b/tests/tests/webkit/src/android/webkit/cts/WebViewTest.java
index d7c1178..84fe827 100644
--- a/tests/tests/webkit/src/android/webkit/cts/WebViewTest.java
+++ b/tests/tests/webkit/src/android/webkit/cts/WebViewTest.java
@@ -572,6 +572,31 @@
assertEquals("object", mWebView.getTitle());
}
+ @TestTargetNew(
+ level = TestLevel.COMPLETE,
+ method = "removeJavascriptInterface",
+ args = {String.class}
+ )
+ public void testRemoveJavascriptInterface() throws Exception {
+ WebSettings settings = mWebView.getSettings();
+ settings.setJavaScriptEnabled(true);
+ String setTitleToPropertyTypeHtml = "<html><head></head>" +
+ "<body onload=\"document.title = typeof window.injectedObject;\"></body></html>";
+
+ // Test that adding an object gives an object type.
+ final DummyJavaScriptInterface obj = new DummyJavaScriptInterface();
+ mWebView.addJavascriptInterface(obj, "injectedObject");
+ mWebView.loadData(setTitleToPropertyTypeHtml, "text/html", "UTF-8");
+ waitForLoadComplete(mWebView, TEST_TIMEOUT);
+ assertEquals("object", mWebView.getTitle());
+
+ // Test that removing the object leaves the property undefined.
+ mWebView.removeJavascriptInterface("injectedObject");
+ mWebView.loadData(setTitleToPropertyTypeHtml, "text/html", "UTF-8");
+ waitForLoadComplete(mWebView, TEST_TIMEOUT);
+ assertEquals("undefined", mWebView.getTitle());
+ }
+
@TestTargets({
@TestTargetNew(
level = TestLevel.COMPLETE,