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 |
index 380de110a06821cf173b3528e9e3576418eff8b8..30ea1e62ee2a0fe52c28587b2f9aa27bae3b32dd 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 |
@@ -23,6 +23,8 @@ import java.util.concurrent.TimeoutException; |
public class DOMUtils { |
/** |
* Plays the media with given {@code id}. |
+ * @param webContents The WebContents in which the media element lives. |
+ * @param id The element's id to be played. |
*/ |
public static void playMedia(final WebContents webContents, final String id) |
throws InterruptedException, TimeoutException { |
@@ -36,7 +38,9 @@ public class DOMUtils { |
} |
/** |
- * Pauses the media with given {@code id}. |
+ * Pauses the media with given {@code id} |
+ * @param webContents The WebContents in which the media element lives. |
+ * @param id The element's id to be paused. |
*/ |
public static void pauseMedia(final WebContents webContents, final String id) |
throws InterruptedException, TimeoutException { |
@@ -51,6 +55,9 @@ public class DOMUtils { |
/** |
* Returns whether the media with given {@code id} is paused. |
+ * @param webContents The WebContents in which the media element lives. |
+ * @param id The element's id to check. |
+ * @return whether the media is paused. |
*/ |
public static boolean isMediaPaused(final WebContents webContents, final String id) |
throws InterruptedException, TimeoutException { |
@@ -59,7 +66,8 @@ public class DOMUtils { |
/** |
* Waits until the playback of the media with given {@code id} has started. |
- * |
+ * @param webContents The WebContents in which the media element lives. |
+ * @param id The element's id to check. |
* @return Whether the playback has started. |
*/ |
public static boolean waitForMediaPlay(final WebContents webContents, final String id) |
@@ -82,8 +90,9 @@ public class DOMUtils { |
/** |
* Waits until the playback of the media with given {@code id} has stopped. |
- * |
- * @return Whether the playback has started. |
+ * @param webContents The WebContents in which the media element lives. |
+ * @param id The element's id to check. |
+ * @return Whether the playback has paused. |
*/ |
public static boolean waitForMediaPause(final WebContents webContents, final String id) |
throws InterruptedException { |
@@ -104,7 +113,9 @@ public class DOMUtils { |
} |
/** |
- * Returns whether the document is in fullscreen. |
+ * Returns whether the document is fullscreen. |
+ * @param webContents The WebContents to check. |
+ * @return Whether the document is fullsscreen. |
*/ |
public static boolean isFullscreen(final WebContents webContents) |
throws InterruptedException, TimeoutException { |
@@ -120,6 +131,7 @@ public class DOMUtils { |
/** |
* Makes the document exit fullscreen. |
+ * @param webContents The WebContents to make fullscreen. |
*/ |
public static void exitFullscreen(final WebContents webContents) { |
StringBuilder sb = new StringBuilder(); |
@@ -132,6 +144,9 @@ public class DOMUtils { |
/** |
* Returns the rect boundaries for a node by its id. |
+ * @param webContents The WebContents in which the node lives. |
+ * @param nodeId The id of the node. |
+ * @return The rect boundaries for the node. |
*/ |
public static Rect getNodeBounds(final WebContents webContents, String nodeId) |
throws InterruptedException, TimeoutException { |
@@ -177,6 +192,8 @@ public class DOMUtils { |
/** |
* Focus a DOM node by its id. |
+ * @param webContents The WebContents in which the node lives. |
+ * @param nodeId The id of the node. |
*/ |
public static void focusNode(final WebContents webContents, String nodeId) |
throws InterruptedException, TimeoutException { |
@@ -191,6 +208,8 @@ public class DOMUtils { |
/** |
* Get the id of the currently focused node. |
+ * @param webContents The WebContents in which the node lives. |
+ * @return The id of the currently focused node. |
*/ |
public static String getFocusedNode(WebContents webContents) |
throws InterruptedException, TimeoutException { |
@@ -212,6 +231,9 @@ public class DOMUtils { |
/** |
* Click a DOM node by its id. |
+ * @param activityTestCase The ActivityInstrumentationTestCase2 to instrument. |
+ * @param viewCore The ContentViewCore in which the node lives. |
+ * @param nodeId The id of the node. |
*/ |
public static void clickNode(ActivityInstrumentationTestCase2 activityTestCase, |
final ContentViewCore viewCore, String nodeId) |
@@ -222,6 +244,9 @@ public class DOMUtils { |
/** |
* Long-press a DOM node by its id. |
+ * @param activityTestCase The ActivityInstrumentationTestCase2 to instrument. |
+ * @param viewCore The ContentViewCore in which the node lives. |
+ * @param nodeId The id of the node. |
*/ |
public static void longPressNode(ActivityInstrumentationTestCase2 activityTestCase, |
final ContentViewCore viewCore, String nodeId) |
@@ -232,6 +257,8 @@ public class DOMUtils { |
/** |
* Scrolls the view to ensure that the required DOM node is visible. |
+ * @param webContents The WebContents in which the node lives. |
+ * @param nodeId The id of the node. |
*/ |
public static void scrollNodeIntoView(WebContents webContents, String nodeId) |
throws InterruptedException, TimeoutException { |
@@ -240,7 +267,10 @@ public class DOMUtils { |
} |
/** |
- * Returns the contents of the node by its id. |
+ * Returns the text contents of a given node. |
+ * @param webContents The WebContents in which the node lives. |
+ * @param nodeId The id of the node. |
+ * @return the text contents of the node. |
*/ |
public static String getNodeContents(WebContents webContents, String nodeId) |
throws InterruptedException, TimeoutException { |
@@ -248,7 +278,10 @@ public class DOMUtils { |
} |
/** |
- * Returns the value of the node by its id. |
+ * Returns the value of a given node. |
+ * @param webContents The WebContents in which the node lives. |
+ * @param nodeId The id of the node. |
+ * @return the value of the node. |
*/ |
public static String getNodeValue(final WebContents webContents, String nodeId) |
throws InterruptedException, TimeoutException { |
@@ -256,7 +289,11 @@ public class DOMUtils { |
} |
/** |
- * Returns the string value of a field of the node by its id. |
+ * Returns the string value of a field of a given node. |
+ * @param fieldName The field to return the value from. |
+ * @param webContents The WebContents in which the node lives. |
+ * @param nodeId The id of the node. |
+ * @return the value of the field. |
*/ |
public static String getNodeField(String fieldName, final WebContents webContents, |
String nodeId) |
@@ -264,6 +301,39 @@ public class DOMUtils { |
return getNodeField(fieldName, webContents, nodeId, String.class); |
} |
+ /** |
+ * Wait until a given node has non-zero bounds. |
+ * @param webContents The WebContents in which the node lives. |
+ * @param nodeId The id of the node. |
+ * @return Whether the node started having non-zero bounds. |
+ */ |
+ public static boolean waitForNonZeroNodeBounds(final WebContents webContents, |
+ final String nodeId) |
+ throws InterruptedException { |
+ return CriteriaHelper.pollForCriteria(new Criteria() { |
+ @Override |
+ public boolean isSatisfied() { |
+ try { |
+ return !DOMUtils.getNodeBounds(webContents, nodeId).isEmpty(); |
+ } catch (InterruptedException e) { |
+ // Intentionally do nothing |
+ return false; |
+ } catch (TimeoutException e) { |
+ // Intentionally do nothing |
+ return false; |
+ } |
+ } |
+ }); |
+ } |
+ |
+ /** |
+ * Returns the value of a given field of type {@code valueType} as a {@code T}. |
+ * @param fieldName The field to return the value from. |
+ * @param webContents The WebContents in which the node lives. |
+ * @param nodeId The id of the node. |
+ * @param valueType The type of the value to read. |
+ * @return the field's value. |
+ */ |
private static <T> T getNodeField(String fieldName, final WebContents webContents, |
String nodeId, Class<T> valueType) |
throws InterruptedException, TimeoutException { |
@@ -281,6 +351,12 @@ public class DOMUtils { |
return readValue(jsonText, valueType); |
} |
+ /** |
+ * Returns the next value of type {@code valueType} as a {@code T}. |
+ * @param jsonText The unparsed json text. |
+ * @param valueType The type of the value to read. |
+ * @return the read value. |
+ */ |
private static <T> T readValue(String jsonText, Class<T> valueType) { |
JsonReader jsonReader = new JsonReader(new StringReader(jsonText)); |
T value = null; |
@@ -297,6 +373,13 @@ public class DOMUtils { |
return value; |
} |
+ /** |
+ * Returns the next value of type {@code valueType} as a {@code T}. |
+ * @param jsonReader JsonReader instance to be used. |
+ * @param valueType The type of the value to read. |
+ * @throws IllegalArgumentException If the {@code valueType} isn't known. |
+ * @return the read value. |
+ */ |
@SuppressWarnings("unchecked") |
private static <T> T readValue(JsonReader jsonReader, Class<T> valueType) |
throws IOException { |
@@ -310,35 +393,15 @@ public class DOMUtils { |
} |
/** |
- * Wait until a given node has non-zero bounds. |
- * @return Whether the node started having non-zero bounds. |
- */ |
- public static boolean waitForNonZeroNodeBounds(final WebContents webContents, |
- final String nodeName) |
- throws InterruptedException { |
- return CriteriaHelper.pollForCriteria(new Criteria() { |
- @Override |
- public boolean isSatisfied() { |
- try { |
- return !DOMUtils.getNodeBounds(webContents, 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. |
+ * Returns click target for a given DOM node. |
+ * @param viewCore The ContentViewCore in which the node lives. |
+ * @param nodeId The id of the node. |
+ * @return the click target of the node in the form of a [ x, y ] array. |
*/ |
- private static int[] getClickTargetForNode(ContentViewCore viewCore, String nodeName) |
+ private static int[] getClickTargetForNode(ContentViewCore viewCore, String nodeId) |
throws InterruptedException, TimeoutException { |
- Rect bounds = getNodeBounds(viewCore.getWebContents(), nodeName); |
- Assert.assertNotNull("Failed to get DOM element bounds of '" + nodeName + "'.", bounds); |
+ Rect bounds = getNodeBounds(viewCore.getWebContents(), nodeId); |
+ Assert.assertNotNull("Failed to get DOM element bounds of '" + nodeId + "'.", bounds); |
int topControlsLayoutHeight = viewCore.doTopControlsShrinkBlinkSize() |
? viewCore.getTopControlsHeightPix() : 0; |