Loading core/tests/coretests/src/android/app/assist/AssistStructureTest.java +43 −0 Original line number Original line Diff line number Diff line Loading @@ -26,6 +26,7 @@ import android.app.assist.AssistStructure.ViewNode; import android.app.assist.AssistStructure.ViewNodeBuilder; import android.app.assist.AssistStructure.ViewNodeBuilder; import android.app.assist.AssistStructure.ViewNodeParcelable; import android.app.assist.AssistStructure.ViewNodeParcelable; import android.content.Context; import android.content.Context; import android.os.LocaleList; import android.os.Parcel; import android.os.Parcel; import android.os.SystemClock; import android.os.SystemClock; import android.text.InputFilter; import android.text.InputFilter; Loading Loading @@ -244,6 +245,34 @@ public class AssistStructureTest { assertBigView(clone.getViewNode()); assertBigView(clone.getViewNode()); } } @Test public void testViewNodeParcelableControlFlags() { View view = newBigView(); mActivity.addView(view); waitUntilViewsAreLaidOff(); assertThat(view.getViewRootImpl()).isNotNull(); ViewNodeBuilder viewStructure = new ViewNodeBuilder(); viewStructure.setAutofillId(view.getAutofillId()); view.onProvideAutofillStructure(viewStructure, /* flags= */ 0); // Set highest and lowest control flags viewStructure.setReceiveContentMimeTypes(new String[] {}); viewStructure.setLocaleList(new LocaleList()); ViewNodeParcelable viewNodeParcelable = new ViewNodeParcelable(viewStructure.getViewNode()); // Check properties on "original" view node. assertBigView(viewNodeParcelable.getViewNode()); assertControlFlags(viewNodeParcelable.getViewNode()); // Check properties on "cloned" view node. ViewNodeParcelable clone = cloneThroughParcel(viewNodeParcelable); assertBigView(clone.getViewNode()); assertControlFlags(clone.getViewNode()); } private EditText newSmallView() { private EditText newSmallView() { EditText view = new EditText(mContext); EditText view = new EditText(mContext); view.setText("I AM GROOT"); view.setText("I AM GROOT"); Loading Loading @@ -297,6 +326,20 @@ public class AssistStructureTest { assertThat(hint.charAt(BIG_VIEW_SIZE - 1)).isEqualTo(BIG_VIEW_CHAR); assertThat(hint.charAt(BIG_VIEW_SIZE - 1)).isEqualTo(BIG_VIEW_CHAR); } } /** * Assert the lowest and highest bit control flags. * * The lowest and highest flags are {@link ViewNode#FLAGS_HAS_LOCALE_LIST} and * {@link ViewNode#FLAGS_HAS_MIME_TYPES} respectively, so we check these two during parceling to * make sure the entire range of control flags are copied. * * TODO: Need to change this test if the flag bits are added/changed in the future. */ private void assertControlFlags(ViewNode view) { assertThat(view.getReceiveContentMimeTypes()).isNotNull(); assertThat(view.getLocaleList()).isNotNull(); } private ViewNodeParcelable cloneThroughParcel(ViewNodeParcelable viewNodeParcelable) { private ViewNodeParcelable cloneThroughParcel(ViewNodeParcelable viewNodeParcelable) { Parcel parcel = Parcel.obtain(); Parcel parcel = Parcel.obtain(); Loading Loading
core/tests/coretests/src/android/app/assist/AssistStructureTest.java +43 −0 Original line number Original line Diff line number Diff line Loading @@ -26,6 +26,7 @@ import android.app.assist.AssistStructure.ViewNode; import android.app.assist.AssistStructure.ViewNodeBuilder; import android.app.assist.AssistStructure.ViewNodeBuilder; import android.app.assist.AssistStructure.ViewNodeParcelable; import android.app.assist.AssistStructure.ViewNodeParcelable; import android.content.Context; import android.content.Context; import android.os.LocaleList; import android.os.Parcel; import android.os.Parcel; import android.os.SystemClock; import android.os.SystemClock; import android.text.InputFilter; import android.text.InputFilter; Loading Loading @@ -244,6 +245,34 @@ public class AssistStructureTest { assertBigView(clone.getViewNode()); assertBigView(clone.getViewNode()); } } @Test public void testViewNodeParcelableControlFlags() { View view = newBigView(); mActivity.addView(view); waitUntilViewsAreLaidOff(); assertThat(view.getViewRootImpl()).isNotNull(); ViewNodeBuilder viewStructure = new ViewNodeBuilder(); viewStructure.setAutofillId(view.getAutofillId()); view.onProvideAutofillStructure(viewStructure, /* flags= */ 0); // Set highest and lowest control flags viewStructure.setReceiveContentMimeTypes(new String[] {}); viewStructure.setLocaleList(new LocaleList()); ViewNodeParcelable viewNodeParcelable = new ViewNodeParcelable(viewStructure.getViewNode()); // Check properties on "original" view node. assertBigView(viewNodeParcelable.getViewNode()); assertControlFlags(viewNodeParcelable.getViewNode()); // Check properties on "cloned" view node. ViewNodeParcelable clone = cloneThroughParcel(viewNodeParcelable); assertBigView(clone.getViewNode()); assertControlFlags(clone.getViewNode()); } private EditText newSmallView() { private EditText newSmallView() { EditText view = new EditText(mContext); EditText view = new EditText(mContext); view.setText("I AM GROOT"); view.setText("I AM GROOT"); Loading Loading @@ -297,6 +326,20 @@ public class AssistStructureTest { assertThat(hint.charAt(BIG_VIEW_SIZE - 1)).isEqualTo(BIG_VIEW_CHAR); assertThat(hint.charAt(BIG_VIEW_SIZE - 1)).isEqualTo(BIG_VIEW_CHAR); } } /** * Assert the lowest and highest bit control flags. * * The lowest and highest flags are {@link ViewNode#FLAGS_HAS_LOCALE_LIST} and * {@link ViewNode#FLAGS_HAS_MIME_TYPES} respectively, so we check these two during parceling to * make sure the entire range of control flags are copied. * * TODO: Need to change this test if the flag bits are added/changed in the future. */ private void assertControlFlags(ViewNode view) { assertThat(view.getReceiveContentMimeTypes()).isNotNull(); assertThat(view.getLocaleList()).isNotNull(); } private ViewNodeParcelable cloneThroughParcel(ViewNodeParcelable viewNodeParcelable) { private ViewNodeParcelable cloneThroughParcel(ViewNodeParcelable viewNodeParcelable) { Parcel parcel = Parcel.obtain(); Parcel parcel = Parcel.obtain(); Loading