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();
+            }
+        }
+    }
 }