Revert "Fix accessibility CTS tests."
This reverts commit aca80ccfe5c0e2aaa0374282072261397835d841.
Change-Id: I6fe19bb3e2644313c2048ea6c3e11980525509df
diff --git a/tests/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityWindowQueryTest.java b/tests/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityWindowQueryTest.java
index 43acbcd..33aa0d2 100644
--- a/tests/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityWindowQueryTest.java
+++ b/tests/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityWindowQueryTest.java
@@ -27,9 +27,7 @@
import android.accessibilityservice.AccessibilityServiceInfo;
import android.app.UiAutomation;
import android.graphics.Rect;
-import android.os.SystemClock;
import android.test.suitebuilder.annotation.MediumTest;
-import android.util.Log;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityNodeInfo;
import android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction;
@@ -41,7 +39,6 @@
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;
-import java.util.concurrent.TimeoutException;
/**
* Test cases for testing the accessibility APIs for querying of the screen content.
@@ -121,31 +118,50 @@
public void testTraverseAllWindows() throws Exception {
setAccessInteractiveWindowsFlag();
try {
- UiAutomation uiAutomation = getInstrumentation().getUiAutomation();
+ final UiAutomation uiAutomation = getInstrumentation().getUiAutomation();
+
+ getInstrumentation().getUiAutomation().waitForIdle(
+ TIMEOUT_WINDOW_STATE_IDLE,
+ TIMEOUT_ASYNC_PROCESSING);
List<AccessibilityWindowInfo> windows = uiAutomation.getWindows();
+
Rect boundsInScreen = new Rect();
- final int windowCount = windows.size();
- for (int i = 0; i < windowCount; i++) {
- AccessibilityWindowInfo window = windows.get(i);
+ // Verify the navigation bar window.
+ AccessibilityWindowInfo navBarWindow = windows.get(0);
+ navBarWindow.getBoundsInScreen(boundsInScreen);
+ assertFalse(boundsInScreen.isEmpty()); // Varies on screen size, just emptiness check.
+ assertSame(navBarWindow.getType(), AccessibilityWindowInfo.TYPE_SYSTEM);
+ assertFalse(navBarWindow.isFocused());
+ assertFalse(navBarWindow.isActive());
+ assertNull(navBarWindow.getParent());
+ assertSame(0, navBarWindow.getChildCount());
+ assertNotNull(navBarWindow.getRoot());
- window.getBoundsInScreen(boundsInScreen);
- assertFalse(boundsInScreen.isEmpty()); // Varies on screen size, emptiness check.
- assertNull(window.getParent());
- assertSame(0, window.getChildCount());
- assertNull(window.getParent());
- assertNotNull(window.getRoot());
+ // Verify the status bar window.
+ AccessibilityWindowInfo statusBarWindow = windows.get(1);
+ statusBarWindow.getBoundsInScreen(boundsInScreen);
+ assertFalse(boundsInScreen.isEmpty()); // Varies on screen size, just emptiness check.
+ assertSame(statusBarWindow.getType(), AccessibilityWindowInfo.TYPE_SYSTEM);
+ assertFalse(statusBarWindow.isFocused());
+ assertFalse(statusBarWindow.isActive());
+ assertNull(statusBarWindow.getParent());
+ assertSame(0, statusBarWindow.getChildCount());
+ assertNotNull(statusBarWindow.getRoot());
- if (window.getType() == AccessibilityWindowInfo.TYPE_APPLICATION) {
- assertTrue(window.isFocused());
- assertTrue(window.isActive());
- verifyNodesInAppWindow(window.getRoot());
- } else if (window.getType() == AccessibilityWindowInfo.TYPE_SYSTEM) {
- assertFalse(window.isFocused());
- assertFalse(window.isActive());
- }
- }
+ // Verify the application window.
+ AccessibilityWindowInfo appWindow = windows.get(2);
+ appWindow.getBoundsInScreen(boundsInScreen);
+ assertFalse(boundsInScreen.isEmpty()); // Varies on screen size, just emptiness check.
+ assertSame(appWindow.getType(), AccessibilityWindowInfo.TYPE_APPLICATION);
+ assertTrue(appWindow.isFocused());
+ assertTrue(appWindow.isActive());
+ assertNull(appWindow.getParent());
+ assertSame(0, appWindow.getChildCount());
+ assertNotNull(appWindow.getRoot());
+
+ verifyNodesInAppWindow(appWindow.getRoot());
} finally {
clearAccessInteractiveWindowsFlag();
}
@@ -271,23 +287,11 @@
public void testInteractWithNavBarWindow() throws Exception {
setAccessInteractiveWindowsFlag();
try {
- final UiAutomation uiAutomation = getInstrumentation().getUiAutomation();
- uiAutomation.executeAndWaitForEvent(new Runnable() {
- @Override
- public void run() {
- AccessibilityWindowInfo window = uiAutomation.getWindows().get(0);
- assertTrue(window.getRoot().performAction(
- AccessibilityNodeInfo.ACTION_ACCESSIBILITY_FOCUS));
- }
- }, new UiAutomation.AccessibilityEventFilter() {
- @Override
- public boolean accept(AccessibilityEvent event) {
- return event.getEventType() ==
- AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED;
- }
- }, TIMEOUT_ASYNC_PROCESSING);
+ UiAutomation uiAutomation = getInstrumentation().getUiAutomation();
+ AccessibilityWindowInfo window = uiAutomation.getWindows().get(0);
+ assertTrue(window.getRoot().performAction(
+ AccessibilityNodeInfo.ACTION_ACCESSIBILITY_FOCUS));
} finally {
- ensureAccessibilityFocusCleared();
clearAccessInteractiveWindowsFlag();
}
}
@@ -296,24 +300,11 @@
public void testInteractWithStatusBarWindow() throws Exception {
setAccessInteractiveWindowsFlag();
try {
- final UiAutomation uiAutomation = getInstrumentation().getUiAutomation();
- uiAutomation.executeAndWaitForEvent(new Runnable() {
- @Override
- public void run() {
- AccessibilityWindowInfo window = uiAutomation.getWindows().get(1);
- assertTrue(window.getRoot().performAction(
- AccessibilityNodeInfo.ACTION_ACCESSIBILITY_FOCUS));
-
- }
- }, new UiAutomation.AccessibilityEventFilter() {
- @Override
- public boolean accept(AccessibilityEvent event) {
- return event.getEventType() ==
- AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED;
- }
- }, TIMEOUT_ASYNC_PROCESSING);
+ UiAutomation uiAutomation = getInstrumentation().getUiAutomation();
+ AccessibilityWindowInfo window = uiAutomation.getWindows().get(1);
+ assertTrue(window.getRoot().performAction(
+ AccessibilityNodeInfo.ACTION_ACCESSIBILITY_FOCUS));
} finally {
- ensureAccessibilityFocusCleared();
clearAccessInteractiveWindowsFlag();
}
}
@@ -322,37 +313,23 @@
public void testSingleAccessibilityFocusAcrossWindows() throws Exception {
setAccessInteractiveWindowsFlag();
try {
- final UiAutomation uiAutomation = getInstrumentation().getUiAutomation();
+ UiAutomation uiAutomation = getInstrumentation().getUiAutomation();
uiAutomation.waitForIdle(TIMEOUT_WINDOW_STATE_IDLE, TIMEOUT_ASYNC_PROCESSING);
- getInstrumentation().getUiAutomation().executeAndWaitForEvent(new Runnable() {
- @Override
- public void run() {
- // Set focus in the first window.
- List<AccessibilityWindowInfo> windows = uiAutomation.getWindows();
- AccessibilityNodeInfo firstWindowRoot = windows.get(0).getRoot();
- assertTrue(firstWindowRoot.performAction(
- AccessibilityNodeInfo.ACTION_ACCESSIBILITY_FOCUS));
- }
- }, new UiAutomation.AccessibilityEventFilter() {
- @Override
- public boolean accept(AccessibilityEvent event) {
- return event.getEventType() == AccessibilityEvent.TYPE_WINDOWS_CHANGED;
- }
- }, TIMEOUT_ASYNC_PROCESSING);
-
- // Wait for things to settle.
- waitForIdle();
-
List<AccessibilityWindowInfo> windows = uiAutomation.getWindows();
AccessibilityNodeInfo firstWindowRoot = windows.get(0).getRoot();
AccessibilityNodeInfo secondWindowRoot = windows.get(1).getRoot();
AccessibilityNodeInfo thirdWindowRoot = windows.get(2).getRoot();
- // Ensure accessibility focus is where we put it.
- assertTrue(windows.get(0).isAccessibilityFocused());
+
+ // Set focus in the first window.
+ assertTrue(firstWindowRoot.performAction(
+ AccessibilityNodeInfo.ACTION_ACCESSIBILITY_FOCUS));
+
+ // Wait for things to settle.
+ uiAutomation.waitForIdle(TIMEOUT_WINDOW_STATE_IDLE, TIMEOUT_ASYNC_PROCESSING);
// Make sure there only one accessibility focus.
assertEquals(uiAutomation.findFocus(
@@ -415,7 +392,6 @@
assertNull(thirdWindowRoot.findFocus(
AccessibilityNodeInfo.FOCUS_ACCESSIBILITY));
} finally {
- ensureAccessibilityFocusCleared();
clearAccessInteractiveWindowsFlag();
}
}
@@ -668,10 +644,6 @@
// Sleep a bit so the UI is settles.
waitForIdle();
- // This is a necessary since the back action does not
- // dismiss recents until they stop animating. Sigh...
- SystemClock.sleep(5000);
-
// Clean up.
getInstrumentation().getUiAutomation().performGlobalAction(
AccessibilityService.GLOBAL_ACTION_BACK);
@@ -775,34 +747,6 @@
uiAutomation.setServiceInfo(info);
}
- private void ensureAccessibilityFocusCleared() {
- try {
- final UiAutomation uiAutomation = getInstrumentation().getUiAutomation();
- uiAutomation.executeAndWaitForEvent(new Runnable() {
- @Override
- public void run() {
- List<AccessibilityWindowInfo> windows = uiAutomation.getWindows();
- final int windowCount = windows.size();
- for (int i = 0; i < windowCount; i++) {
- AccessibilityWindowInfo window = windows.get(i);
- if (window.isAccessibilityFocused()) {
- window.getRoot().performAction(
- AccessibilityNodeInfo.ACTION_CLEAR_ACCESSIBILITY_FOCUS);
- }
- }
- }
- }, new UiAutomation.AccessibilityEventFilter() {
- @Override
- public boolean accept(AccessibilityEvent event) {
- return event.getEventType() ==
- AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED;
- }
- }, TIMEOUT_ASYNC_PROCESSING);
- } catch (TimeoutException te) {
- /* ignore */
- }
- }
-
private void verifyNodesInAppWindow(AccessibilityNodeInfo root) throws Exception {
try {
AccessibilityServiceInfo info = getInstrumentation().getUiAutomation().getServiceInfo();