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); |
} |
} |