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,