Merge "CTS tests for accessibility importance API"
diff --git a/tests/accessibility/src/android/view/accessibility/cts/AccessibilityNodeInfoTest.java b/tests/accessibility/src/android/view/accessibility/cts/AccessibilityNodeInfoTest.java
index 6b28541..9c9b0db 100644
--- a/tests/accessibility/src/android/view/accessibility/cts/AccessibilityNodeInfoTest.java
+++ b/tests/accessibility/src/android/view/accessibility/cts/AccessibilityNodeInfoTest.java
@@ -184,6 +184,7 @@
         info.setEnabled(true);
         info.setFocusable(true);
         info.setFocused(true);
+        info.setImportantForAccessibility(true);
         info.setLongClickable(true);
         info.setContextClickable(true);
         info.setPassword(true);
@@ -235,6 +236,9 @@
                 receivedInfo.isFocusable());
         assertSame("focused has incorrect value", expectedInfo.isFocused(),
                 receivedInfo.isFocused());
+        assertSame("importantForAccessibility has incorrect value",
+                expectedInfo.isImportantForAccessibility(),
+                receivedInfo.isImportantForAccessibility());
         assertSame("longClickable has incorrect value", expectedInfo.isLongClickable(),
                 receivedInfo.isLongClickable());
         assertSame("contextClickable has incorrect value", expectedInfo.isContextClickable(),
@@ -286,6 +290,8 @@
         assertFalse("enabled not properly recycled", info.isEnabled());
         assertFalse("focusable not properly recycled", info.isFocusable());
         assertFalse("focused not properly recycled", info.isFocused());
+        assertFalse("importantForAccessibility not properly recycled",
+                info.isImportantForAccessibility());
         assertFalse("longClickable not properly recycled", info.isLongClickable());
         assertFalse("contextClickable not properly recycled", info.isContextClickable());
         assertFalse("password not properly recycled", info.isPassword());
diff --git a/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityViewTreeReportingTest.java b/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityViewTreeReportingTest.java
index 2a35e93..a292e4e 100644
--- a/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityViewTreeReportingTest.java
+++ b/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityViewTreeReportingTest.java
@@ -240,6 +240,40 @@
         assertEquals(0, getUiAutomation(false).getRootInActiveWindow().getDrawingOrder());
     }
 
+    @MediumTest
+    public void testAccessibilityImportanceReportingForImportantView() throws Exception {
+        getInstrumentation().runOnMainSync(new Runnable() {
+            @Override
+            public void run() {
+                // Manually control importance for firstButton
+                AccessibilityViewTreeReportingActivity activity = getActivity();
+                View firstButton = activity.findViewById(R.id.firstButton);
+                firstButton.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES);
+            }
+        });
+
+        UiAutomation uiAutomation = getUiAutomation(true);
+        AccessibilityNodeInfo firstButtonNode = getNodeByText(uiAutomation, R.string.firstButton);
+        assertTrue(firstButtonNode.isImportantForAccessibility());
+    }
+
+    @MediumTest
+    public void testAccessibilityImportanceReportingForUnimportantView() throws Exception {
+        getInstrumentation().runOnMainSync(new Runnable() {
+            @Override
+            public void run() {
+                // Manually control importance for firstButton
+                AccessibilityViewTreeReportingActivity activity = getActivity();
+                View firstButton = activity.findViewById(R.id.firstButton);
+                firstButton.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
+            }
+        });
+
+        UiAutomation uiAutomation = getUiAutomation(true);
+        AccessibilityNodeInfo firstButtonNode = getNodeByText(uiAutomation, R.string.firstButton);
+        assertFalse(firstButtonNode.isImportantForAccessibility());
+    }
+
     private UiAutomation getUiAutomation(boolean getNonImportantViews) {
         UiAutomation uiAutomation = getInstrumentation().getUiAutomation();
         AccessibilityServiceInfo serviceInfo = uiAutomation.getServiceInfo();