Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1313)

Unified Diff: android_webview/javatests/src/org/chromium/android_webview/test/AwContentsTest.java

Issue 1137393003: Add style information to the snapshot node (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: android_webview/javatests/src/org/chromium/android_webview/test/AwContentsTest.java
diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/AwContentsTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/AwContentsTest.java
index a46797b82239cbd7b0f9ae7859feece35f0e60b8..f2f975e0d0935aafec3fc751469baebcfb6b69ff 100644
--- a/android_webview/javatests/src/org/chromium/android_webview/test/AwContentsTest.java
+++ b/android_webview/javatests/src/org/chromium/android_webview/test/AwContentsTest.java
@@ -544,6 +544,20 @@ public class AwContentsTest extends AwTestBase {
script));
}
+ static class AccessibilityCallbackHelper extends CallbackHelper {
+
+ private AccessibilitySnapshotNode mRoot;
+
+ public void notifyCalled(AccessibilitySnapshotNode root) {
+ mRoot = root;
+ super.notifyCalled();
+ }
+
+ public AccessibilitySnapshotNode getValue() {
+ return mRoot;
+ }
+ }
+
/**
* Verifies that AX tree is returned.
*/
@@ -555,19 +569,53 @@ public class AwContentsTest extends AwTestBase {
final CallbackHelper loadHelper = mContentsClient.getOnPageFinishedHelper();
loadDataSync(awContents, loadHelper, "<button>Click</button>", "text/html", false);
- final CallbackHelper callbackHelper = new CallbackHelper();
+ final AccessibilityCallbackHelper callbackHelper = new AccessibilityCallbackHelper();
+ final AccessibilitySnapshotCallback callback = new AccessibilitySnapshotCallback() {
+ @Override
+ public void onAccessibilitySnapshot(AccessibilitySnapshotNode root) {
+ callbackHelper.notifyCalled(root);
+ }
+ };
+
+ runTestOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ awContents.requestAccessibilitySnapshot(callback);
+ }
+ });
+ callbackHelper.waitForCallback(callbackHelper.getCallCount());
+
+ AccessibilitySnapshotNode root = callbackHelper.getValue();
+ assertEquals(1, root.children.size());
+ assertEquals("", root.text);
+ AccessibilitySnapshotNode child = root.children.get(0);
+ assertEquals(1, child.children.size());
+ assertEquals("", child.text);
+ AccessibilitySnapshotNode grandChild = child.children.get(0);
+ assertEquals(0, grandChild.children.size());
+ assertEquals("Click", grandChild.text);
+ }
+
+ /**
+ * Verifies the styles/color of the AX nodes
+ */
+ @Feature({"AndroidWebView"})
+ @SmallTest
+ public void testRequestAccessibilitySnapshotTextStyles() throws Throwable {
+ final AwTestContainerView testView = createAwTestContainerViewOnMainSync(mContentsClient);
+ final AwContents awContents = testView.getAwContents();
+ final CallbackHelper loadHelper = mContentsClient.getOnPageFinishedHelper();
+ loadDataSync(awContents, loadHelper,
+ "<p style=\"color:#123456;background:#000000\">color</p>"
+ + "<p><font size=\"6\">size</font></p>"
+ + "<p><b>bold</b><p><strike>strike</strike><p><u>underline</u><p><i>italic</i>",
+ "text/html", false);
+
+ final AccessibilityCallbackHelper callbackHelper = new AccessibilityCallbackHelper();
final AccessibilitySnapshotCallback callback = new AccessibilitySnapshotCallback() {
@Override
public void onAccessibilitySnapshot(AccessibilitySnapshotNode root) {
- assertEquals(1, root.children.size());
- assertEquals("", root.text);
- AccessibilitySnapshotNode child = root.children.get(0);
- assertEquals(1, child.children.size());
- assertEquals("", child.text);
- AccessibilitySnapshotNode grandChild = child.children.get(0);
- assertEquals(0, grandChild.children.size());
- assertEquals("Click", grandChild.text);
- callbackHelper.notifyCalled();
+ callbackHelper.notifyCalled(root);
}
};
@@ -578,5 +626,33 @@ public class AwContentsTest extends AwTestBase {
}
});
callbackHelper.waitForCallback(callbackHelper.getCallCount());
+
+ AccessibilitySnapshotNode root = callbackHelper.getValue();
+ assertEquals(6, root.children.size());
+ assertEquals("", root.text);
+
+ // verify node 0
+ AccessibilitySnapshotNode node = root.children.get(0);
+ assertEquals("color", node.text);
+
+ // verify node 1
+ node = root.children.get(1);
+ assertEquals("size", node.text);
+
+ // verify node 2
+ node = root.children.get(2);
+ assertEquals("bold", node.text);
+
+ //verify node 3
+ node = root.children.get(3);
+ assertEquals("strike", node.text);
+
+ // verify node 4
+ node = root.children.get(4);
+ assertEquals("underline", node.text);
+
+ //verify node 5
+ node = root.children.get(5);
+ assertEquals("italic", node.text);
}
}

Powered by Google App Engine
This is Rietveld 408576698