Index: content/public/test/android/javatests/src/org/chromium/content/browser/test/util/DOMUtils.java |
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 |
deleted file mode 100644 |
index 878e8caf713720b7a33b045b82c6dcc705894f26..0000000000000000000000000000000000000000 |
--- a/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/DOMUtils.java |
+++ /dev/null |
@@ -1,204 +0,0 @@ |
-// Copyright 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-package org.chromium.content.browser.test.util; |
- |
-import android.graphics.Rect; |
-import android.test.ActivityInstrumentationTestCase2; |
-import android.util.JsonReader; |
- |
-import junit.framework.Assert; |
- |
-import org.chromium.content.browser.ContentView; |
- |
-import java.io.IOException; |
-import java.io.StringReader; |
-import java.util.concurrent.TimeoutException; |
- |
-/** |
- * Collection of DOM-based utilities. |
- */ |
-public class DOMUtils { |
- |
- /** |
- * Returns the rect boundaries for a node by its id. |
- */ |
- public static Rect getNodeBounds( |
- final ContentView view, TestCallbackHelperContainer viewClient, String nodeId) |
- throws InterruptedException, TimeoutException { |
- StringBuilder sb = new StringBuilder(); |
- sb.append("(function() {"); |
- sb.append(" var node = document.getElementById('" + nodeId + "');"); |
- sb.append(" if (!node) return null;"); |
- sb.append(" var width = node.offsetWidth;"); |
- sb.append(" var height = node.offsetHeight;"); |
- sb.append(" var x = -window.scrollX;"); |
- sb.append(" var y = -window.scrollY;"); |
- sb.append(" do {"); |
- sb.append(" x += node.offsetLeft;"); |
- sb.append(" y += node.offsetTop;"); |
- sb.append(" } while (node = node.offsetParent);"); |
- sb.append(" return [ x, y, width, height ];"); |
- sb.append("})();"); |
- |
- String jsonText = JavaScriptUtils.executeJavaScriptAndWaitForResult( |
- view, viewClient, sb.toString()); |
- |
- Assert.assertFalse("Failed to retrieve bounds for " + nodeId, |
- jsonText.trim().equalsIgnoreCase("null")); |
- |
- JsonReader jsonReader = new JsonReader(new StringReader(jsonText)); |
- int[] bounds = new int[4]; |
- try { |
- jsonReader.beginArray(); |
- int i = 0; |
- while (jsonReader.hasNext()) { |
- bounds[i++] = jsonReader.nextInt(); |
- } |
- jsonReader.endArray(); |
- Assert.assertEquals("Invalid bounds returned.", 4, i); |
- |
- jsonReader.close(); |
- } catch (IOException exception) { |
- Assert.fail("Failed to evaluate JavaScript: " + jsonText + "\n" + exception); |
- } |
- |
- return new Rect(bounds[0], bounds[1], bounds[0] + bounds[2], bounds[1] + bounds[3]); |
- } |
- |
- /** |
- * Focus a DOM node by its id. |
- */ |
- public static void focusNode(ActivityInstrumentationTestCase2 activityTestCase, |
- final ContentView view, TestCallbackHelperContainer viewClient, String nodeId) |
- throws InterruptedException, TimeoutException { |
- StringBuilder sb = new StringBuilder(); |
- sb.append("(function() {"); |
- sb.append(" var node = document.getElementById('" + nodeId + "');"); |
- sb.append(" if (node) node.focus();"); |
- sb.append("})();"); |
- |
- JavaScriptUtils.executeJavaScriptAndWaitForResult(view, viewClient, sb.toString()); |
- } |
- |
- /** |
- * Click a DOM node by its id. |
- */ |
- public static void clickNode(ActivityInstrumentationTestCase2 activityTestCase, |
- final ContentView view, TestCallbackHelperContainer viewClient, String nodeId) |
- throws InterruptedException, TimeoutException { |
- int[] clickTarget = getClickTargetForNode(view, viewClient, nodeId); |
- TouchCommon touchCommon = new TouchCommon(activityTestCase); |
- touchCommon.singleClickView(view, clickTarget[0], clickTarget[1]); |
- } |
- |
- /** |
- * Long-press a DOM node by its id. |
- */ |
- public static void longPressNode(ActivityInstrumentationTestCase2 activityTestCase, |
- final ContentView view, TestCallbackHelperContainer viewClient, String nodeId) |
- throws InterruptedException, TimeoutException { |
- int[] clickTarget = getClickTargetForNode(view, viewClient, nodeId); |
- TouchCommon touchCommon = new TouchCommon(activityTestCase); |
- touchCommon.longPressView(view, clickTarget[0], clickTarget[1]); |
- } |
- |
- /** |
- * Scrolls the view to ensure that the required DOM node is visible. |
- */ |
- public static void scrollNodeIntoView(final ContentView view, |
- TestCallbackHelperContainer viewClient, String nodeId) |
- throws InterruptedException, TimeoutException { |
- JavaScriptUtils.executeJavaScriptAndWaitForResult(view, viewClient, |
- "document.getElementById('" + nodeId + "').scrollIntoView()"); |
- } |
- |
- /** |
- * Returns the contents of the node by its id. |
- */ |
- public static String getNodeContents(final ContentView view, |
- TestCallbackHelperContainer viewClient, String nodeId) |
- throws InterruptedException, TimeoutException { |
- return getNodeField("textContent", view, viewClient, nodeId); |
- } |
- |
- /** |
- * Returns the value of the node by its id. |
- */ |
- public static String getNodeValue(final ContentView view, |
- TestCallbackHelperContainer viewClient, String nodeId) |
- throws InterruptedException, TimeoutException { |
- return getNodeField("value", view, viewClient, nodeId); |
- } |
- |
- private static String getNodeField(String fieldName, final ContentView view, |
- TestCallbackHelperContainer viewClient, String nodeId) |
- throws InterruptedException, TimeoutException { |
- StringBuilder sb = new StringBuilder(); |
- sb.append("(function() {"); |
- sb.append(" var node = document.getElementById('" + nodeId + "');"); |
- sb.append(" if (!node) return null;"); |
- sb.append(" if (!node." + fieldName + ") return null;"); |
- sb.append(" return [ node." + fieldName + " ];"); |
- sb.append("})();"); |
- |
- String jsonText = JavaScriptUtils.executeJavaScriptAndWaitForResult( |
- view, viewClient, sb.toString()); |
- Assert.assertFalse("Failed to retrieve contents for " + nodeId, |
- jsonText.trim().equalsIgnoreCase("null")); |
- |
- JsonReader jsonReader = new JsonReader(new StringReader(jsonText)); |
- String value = null; |
- try { |
- jsonReader.beginArray(); |
- if (jsonReader.hasNext()) value = jsonReader.nextString(); |
- jsonReader.endArray(); |
- Assert.assertNotNull("Invalid contents returned.", value); |
- |
- jsonReader.close(); |
- } catch (IOException exception) { |
- Assert.fail("Failed to evaluate JavaScript: " + jsonText + "\n" + exception); |
- } |
- return value; |
- } |
- |
- /** |
- * Wait until a given node has non-zero bounds. |
- * @return Whether the node started having non-zero bounds. |
- */ |
- public static boolean waitForNonZeroNodeBounds(final ContentView view, |
- final TestCallbackHelperContainer viewClient, final String nodeName) |
- throws InterruptedException { |
- return CriteriaHelper.pollForCriteria(new Criteria() { |
- @Override |
- public boolean isSatisfied() { |
- try { |
- return !DOMUtils.getNodeBounds(view, viewClient, nodeName).isEmpty(); |
- } catch (InterruptedException e) { |
- // Intentionally do nothing |
- return false; |
- } catch (TimeoutException e) { |
- // Intentionally do nothing |
- return false; |
- } |
- } |
- }); |
- } |
- |
- /** |
- * Returns click targets for a given DOM node. |
- */ |
- private static int[] getClickTargetForNode(final ContentView view, |
- TestCallbackHelperContainer viewClient, String nodeName) |
- throws InterruptedException, TimeoutException { |
- Rect bounds = getNodeBounds(view, viewClient, nodeName); |
- Assert.assertNotNull("Failed to get DOM element bounds of '" + nodeName + "'.", bounds); |
- |
- int clickX = (int) view.getRenderCoordinates().fromLocalCssToPix(bounds.exactCenterX()) |
- + view.getContentViewCore().getViewportSizeOffsetWidthPix(); |
- int clickY = (int) view.getRenderCoordinates().fromLocalCssToPix(bounds.exactCenterY()) |
- + view.getContentViewCore().getViewportSizeOffsetHeightPix(); |
- return new int[] { clickX, clickY }; |
- } |
-} |