Test LocaleList can be marshalled/unmarshalled.
Bug: 22859862
Change-Id: I6481704b721837774a054fd9e6aaa64627a65a71
diff --git a/tests/tests/util/src/android/util/cts/LocaleListTest.java b/tests/tests/util/src/android/util/cts/LocaleListTest.java
index 1703591..936de9c 100644
--- a/tests/tests/util/src/android/util/cts/LocaleListTest.java
+++ b/tests/tests/util/src/android/util/cts/LocaleListTest.java
@@ -16,6 +16,7 @@
package android.util.cts;
+import android.os.Parcel;
import android.util.LocaleList;
import android.test.AndroidTestCase;
@@ -191,4 +192,28 @@
assertTrue(ll.size() >= 1);
assertEquals(Locale.getDefault(), ll.getPrimary());
}
+
+ public void testParcelable() {
+ // Make sure an empty LocaleList can be marshalled/unmarshalled via Parcel.
+ assertEquals(LocaleList.getEmptyLocaleList(),
+ cloneViaParcel(LocaleList.getEmptyLocaleList()));
+
+ // Make sure a non-empty LocaleList can be marshalled/unmarshalled via Parcel.
+ LocaleList original = LocaleList.forLanguageTags("en-PH,en-US");
+ assertEquals(original, cloneViaParcel(original));
+ }
+
+ private static LocaleList cloneViaParcel(final LocaleList original) {
+ Parcel parcel = null;
+ try {
+ parcel = Parcel.obtain();
+ original.writeToParcel(parcel, 0);
+ parcel.setDataPosition(0);
+ return LocaleList.CREATOR.createFromParcel(parcel);
+ } finally {
+ if (parcel != null) {
+ parcel.recycle();
+ }
+ }
+ }
}