Loading core/tests/coretests/src/android/view/accessibility/AccessibilityEventTest.java +50 −0 Original line number Diff line number Diff line Loading @@ -26,11 +26,29 @@ import android.support.test.runner.AndroidJUnit4; import org.junit.Test; import org.junit.runner.RunWith; import java.lang.reflect.Field; import java.lang.reflect.Modifier; /** * AccessibilityEvent is public, so CTS covers it pretty well. Verifying hidden methods here. */ @RunWith(AndroidJUnit4.class) public class AccessibilityEventTest { // The number of fields tested in the corresponding CTS AccessibilityEventTest: // See the CTS tests for AccessibilityRecord: // fullyPopulateAccessibilityEvent, assertEqualsAccessiblityEvent, // and assertAccessibilityEventCleared /** The number of properties of the {@link AccessibilityEvent} class. */ private static final int A11Y_EVENT_NON_STATIC_FIELD_COUNT = 32; // The number of fields tested in the corresponding CTS AccessibilityRecordTest: // assertAccessibilityRecordCleared, fullyPopulateAccessibilityRecord, // and assertEqualAccessibilityRecord /** The number of properties of the {@link AccessibilityRecord} class. */ private static final int A11Y_RECORD_NON_STATIC_FIELD_COUNT = 24; @Test public void testImportantForAccessibiity_getSetWorkAcrossParceling() { AccessibilityEvent event = AccessibilityEvent.obtain(); Loading Loading @@ -59,10 +77,42 @@ public class AccessibilityEventTest { assertEquals(windowChanges, copyEventViaParcel(event).getWindowChanges()); } @Test public void dontForgetToUpdateA11yRecordCtsParcelingTestWhenYouAddNewFields() { AccessibilityEventTest.assertNoNewNonStaticFieldsAdded( AccessibilityRecord.class, A11Y_RECORD_NON_STATIC_FIELD_COUNT); } @Test public void dontForgetToUpdateA11yEventCtsParcelingTestWhenYouAddNewFields() { AccessibilityEventTest.assertNoNewNonStaticFieldsAdded( AccessibilityEvent.class, A11Y_EVENT_NON_STATIC_FIELD_COUNT); } private AccessibilityEvent copyEventViaParcel(AccessibilityEvent event) { Parcel parcel = Parcel.obtain(); event.writeToParcel(parcel, 0); parcel.setDataPosition(0); return AccessibilityEvent.CREATOR.createFromParcel(parcel); } /** * Asserts that no new fields have been added, so we are testing marshaling * of all such. */ static void assertNoNewNonStaticFieldsAdded(Class<?> clazz, int expectedCount) { int nonStaticFieldCount = 0; while (clazz != Object.class) { for (Field field : clazz.getDeclaredFields()) { if ((field.getModifiers() & Modifier.STATIC) == 0) { nonStaticFieldCount++; } } clazz = clazz.getSuperclass(); } String message = "New fields have been added, so add code to test marshaling them."; assertEquals(message, expectedCount, nonStaticFieldCount); } } core/tests/coretests/src/android/view/accessibility/AccessibilityNodeInfoTest.java +16 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,16 @@ import java.util.ArrayList; @LargeTest @RunWith(AndroidJUnit4.class) public class AccessibilityNodeInfoTest { // The number of fields tested in the corresponding CTS AccessibilityNodeInfoTest: // See fullyPopulateAccessibilityNodeInfo, assertEqualsAccessibilityNodeInfo, // and assertAccessibilityNodeInfoCleared in that class. private static final int NUM_MARSHALLED_PROPERTIES = 35; /** * The number of properties that are purposely not marshalled * mOriginalText - Used when resolving clickable spans; intentionally not parceled */ private static final int NUM_NONMARSHALLED_PROPERTIES = 1; @Test public void testStandardActions_serializationFlagIsValid() { Loading Loading @@ -114,4 +124,10 @@ public class AccessibilityNodeInfoTest { assertThat(unparceledNode.getActionList(), emptyCollectionOf(AccessibilityAction.class)); assertThat(unparceledNode.getText(), equalTo(text)); } @Test public void dontForgetToUpdateCtsParcelingTestWhenYouAddNewFields() { AccessibilityEventTest.assertNoNewNonStaticFieldsAdded(AccessibilityNodeInfo.class, NUM_MARSHALLED_PROPERTIES + NUM_NONMARSHALLED_PROPERTIES); } } Loading
core/tests/coretests/src/android/view/accessibility/AccessibilityEventTest.java +50 −0 Original line number Diff line number Diff line Loading @@ -26,11 +26,29 @@ import android.support.test.runner.AndroidJUnit4; import org.junit.Test; import org.junit.runner.RunWith; import java.lang.reflect.Field; import java.lang.reflect.Modifier; /** * AccessibilityEvent is public, so CTS covers it pretty well. Verifying hidden methods here. */ @RunWith(AndroidJUnit4.class) public class AccessibilityEventTest { // The number of fields tested in the corresponding CTS AccessibilityEventTest: // See the CTS tests for AccessibilityRecord: // fullyPopulateAccessibilityEvent, assertEqualsAccessiblityEvent, // and assertAccessibilityEventCleared /** The number of properties of the {@link AccessibilityEvent} class. */ private static final int A11Y_EVENT_NON_STATIC_FIELD_COUNT = 32; // The number of fields tested in the corresponding CTS AccessibilityRecordTest: // assertAccessibilityRecordCleared, fullyPopulateAccessibilityRecord, // and assertEqualAccessibilityRecord /** The number of properties of the {@link AccessibilityRecord} class. */ private static final int A11Y_RECORD_NON_STATIC_FIELD_COUNT = 24; @Test public void testImportantForAccessibiity_getSetWorkAcrossParceling() { AccessibilityEvent event = AccessibilityEvent.obtain(); Loading Loading @@ -59,10 +77,42 @@ public class AccessibilityEventTest { assertEquals(windowChanges, copyEventViaParcel(event).getWindowChanges()); } @Test public void dontForgetToUpdateA11yRecordCtsParcelingTestWhenYouAddNewFields() { AccessibilityEventTest.assertNoNewNonStaticFieldsAdded( AccessibilityRecord.class, A11Y_RECORD_NON_STATIC_FIELD_COUNT); } @Test public void dontForgetToUpdateA11yEventCtsParcelingTestWhenYouAddNewFields() { AccessibilityEventTest.assertNoNewNonStaticFieldsAdded( AccessibilityEvent.class, A11Y_EVENT_NON_STATIC_FIELD_COUNT); } private AccessibilityEvent copyEventViaParcel(AccessibilityEvent event) { Parcel parcel = Parcel.obtain(); event.writeToParcel(parcel, 0); parcel.setDataPosition(0); return AccessibilityEvent.CREATOR.createFromParcel(parcel); } /** * Asserts that no new fields have been added, so we are testing marshaling * of all such. */ static void assertNoNewNonStaticFieldsAdded(Class<?> clazz, int expectedCount) { int nonStaticFieldCount = 0; while (clazz != Object.class) { for (Field field : clazz.getDeclaredFields()) { if ((field.getModifiers() & Modifier.STATIC) == 0) { nonStaticFieldCount++; } } clazz = clazz.getSuperclass(); } String message = "New fields have been added, so add code to test marshaling them."; assertEquals(message, expectedCount, nonStaticFieldCount); } }
core/tests/coretests/src/android/view/accessibility/AccessibilityNodeInfoTest.java +16 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,16 @@ import java.util.ArrayList; @LargeTest @RunWith(AndroidJUnit4.class) public class AccessibilityNodeInfoTest { // The number of fields tested in the corresponding CTS AccessibilityNodeInfoTest: // See fullyPopulateAccessibilityNodeInfo, assertEqualsAccessibilityNodeInfo, // and assertAccessibilityNodeInfoCleared in that class. private static final int NUM_MARSHALLED_PROPERTIES = 35; /** * The number of properties that are purposely not marshalled * mOriginalText - Used when resolving clickable spans; intentionally not parceled */ private static final int NUM_NONMARSHALLED_PROPERTIES = 1; @Test public void testStandardActions_serializationFlagIsValid() { Loading Loading @@ -114,4 +124,10 @@ public class AccessibilityNodeInfoTest { assertThat(unparceledNode.getActionList(), emptyCollectionOf(AccessibilityAction.class)); assertThat(unparceledNode.getText(), equalTo(text)); } @Test public void dontForgetToUpdateCtsParcelingTestWhenYouAddNewFields() { AccessibilityEventTest.assertNoNewNonStaticFieldsAdded(AccessibilityNodeInfo.class, NUM_MARSHALLED_PROPERTIES + NUM_NONMARSHALLED_PROPERTIES); } }