1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 package org.chromium.content.browser;
7 import junit.framework.Assert;
9 import org.chromium.content_public.browser.LoadUrlParams;
12 * Common functionality for testing the Java Bridge.
14 public class JavaBridgeTestBase extends ContentViewTestBase {
15 protected class Controller {
16 private boolean mIsResultReady;
18 protected synchronized void notifyResultIsReady() {
19 mIsResultReady = true;
22 protected synchronized void waitForResult() {
23 while (!mIsResultReady) {
26 } catch (Exception e) {
29 if (!mIsResultReady) {
30 Assert.fail("Wait timed out");
33 mIsResultReady = false;
37 protected void executeJavaScript(final String script) throws Throwable {
38 runTestOnUiThread(new Runnable() {
41 // When a JavaScript URL is executed, if the value of the last
42 // expression evaluated is not 'undefined', this value is
43 // converted to a string and used as the new document for the
44 // frame. We don't want this behaviour, so wrap the script in
45 // an anonymous function.
46 getContentViewCore().getWebContents().getNavigationController().loadUrl(
47 new LoadUrlParams("javascript:(function() { " + script + " })()"));