summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Murdoch <benm@google.com>2012-06-08 12:49:11 +0100
committerBen Murdoch <benm@google.com>2012-06-11 15:29:15 +0100
commit963a7307e9fe7ebb13c3bf0dda1bf889d491b629 (patch)
tree19bab1b305305c372fe0a28531eb7bdd356c7f30
parent0163b175d378bfeb88b19db1707a8805c9ab46eb (diff)
downloadframeworks_base-963a7307e9fe7ebb13c3bf0dda1bf889d491b629.zip
frameworks_base-963a7307e9fe7ebb13c3bf0dda1bf889d491b629.tar.gz
frameworks_base-963a7307e9fe7ebb13c3bf0dda1bf889d491b629.tar.bz2
Add JavaBridge test to ensure objects injected into child frames.
Child frames should have also have any injected javascript interfaces from the main frame. Add a test to verify this behavior. Bug: 6640270 Change-Id: Ifca486e329333b642d8195391fb1829bbf9a684c
-rw-r--r--tests/WebViewTests/src/com/android/webviewtests/JavaBridgeChildFrameTest.java63
1 files changed, 63 insertions, 0 deletions
diff --git a/tests/WebViewTests/src/com/android/webviewtests/JavaBridgeChildFrameTest.java b/tests/WebViewTests/src/com/android/webviewtests/JavaBridgeChildFrameTest.java
new file mode 100644
index 0000000..46293c6
--- /dev/null
+++ b/tests/WebViewTests/src/com/android/webviewtests/JavaBridgeChildFrameTest.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Part of the test suite for the WebView's Java Bridge.
+ *
+ * Ensures that injected objects are exposed to child frames as well as the
+ * main frame.
+ *
+ * To run this test ...
+ * adb shell am instrument -w -e class com.android.webviewtests.JavaBridgeChildFrameTest \
+ * com.android.webviewtests/android.test.InstrumentationTestRunner
+ */
+
+package com.android.webviewtests;
+
+public class JavaBridgeChildFrameTest extends JavaBridgeTestBase {
+ private class TestController extends Controller {
+ private String mStringValue;
+
+ public synchronized void setStringValue(String x) {
+ mStringValue = x;
+ notifyResultIsReady();
+ }
+ public synchronized String waitForStringValue() {
+ waitForResult();
+ return mStringValue;
+ }
+ }
+
+ TestController mTestController;
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ mTestController = new TestController();
+ setUpWebView(mTestController, "testController");
+ }
+
+ public void testInjectedObjectPresentInChildFrame() throws Throwable {
+ // In the case that the test fails (i.e. the child frame doesn't get the injected object,
+ // the call to testController.setStringValue in the child frame's onload handler will
+ // not be made.
+ getActivity().getWebView().loadData(
+ "<html><head><body>" +
+ "<iframe id=\"childFrame\" onload=\"testController.setStringValue('PASS');\" />" +
+ "</body></html>", "text/html", null);
+ assertEquals("PASS", mTestController.waitForStringValue());
+ }
+}