Merge "Adding CTS test for setting accessibiltiy cursor in non-text views."
diff --git a/tests/tests/accessibility/src/android/view/accessibility/cts/AccessibilityNodeInfoTest.java b/tests/tests/accessibility/src/android/view/accessibility/cts/AccessibilityNodeInfoTest.java
index 2e7c2e4..70a25b2 100644
--- a/tests/tests/accessibility/src/android/view/accessibility/cts/AccessibilityNodeInfoTest.java
+++ b/tests/tests/accessibility/src/android/view/accessibility/cts/AccessibilityNodeInfoTest.java
@@ -30,7 +30,7 @@
public class AccessibilityNodeInfoTest extends AndroidTestCase {
/** The number of properties of the {@link AccessibilityNodeInfo} class. */
- private static final int NON_STATIC_FIELD_COUNT = 18;
+ private static final int NON_STATIC_FIELD_COUNT = 20;
@SmallTest
public void testMarshaling() throws Exception {
diff --git a/tests/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityTextTraversalTest.java b/tests/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityTextTraversalTest.java
index 3ceac1f..17c7ebd 100644
--- a/tests/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityTextTraversalTest.java
+++ b/tests/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityTextTraversalTest.java
@@ -3195,4 +3195,66 @@
assertFalse(getInteractionBridge().performAction(text,
AccessibilityNodeInfo.ACTION_SET_SELECTION, arguments));
}
+
+ public void testSelectionPositionForNonEditableView() throws Exception {
+ final View view = getActivity().findViewById(R.id.view);
+
+ getInstrumentation().runOnMainSync(new Runnable() {
+ @Override
+ public void run() {
+ view.setContentDescription(getString(R.string.foo_bar_baz));
+ }
+ });
+
+ final AccessibilityNodeInfo text = getInteractionBridge()
+ .findAccessibilityNodeInfoByTextFromRoot(getString(R.string.foo_bar_baz));
+
+ // Check the initial node properties.
+ assertFalse(text.isEditable());
+ assertSame(text.getTextSelectionStart(), -1);
+ assertSame(text.getTextSelectionEnd(), -1);
+
+ // Set the cursor position.
+ getInteractionBridge().executeCommandAndWaitForAccessibilityEvent(new Runnable() {
+ @Override
+ public void run() {
+ Bundle arguments = new Bundle();
+ arguments.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_START_INT, 4);
+ arguments.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_END_INT, 4);
+ assertTrue(getInteractionBridge().performAction(text,
+ AccessibilityNodeInfo.ACTION_SET_SELECTION, arguments));
+ }
+ }, new AccessibilityEventFilter() {
+ @Override
+ public boolean accept(AccessibilityEvent event) {
+ return (event.getEventType()
+ == AccessibilityEvent.TYPE_VIEW_TEXT_SELECTION_CHANGED);
+ }
+ }, TIMEOUT_ASYNC_PROCESSING);
+
+ // Refresh the node.
+ AccessibilityNodeInfo refreshedText = getInteractionBridge()
+ .findAccessibilityNodeInfoByTextFromRoot(getString(R.string.foo_bar_baz));
+
+ // Check the related node properties.
+ assertFalse(refreshedText.isEditable());
+ assertSame(refreshedText.getTextSelectionStart(), 4);
+ assertSame(refreshedText.getTextSelectionEnd(), 4);
+
+ // Try to set to an invalid cursor position.
+ Bundle arguments = new Bundle();
+ arguments.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_START_INT, 4);
+ arguments.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_END_INT, 5);
+ assertFalse(getInteractionBridge().performAction(text,
+ AccessibilityNodeInfo.ACTION_SET_SELECTION, arguments));
+
+ // Refresh the node.
+ refreshedText = getInteractionBridge()
+ .findAccessibilityNodeInfoByTextFromRoot(getString(R.string.foo_bar_baz));
+
+ // Check the related node properties.
+ assertFalse(refreshedText.isEditable());
+ assertSame(refreshedText.getTextSelectionStart(), 4);
+ assertSame(refreshedText.getTextSelectionEnd(), 4);
+ }
}
diff --git a/tests/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityWindowQueryTest.java b/tests/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityWindowQueryTest.java
index 2b6dab4..f83c35c 100644
--- a/tests/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityWindowQueryTest.java
+++ b/tests/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityWindowQueryTest.java
@@ -304,7 +304,7 @@
// char sequence attributes
assertEquals(button.getPackageName(), source.getPackageName());
assertEquals(button.getClassName(), source.getClassName());
- assertEquals(button.getText(), source.getText());
+ assertEquals(button.getText().toString(), source.getText().toString());
assertSame(button.getContentDescription(), source.getContentDescription());
// boolean attributes