diff options
author | yfriedman@chromium.org <yfriedman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-10 05:20:44 +0000 |
---|---|---|
committer | yfriedman@chromium.org <yfriedman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-10 05:20:44 +0000 |
commit | 8024ad5126df5269faac2d41e698f02a583b6fc1 (patch) | |
tree | 58ab1ac542f6e04919612c4cc31a9f592bf2444d /content | |
parent | 6c16ef3d308304ae6e25456cb89859034ae2f2ab (diff) | |
download | chromium_src-8024ad5126df5269faac2d41e698f02a583b6fc1.zip chromium_src-8024ad5126df5269faac2d41e698f02a583b6fc1.tar.gz chromium_src-8024ad5126df5269faac2d41e698f02a583b6fc1.tar.bz2 |
Remove some dependencies on ContentView.
Turns out that https://chromiumcodereview.appspot.com/11788005 made it
such that blocking for JavaScript doesn't require ContentViewClient,
just a ContentViewCore. Many places in tests still get the ContentView
in order to create a TestCallbackHelperContainer in order to wait for
JavaScript to execute...
Instead for clients that don't care about waiting themselves for JS to
execute, just do it inside JavaScriptUtils.
BUG=360644
Review URL: https://codereview.chromium.org/231693002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@262929 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content')
16 files changed, 62 insertions, 117 deletions
diff --git a/content/public/android/javatests/src/org/chromium/content/browser/ContentDetectionTestBase.java b/content/public/android/javatests/src/org/chromium/content/browser/ContentDetectionTestBase.java index 64de845..8319e2d 100644 --- a/content/public/android/javatests/src/org/chromium/content/browser/ContentDetectionTestBase.java +++ b/content/public/android/javatests/src/org/chromium/content/browser/ContentDetectionTestBase.java @@ -66,8 +66,8 @@ public class ContentDetectionTestBase extends ContentShellTestBase { callbackHelperContainer.getOnStartContentIntentHelper(); int currentCallCount = onStartContentIntentHelper.getCallCount(); - DOMUtils.scrollNodeIntoView(getContentViewCore(), callbackHelperContainer, id); - DOMUtils.clickNode(this, getContentView(), callbackHelperContainer, id); + DOMUtils.scrollNodeIntoView(getContentViewCore(), id); + DOMUtils.clickNode(this, getContentView(), id); onStartContentIntentHelper.waitForCallback(currentCallCount, 1, WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS); @@ -87,8 +87,8 @@ public class ContentDetectionTestBase extends ContentShellTestBase { callbackHelperContainer.getOnPageFinishedHelper(); int currentCallCount = onPageFinishedHelper.getCallCount(); - DOMUtils.scrollNodeIntoView(getContentViewCore(), callbackHelperContainer, id); - DOMUtils.clickNode(this, getContentView(), callbackHelperContainer, id); + DOMUtils.scrollNodeIntoView(getContentViewCore(), id); + DOMUtils.clickNode(this, getContentView(), id); onPageFinishedHelper.waitForCallback(currentCallCount, 1, WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS); diff --git a/content/public/android/javatests/src/org/chromium/content/browser/ContentViewLocationTest.java b/content/public/android/javatests/src/org/chromium/content/browser/ContentViewLocationTest.java index 3e6b3f7..35871dc 100644 --- a/content/public/android/javatests/src/org/chromium/content/browser/ContentViewLocationTest.java +++ b/content/public/android/javatests/src/org/chromium/content/browser/ContentViewLocationTest.java @@ -11,6 +11,7 @@ import org.chromium.content.browser.test.util.Criteria; import org.chromium.content.browser.test.util.CriteriaHelper; import org.chromium.content.browser.test.util.MockLocationProvider; import org.chromium.content.browser.test.util.TestCallbackHelperContainer; +import org.chromium.content.browser.test.util.TestCallbackHelperContainer.OnEvaluateJavaScriptResultHelper; import org.chromium.content_shell_apk.ContentShellTestBase; /** @@ -91,7 +92,7 @@ public class ContentViewLocationTest extends ContentShellTestBase { } mTestCallbackHelperContainer = new TestCallbackHelperContainer(getContentView()); - mJavascriptHelper = mTestCallbackHelperContainer.getOnEvaluateJavaScriptResultHelper(); + mJavascriptHelper = new OnEvaluateJavaScriptResultHelper(); ensureGeolocationRunning(false); } diff --git a/content/public/android/javatests/src/org/chromium/content/browser/ContentViewPopupZoomerTest.java b/content/public/android/javatests/src/org/chromium/content/browser/ContentViewPopupZoomerTest.java index 6205d3b..858cc08 100644 --- a/content/public/android/javatests/src/org/chromium/content/browser/ContentViewPopupZoomerTest.java +++ b/content/public/android/javatests/src/org/chromium/content/browser/ContentViewPopupZoomerTest.java @@ -92,7 +92,7 @@ public class ContentViewPopupZoomerTest extends ContentShellTestBase { CriteriaHelper.pollForCriteria(new PopupShowingCriteria(view, false))); // Once clicked, the popup should show up. - DOMUtils.clickNode(this, view, viewClient, "clickme"); + DOMUtils.clickNode(this, view, "clickme"); assertTrue("The zoomer popup did not show up on click.", CriteriaHelper.pollForCriteria(new PopupShowingCriteria(view, true))); diff --git a/content/public/android/javatests/src/org/chromium/content/browser/GestureDetectorResetTest.java b/content/public/android/javatests/src/org/chromium/content/browser/GestureDetectorResetTest.java index e9a61b5..808af37 100644 --- a/content/public/android/javatests/src/org/chromium/content/browser/GestureDetectorResetTest.java +++ b/content/public/android/javatests/src/org/chromium/content/browser/GestureDetectorResetTest.java @@ -32,16 +32,13 @@ public class GestureDetectorResetTest extends ContentShellTestBase { private static class NodeContentsIsEqualToCriteria implements Criteria { private final ContentViewCore mViewCore; - private final TestCallbackHelperContainer mViewClient; private final String mNodeId; private final String mExpectedContents; public NodeContentsIsEqualToCriteria( ContentViewCore viewCore, - TestCallbackHelperContainer viewClient, String nodeId, String expectedContents) { mViewCore = viewCore; - mViewClient = viewClient; mNodeId = nodeId; mExpectedContents = expectedContents; assert mExpectedContents != null; @@ -50,7 +47,7 @@ public class GestureDetectorResetTest extends ContentShellTestBase { @Override public boolean isSatisfied() { try { - String contents = DOMUtils.getNodeContents(mViewCore, mViewClient, mNodeId); + String contents = DOMUtils.getNodeContents(mViewCore, mNodeId); return mExpectedContents.equals(contents); } catch (Throwable e) { Assert.fail("Failed to retrieve node contents: " + e); @@ -64,20 +61,20 @@ public class GestureDetectorResetTest extends ContentShellTestBase { private void verifyClicksAreRegistered( String disambiguation, - ContentView view, TestCallbackHelperContainer viewClient) + ContentView view) throws InterruptedException, Exception, Throwable { // Initially the text on the page should say "not clicked". assertTrue("The page contents is invalid " + disambiguation, CriteriaHelper.pollForCriteria(new NodeContentsIsEqualToCriteria( - view.getContentViewCore(), viewClient, "test", "not clicked"))); + view.getContentViewCore(), "test", "not clicked"))); // Click the button. - DOMUtils.clickNode(this, view, viewClient, "button"); + DOMUtils.clickNode(this, view, "button"); // After the click, the text on the page should say "clicked". assertTrue("The page contents didn't change after a click " + disambiguation, CriteriaHelper.pollForCriteria(new NodeContentsIsEqualToCriteria( - view.getContentViewCore(), viewClient, "test", "clicked"))); + view.getContentViewCore(), "test", "clicked"))); } /** @@ -102,7 +99,7 @@ public class GestureDetectorResetTest extends ContentShellTestBase { viewClient.getOnPageFinishedHelper(); // Test that the button click works. - verifyClicksAreRegistered("on initial load", view, viewClient); + verifyClicksAreRegistered("on initial load", view); // Reload the test page. int currentCallCount = onPageFinishedHelper.getCallCount(); @@ -116,7 +113,7 @@ public class GestureDetectorResetTest extends ContentShellTestBase { WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS); // Test that the button click still works. - verifyClicksAreRegistered("after reload", view, viewClient); + verifyClicksAreRegistered("after reload", view); // Directly navigate to the test page. currentCallCount = onPageFinishedHelper.getCallCount(); @@ -131,6 +128,6 @@ public class GestureDetectorResetTest extends ContentShellTestBase { WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS); // Test that the button click still works. - verifyClicksAreRegistered("after direct navigation", view, viewClient); + verifyClicksAreRegistered("after direct navigation", view); } } diff --git a/content/public/android/javatests/src/org/chromium/content/browser/NavigationTest.java b/content/public/android/javatests/src/org/chromium/content/browser/NavigationTest.java index 67ec23a..6f8e56ff 100644 --- a/content/public/android/javatests/src/org/chromium/content/browser/NavigationTest.java +++ b/content/public/android/javatests/src/org/chromium/content/browser/NavigationTest.java @@ -9,6 +9,7 @@ import android.test.suitebuilder.annotation.MediumTest; import org.chromium.base.test.util.Feature; import org.chromium.base.test.util.UrlUtils; import org.chromium.content.browser.test.util.TestCallbackHelperContainer; +import org.chromium.content.browser.test.util.TestCallbackHelperContainer.OnEvaluateJavaScriptResultHelper; import org.chromium.content_shell_apk.ContentShellActivity; import org.chromium.content_shell_apk.ContentShellTestBase; @@ -112,8 +113,7 @@ public class NavigationTest extends ContentShellTestBase { ContentView contentView = activity.getActiveContentView(); TestCallbackHelperContainer testCallbackHelperContainer = new TestCallbackHelperContainer(contentView); - TestCallbackHelperContainer.OnEvaluateJavaScriptResultHelper javascriptHelper = - testCallbackHelperContainer.getOnEvaluateJavaScriptResultHelper(); + OnEvaluateJavaScriptResultHelper javascriptHelper = new OnEvaluateJavaScriptResultHelper(); // Grab the first timestamp. javascriptHelper.evaluateJavaScript(contentView.getContentViewCore(), "getLoadtime();"); diff --git a/content/public/android/javatests/src/org/chromium/content/browser/ScreenOrientationIntegrationTest.java b/content/public/android/javatests/src/org/chromium/content/browser/ScreenOrientationIntegrationTest.java index 25daf4b..2b5ee2a 100644 --- a/content/public/android/javatests/src/org/chromium/content/browser/ScreenOrientationIntegrationTest.java +++ b/content/public/android/javatests/src/org/chromium/content/browser/ScreenOrientationIntegrationTest.java @@ -9,7 +9,6 @@ import android.test.suitebuilder.annotation.SmallTest; import org.chromium.base.test.util.Feature; import org.chromium.base.test.util.UrlUtils; import org.chromium.content.browser.test.util.JavaScriptUtils; -import org.chromium.content.browser.test.util.TestCallbackHelperContainer; import org.chromium.content_shell_apk.ContentShellActivity; import org.chromium.content_shell_apk.ContentShellTestBase; @@ -35,7 +34,6 @@ public class ScreenOrientationIntegrationTest extends ContentShellTestBase { return Integer.parseInt( JavaScriptUtils.executeJavaScriptAndWaitForResult( mContentView.getContentViewCore(), - new TestCallbackHelperContainer(mContentView), "window.orientation")); } @@ -48,7 +46,6 @@ public class ScreenOrientationIntegrationTest extends ContentShellTestBase { return Integer.parseInt( JavaScriptUtils.executeJavaScriptAndWaitForResult( mContentView.getContentViewCore(), - new TestCallbackHelperContainer(mContentView), "changes")); } diff --git a/content/public/android/javatests/src/org/chromium/content/browser/TestsJavaScriptEvalTest.java b/content/public/android/javatests/src/org/chromium/content/browser/TestsJavaScriptEvalTest.java index b3efdb3..94dd854 100644 --- a/content/public/android/javatests/src/org/chromium/content/browser/TestsJavaScriptEvalTest.java +++ b/content/public/android/javatests/src/org/chromium/content/browser/TestsJavaScriptEvalTest.java @@ -9,7 +9,6 @@ import android.test.suitebuilder.annotation.LargeTest; import org.chromium.base.test.util.Feature; import org.chromium.base.test.util.UrlUtils; import org.chromium.content.browser.test.util.DOMUtils; -import org.chromium.content.browser.test.util.TestCallbackHelperContainer; import org.chromium.content_shell_apk.ContentShellTestBase; public class TestsJavaScriptEvalTest extends ContentShellTestBase { @@ -34,9 +33,6 @@ public class TestsJavaScriptEvalTest extends ContentShellTestBase { assertTrue("Page failed to load", waitForActiveShellToBeDoneLoading()); final ContentView view = getActivity().getActiveContentView(); - final TestCallbackHelperContainer viewClient = - new TestCallbackHelperContainer(view); - for (int i = 0; i < 30; ++i) { for (int j = 0; j < 10; ++j) { // Start evaluation of a JavaScript script -- we don't need a result. @@ -44,7 +40,7 @@ public class TestsJavaScriptEvalTest extends ContentShellTestBase { } // DOMUtils does need to evaluate a JavaScript and get its result to get DOM bounds. assertNotNull("Failed to get bounds", - DOMUtils.getNodeBounds(view.getContentViewCore(), viewClient, "test")); + DOMUtils.getNodeBounds(view.getContentViewCore(), "test")); } } } diff --git a/content/public/android/javatests/src/org/chromium/content/browser/ViewportTest.java b/content/public/android/javatests/src/org/chromium/content/browser/ViewportTest.java index 22a6a2b..9c7a34b 100644 --- a/content/public/android/javatests/src/org/chromium/content/browser/ViewportTest.java +++ b/content/public/android/javatests/src/org/chromium/content/browser/ViewportTest.java @@ -10,29 +10,15 @@ import android.view.WindowManager; import org.chromium.base.test.util.DisabledTest; import org.chromium.content.browser.test.util.JavaScriptUtils; -import org.chromium.content.browser.test.util.TestCallbackHelperContainer; /** * Test suite for viewport-related properties. */ public class ViewportTest extends ContentViewTestBase { - private TestCallbackHelperContainer mCallbackHelper; - - /** - * Returns the TestCallbackHelperContainer associated with this ContentView, - * or creates it lazily. - */ - protected TestCallbackHelperContainer getTestCallbackHelperContainer() { - if (mCallbackHelper == null) { - mCallbackHelper = new TestCallbackHelperContainer(getContentView()); - } - return mCallbackHelper; - } - protected String evaluateStringValue(String expression) throws Throwable { return JavaScriptUtils.executeJavaScriptAndWaitForResult(getContentViewCore(), - getTestCallbackHelperContainer(), expression); + expression); } protected float evaluateFloatValue(String expression) throws Throwable { diff --git a/content/public/android/javatests/src/org/chromium/content/browser/input/ImeTest.java b/content/public/android/javatests/src/org/chromium/content/browser/input/ImeTest.java index 8f4a90e..bd4167d 100644 --- a/content/public/android/javatests/src/org/chromium/content/browser/input/ImeTest.java +++ b/content/public/android/javatests/src/org/chromium/content/browser/input/ImeTest.java @@ -72,8 +72,8 @@ public class ImeTest extends ContentShellTestBase { // TODO(aurimas) remove this wait once crbug.com/179511 is fixed. assertWaitForPageScaleFactorMatch(2); assertTrue(DOMUtils.waitForNonZeroNodeBounds( - mContentViewCore, mCallbackContainer, "input_text")); - DOMUtils.clickNode(this, mContentView, mCallbackContainer, "input_text"); + mContentViewCore, "input_text")); + DOMUtils.clickNode(this, mContentView, "input_text"); assertWaitForKeyboardStatus(true); mConnection = (TestAdapterInputConnection) getAdapterInputConnection(); @@ -136,10 +136,10 @@ public class ImeTest extends ContentShellTestBase { commitText(mConnection, "hello", 1); waitAndVerifyEditableCallback(mConnection.mImeUpdateQueue, 1, "hello", 5, 5, -1, -1); - DOMUtils.clickNode(this, mContentView, mCallbackContainer, "input_radio"); + DOMUtils.clickNode(this, mContentView, "input_radio"); assertWaitForKeyboardStatus(false); - DOMUtils.clickNode(this, mContentView, mCallbackContainer, "input_text"); + DOMUtils.clickNode(this, mContentView, "input_text"); assertWaitForKeyboardStatus(true); assertEquals(5, mInputMethodManagerWrapper.getEditorInfo().initialSelStart); assertEquals(5, mInputMethodManagerWrapper.getEditorInfo().initialSelEnd); @@ -207,13 +207,13 @@ public class ImeTest extends ContentShellTestBase { @SmallTest @Feature({"TextInput", "Main"}) public void testShowImeIfNeeded() throws Throwable { - DOMUtils.focusNode(this, mContentViewCore, mCallbackContainer, "input_radio"); + DOMUtils.focusNode(this, mContentViewCore, "input_radio"); assertWaitForKeyboardStatus(false); performShowImeIfNeeded(); assertWaitForKeyboardStatus(false); - DOMUtils.focusNode(this, mContentViewCore, mCallbackContainer, "input_text"); + DOMUtils.focusNode(this, mContentViewCore, "input_text"); assertWaitForKeyboardStatus(false); performShowImeIfNeeded(); @@ -224,9 +224,9 @@ public class ImeTest extends ContentShellTestBase { @Feature({"TextInput", "Main"}) public void testFinishComposingText() throws Throwable { // Focus the textarea. We need to do the following steps because we are focusing using JS. - DOMUtils.focusNode(this, mContentViewCore, mCallbackContainer, "input_radio"); + DOMUtils.focusNode(this, mContentViewCore, "input_radio"); assertWaitForKeyboardStatus(false); - DOMUtils.focusNode(this, mContentViewCore, mCallbackContainer, "textarea"); + DOMUtils.focusNode(this, mContentViewCore, "textarea"); assertWaitForKeyboardStatus(false); performShowImeIfNeeded(); assertWaitForKeyboardStatus(true); @@ -257,9 +257,9 @@ public class ImeTest extends ContentShellTestBase { @Feature({"TextInput", "Main"}) public void testEnterKeyEventWhileComposingText() throws Throwable { // Focus the textarea. We need to do the following steps because we are focusing using JS. - DOMUtils.focusNode(this, mContentViewCore, mCallbackContainer, "input_radio"); + DOMUtils.focusNode(this, mContentViewCore, "input_radio"); assertWaitForKeyboardStatus(false); - DOMUtils.focusNode(this, mContentViewCore, mCallbackContainer, "textarea"); + DOMUtils.focusNode(this, mContentViewCore, "textarea"); assertWaitForKeyboardStatus(false); performShowImeIfNeeded(); assertWaitForKeyboardStatus(true); diff --git a/content/public/android/javatests/src/org/chromium/content/browser/input/InsertionHandleTest.java b/content/public/android/javatests/src/org/chromium/content/browser/input/InsertionHandleTest.java index 0247585..e49f87d 100644 --- a/content/public/android/javatests/src/org/chromium/content/browser/input/InsertionHandleTest.java +++ b/content/public/android/javatests/src/org/chromium/content/browser/input/InsertionHandleTest.java @@ -21,7 +21,6 @@ import org.chromium.content.browser.RenderCoordinates; import org.chromium.content.browser.test.util.Criteria; import org.chromium.content.browser.test.util.CriteriaHelper; import org.chromium.content.browser.test.util.DOMUtils; -import org.chromium.content.browser.test.util.TestCallbackHelperContainer; import org.chromium.content.browser.test.util.TestInputMethodManagerWrapper; import org.chromium.content.browser.test.util.TestTouchUtils; import org.chromium.content.browser.test.util.TouchCommon; @@ -250,8 +249,7 @@ public class InsertionHandleTest extends ContentShellTestBase { // click (only if it changes the selection), the insertion handle is displayed. So that the // second click changes the selection, the two clicks should be in sufficiently different // locations. - Rect nodeBounds = DOMUtils.getNodeBounds(getContentViewCore(), - new TestCallbackHelperContainer(getContentView()), nodeId); + Rect nodeBounds = DOMUtils.getNodeBounds(getContentViewCore(), nodeId); RenderCoordinates renderCoordinates = getContentViewCore().getRenderCoordinates(); int offsetX = getContentViewCore().getViewportSizeOffsetWidthPix(); diff --git a/content/public/android/javatests/src/org/chromium/content/browser/input/SelectPopupTest.java b/content/public/android/javatests/src/org/chromium/content/browser/input/SelectPopupTest.java index d7aef68..51e4a9a 100644 --- a/content/public/android/javatests/src/org/chromium/content/browser/input/SelectPopupTest.java +++ b/content/public/android/javatests/src/org/chromium/content/browser/input/SelectPopupTest.java @@ -83,7 +83,7 @@ public class SelectPopupTest extends ContentShellTestBase { viewClient.getOnPageFinishedHelper(); // Once clicked, the popup should show up. - DOMUtils.clickNode(this, view, viewClient, "select"); + DOMUtils.clickNode(this, view, "select"); assertTrue("The select popup did not show up on click.", CriteriaHelper.pollForCriteria(new PopupShowingCriteria())); @@ -104,7 +104,7 @@ public class SelectPopupTest extends ContentShellTestBase { CriteriaHelper.pollForCriteria(new PopupHiddenCriteria())); // Click the select and wait for the popup to show. - DOMUtils.clickNode(this, view, viewClient, "select"); + DOMUtils.clickNode(this, view, "select"); assertTrue("The select popup did not show on click after reload.", CriteriaHelper.pollForCriteria(new PopupShowingCriteria())); } diff --git a/content/public/android/javatests/src/org/chromium/content/browser/input/SelectionHandleTest.java b/content/public/android/javatests/src/org/chromium/content/browser/input/SelectionHandleTest.java index 3f7ed3e..a0adce4 100644 --- a/content/public/android/javatests/src/org/chromium/content/browser/input/SelectionHandleTest.java +++ b/content/public/android/javatests/src/org/chromium/content/browser/input/SelectionHandleTest.java @@ -22,7 +22,6 @@ import org.chromium.content.browser.RenderCoordinates; import org.chromium.content.browser.test.util.Criteria; import org.chromium.content.browser.test.util.CriteriaHelper; import org.chromium.content.browser.test.util.DOMUtils; -import org.chromium.content.browser.test.util.TestCallbackHelperContainer; import org.chromium.content.browser.test.util.TestInputMethodManagerWrapper; import org.chromium.content.browser.test.util.TestTouchUtils; import org.chromium.content.browser.test.util.TouchCommon; @@ -449,8 +448,7 @@ public class SelectionHandleTest extends ContentShellTestBase { } private Rect getNodeBoundsPix(String nodeId) throws Throwable { - Rect nodeBounds = DOMUtils.getNodeBounds(getContentViewCore(), - new TestCallbackHelperContainer(getContentView()), nodeId); + Rect nodeBounds = DOMUtils.getNodeBounds(getContentViewCore(), nodeId); RenderCoordinates renderCoordinates = getContentViewCore().getRenderCoordinates(); int offsetX = getContentViewCore().getViewportSizeOffsetWidthPix(); diff --git a/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/DOMUtils.java b/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/DOMUtils.java index f4f331d..aec49bb 100644 --- a/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/DOMUtils.java +++ b/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/DOMUtils.java @@ -25,8 +25,7 @@ public class DOMUtils { /** * Returns the rect boundaries for a node by its id. */ - public static Rect getNodeBounds( - final ContentViewCore viewCore, TestCallbackHelperContainer viewClient, String nodeId) + public static Rect getNodeBounds(final ContentViewCore viewCore, String nodeId) throws InterruptedException, TimeoutException { StringBuilder sb = new StringBuilder(); sb.append("(function() {"); @@ -44,7 +43,7 @@ public class DOMUtils { sb.append("})();"); String jsonText = JavaScriptUtils.executeJavaScriptAndWaitForResult( - viewCore, viewClient, sb.toString()); + viewCore, sb.toString()); Assert.assertFalse("Failed to retrieve bounds for " + nodeId, jsonText.trim().equalsIgnoreCase("null")); @@ -72,7 +71,7 @@ public class DOMUtils { * Focus a DOM node by its id. */ public static void focusNode(ActivityInstrumentationTestCase2 activityTestCase, - final ContentViewCore viewCore, TestCallbackHelperContainer viewClient, String nodeId) + final ContentViewCore viewCore, String nodeId) throws InterruptedException, TimeoutException { StringBuilder sb = new StringBuilder(); sb.append("(function() {"); @@ -80,16 +79,16 @@ public class DOMUtils { sb.append(" if (node) node.focus();"); sb.append("})();"); - JavaScriptUtils.executeJavaScriptAndWaitForResult(viewCore, viewClient, sb.toString()); + JavaScriptUtils.executeJavaScriptAndWaitForResult(viewCore, sb.toString()); } /** * Click a DOM node by its id. */ public static void clickNode(ActivityInstrumentationTestCase2 activityTestCase, - final ContentView view, TestCallbackHelperContainer viewClient, String nodeId) + final ContentView view, String nodeId) throws InterruptedException, TimeoutException { - int[] clickTarget = getClickTargetForNode(view.getContentViewCore(), viewClient, nodeId); + int[] clickTarget = getClickTargetForNode(view.getContentViewCore(), nodeId); TouchCommon touchCommon = new TouchCommon(activityTestCase); touchCommon.singleClickView(view, clickTarget[0], clickTarget[1]); } @@ -98,9 +97,9 @@ public class DOMUtils { * Long-press a DOM node by its id. */ public static void longPressNode(ActivityInstrumentationTestCase2 activityTestCase, - final ContentView view, TestCallbackHelperContainer viewClient, String nodeId) + final ContentView view, String nodeId) throws InterruptedException, TimeoutException { - int[] clickTarget = getClickTargetForNode(view.getContentViewCore(), viewClient, nodeId); + int[] clickTarget = getClickTargetForNode(view.getContentViewCore(), nodeId); TouchCommon touchCommon = new TouchCommon(activityTestCase); touchCommon.longPressView(view, clickTarget[0], clickTarget[1]); } @@ -108,33 +107,30 @@ public class DOMUtils { /** * Scrolls the view to ensure that the required DOM node is visible. */ - public static void scrollNodeIntoView(final ContentViewCore viewCore, - TestCallbackHelperContainer viewClient, String nodeId) + public static void scrollNodeIntoView(ContentViewCore viewCore, String nodeId) throws InterruptedException, TimeoutException { - JavaScriptUtils.executeJavaScriptAndWaitForResult(viewCore, viewClient, + JavaScriptUtils.executeJavaScriptAndWaitForResult(viewCore, "document.getElementById('" + nodeId + "').scrollIntoView()"); } /** * Returns the contents of the node by its id. */ - public static String getNodeContents(final ContentViewCore viewCore, - TestCallbackHelperContainer viewClient, String nodeId) + public static String getNodeContents(ContentViewCore viewCore, String nodeId) throws InterruptedException, TimeoutException { - return getNodeField("textContent", viewCore, viewClient, nodeId); + return getNodeField("textContent", viewCore, nodeId); } /** * Returns the value of the node by its id. */ - public static String getNodeValue(final ContentViewCore viewCore, - TestCallbackHelperContainer viewClient, String nodeId) + public static String getNodeValue(final ContentViewCore viewCore, String nodeId) throws InterruptedException, TimeoutException { - return getNodeField("value", viewCore, viewClient, nodeId); + return getNodeField("value", viewCore, nodeId); } private static String getNodeField(String fieldName, final ContentViewCore viewCore, - TestCallbackHelperContainer viewClient, String nodeId) + String nodeId) throws InterruptedException, TimeoutException { StringBuilder sb = new StringBuilder(); sb.append("(function() {"); @@ -145,7 +141,7 @@ public class DOMUtils { sb.append("})();"); String jsonText = JavaScriptUtils.executeJavaScriptAndWaitForResult( - viewCore, viewClient, sb.toString()); + viewCore, sb.toString()); Assert.assertFalse("Failed to retrieve contents for " + nodeId, jsonText.trim().equalsIgnoreCase("null")); @@ -169,13 +165,13 @@ public class DOMUtils { * @return Whether the node started having non-zero bounds. */ public static boolean waitForNonZeroNodeBounds(final ContentViewCore viewCore, - final TestCallbackHelperContainer viewClient, final String nodeName) + final String nodeName) throws InterruptedException { return CriteriaHelper.pollForCriteria(new Criteria() { @Override public boolean isSatisfied() { try { - return !DOMUtils.getNodeBounds(viewCore, viewClient, nodeName).isEmpty(); + return !DOMUtils.getNodeBounds(viewCore, nodeName).isEmpty(); } catch (InterruptedException e) { // Intentionally do nothing return false; @@ -190,10 +186,9 @@ public class DOMUtils { /** * Returns click targets for a given DOM node. */ - private static int[] getClickTargetForNode(final ContentViewCore viewCore, - TestCallbackHelperContainer viewClient, String nodeName) + private static int[] getClickTargetForNode(ContentViewCore viewCore, String nodeName) throws InterruptedException, TimeoutException { - Rect bounds = getNodeBounds(viewCore, viewClient, nodeName); + Rect bounds = getNodeBounds(viewCore, nodeName); Assert.assertNotNull("Failed to get DOM element bounds of '" + nodeName + "'.", bounds); int clickX = (int) viewCore.getRenderCoordinates().fromLocalCssToPix(bounds.exactCenterX()) diff --git a/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/JavaScriptUtils.java b/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/JavaScriptUtils.java index 80556b6..daefd4f 100644 --- a/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/JavaScriptUtils.java +++ b/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/JavaScriptUtils.java @@ -10,6 +10,7 @@ import junit.framework.Assert; import org.chromium.base.ThreadUtils; import org.chromium.content.browser.ContentViewCore; +import org.chromium.content.browser.test.util.TestCallbackHelperContainer.OnEvaluateJavaScriptResultHelper; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; @@ -25,10 +26,9 @@ public class JavaScriptUtils { * Returns the result of its execution in JSON format. */ public static String executeJavaScriptAndWaitForResult( - final ContentViewCore viewCore, TestCallbackHelperContainer viewClient, - final String code) throws InterruptedException, TimeoutException { + ContentViewCore viewCore, String code) throws InterruptedException, TimeoutException { return executeJavaScriptAndWaitForResult( - viewCore, viewClient.getOnEvaluateJavaScriptResultHelper(), code); + viewCore, code, EVALUATION_TIMEOUT_SECONDS, TimeUnit.SECONDS); } /** @@ -38,23 +38,11 @@ public class JavaScriptUtils { */ public static String executeJavaScriptAndWaitForResult( final ContentViewCore viewCore, - final TestCallbackHelperContainer.OnEvaluateJavaScriptResultHelper helper, - final String code) throws InterruptedException, TimeoutException { - return executeJavaScriptAndWaitForResult( - viewCore, helper, code, EVALUATION_TIMEOUT_SECONDS, TimeUnit.SECONDS); - } - - /** - * Executes the given snippet of JavaScript code within the given ContentViewCore. - * Does not depend on ContentView and TestCallbackHelperContainer. - * Returns the result of its execution in JSON format. - */ - public static String executeJavaScriptAndWaitForResult( - final ContentViewCore viewCore, - final TestCallbackHelperContainer.OnEvaluateJavaScriptResultHelper helper, final String code, - final long timeout, final TimeUnit timeoutUnits) + final long timeout, + final TimeUnit timeoutUnits) throws InterruptedException, TimeoutException { + final OnEvaluateJavaScriptResultHelper helper = new OnEvaluateJavaScriptResultHelper(); // Calling this from the UI thread causes it to time-out: the UI thread being blocked won't // have a chance to process the JavaScript eval response). Assert.assertFalse("Executing JavaScript should be done from the test thread, " diff --git a/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/TestCallbackHelperContainer.java b/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/TestCallbackHelperContainer.java index c0b1554..4676499 100644 --- a/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/TestCallbackHelperContainer.java +++ b/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/TestCallbackHelperContainer.java @@ -15,8 +15,8 @@ import java.util.concurrent.TimeoutException; * This class is used to provide callback hooks for tests and related classes. */ public class TestCallbackHelperContainer { - private TestContentViewClient mTestContentViewClient; - private TestWebContentsObserver mTestWebContentsObserver; + private final TestContentViewClient mTestContentViewClient; + private final TestWebContentsObserver mTestWebContentsObserver; public TestCallbackHelperContainer(ContentView contentView) { mTestContentViewClient = new TestContentViewClient(); @@ -176,10 +176,6 @@ public class TestCallbackHelperContainer { return mTestWebContentsObserver.getOnReceivedErrorHelper(); } - public OnEvaluateJavaScriptResultHelper getOnEvaluateJavaScriptResultHelper() { - return mTestContentViewClient.getOnEvaluateJavaScriptResultHelper(); - } - public OnStartContentIntentHelper getOnStartContentIntentHelper() { return mTestContentViewClient.getOnStartContentIntentHelper(); } diff --git a/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/TestContentViewClient.java b/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/TestContentViewClient.java index e014193..5103eac 100644 --- a/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/TestContentViewClient.java +++ b/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/TestContentViewClient.java @@ -7,7 +7,6 @@ package org.chromium.content.browser.test.util; import android.content.Context; import org.chromium.content.browser.ContentViewClient; -import org.chromium.content.browser.test.util.TestCallbackHelperContainer.OnEvaluateJavaScriptResultHelper; import org.chromium.content.browser.test.util.TestCallbackHelperContainer.OnStartContentIntentHelper; /** @@ -18,18 +17,12 @@ import org.chromium.content.browser.test.util.TestCallbackHelperContainer.OnStar */ public class TestContentViewClient extends ContentViewClient { - private OnEvaluateJavaScriptResultHelper mOnEvaluateJavaScriptResultHelper; - private OnStartContentIntentHelper mOnStartContentIntentHelper; + private final OnStartContentIntentHelper mOnStartContentIntentHelper; public TestContentViewClient() { - mOnEvaluateJavaScriptResultHelper = new OnEvaluateJavaScriptResultHelper(); mOnStartContentIntentHelper = new OnStartContentIntentHelper(); } - public OnEvaluateJavaScriptResultHelper getOnEvaluateJavaScriptResultHelper() { - return mOnEvaluateJavaScriptResultHelper; - } - public OnStartContentIntentHelper getOnStartContentIntentHelper() { return mOnStartContentIntentHelper; } |