19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/*
29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2007 The Android Open Source Project
39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License.
69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at
79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and
149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License.
159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
171a44d5dcabc18cd5ef111f732ccff91683a1a093Neal Nguyenpackage android.os;
189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.IInterface;
209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Parcel;
219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Parcelable;
229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.test.suitebuilder.annotation.SmallTest;
239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport com.google.android.collect.Lists;
249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport junit.framework.TestCase;
259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.util.List;
279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class AidlTest extends TestCase {
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private IAidlTest mRemote;
319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @Override
339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    protected void setUp() throws Exception {
349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        super.setUp();
359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        AidlObject mLocal = new AidlObject();
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote = IAidlTest.Stub.asInterface(mLocal);
379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private static boolean check(TestParcelable p, int n, String s) {
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return p.mAnInt == n &&
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                ((s == null && p.mAString == null) || s.equals(p.mAString));
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static class TestParcelable implements Parcelable {
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public int mAnInt;
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public String mAString;
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public TestParcelable() {
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public TestParcelable(int i, String s) {
529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            mAnInt = i;
539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            mAString = s;
549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public int describeContents() {
579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return 0;
589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public void writeToParcel(Parcel parcel, int flags) {
619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            parcel.writeInt(mAnInt);
629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            parcel.writeString(mAString);
639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public void readFromParcel(Parcel parcel) {
669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            mAnInt = parcel.readInt();
679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            mAString = parcel.readString();
689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final Parcelable.Creator<TestParcelable> CREATOR
719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                = new Parcelable.Creator<TestParcelable>() {
729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public TestParcelable createFromParcel(Parcel parcel) {
739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                return new TestParcelable(parcel.readInt(),
749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        parcel.readString());
759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public TestParcelable[] newArray(int size) {
789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                return new TestParcelable[size];
799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        };
819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public String toString() {
839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return super.toString() + " {" + mAnInt + "/" + mAString + "}";
849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private static class AidlObject extends IAidlTest.Stub {
889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public IInterface queryLocalInterface(String descriptor) {
899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            // overriding this to return null makes asInterface always
909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            // generate a proxy
919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return null;
929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public int intMethod(int a) {
959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return a;
969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public TestParcelable parcelableIn(TestParcelable p) {
999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            p.mAnInt++;
1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return p;
1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public TestParcelable parcelableOut(TestParcelable p) {
1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            p.mAnInt = 44;
1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return p;
1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public TestParcelable parcelableInOut(TestParcelable p) {
1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            p.mAnInt++;
1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return p;
1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public TestParcelable listParcelableLonger(List<TestParcelable> list, int index) {
1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            list.add(list.get(index));
1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return list.get(index);
1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public int listParcelableShorter(List<TestParcelable> list, int index) {
1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            list.remove(index);
1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return list.size();
1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public boolean[] booleanArray(boolean[] a0, boolean[] a1, boolean[] a2) {
1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            for (int i = 0; i < a0.length && i < a2.length; i++) {
1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                a2[i] = a0[i];
1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            for (int i = 0; i < a0.length && i < a1.length; i++) {
1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                a1[i] = a0[i];
1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return a0;
1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public char[] charArray(char[] a0, char[] a1, char[] a2) {
1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            for (int i = 0; i < a0.length && i < a2.length; i++) {
1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                a2[i] = a0[i];
1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            for (int i = 0; i < a0.length && i < a1.length; i++) {
1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                a1[i] = a0[i];
1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return a0;
1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public int[] intArray(int[] a0, int[] a1, int[] a2) {
1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            for (int i = 0; i < a0.length && i < a2.length; i++) {
1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                a2[i] = a0[i];
1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            for (int i = 0; i < a0.length && i < a1.length; i++) {
1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                a1[i] = a0[i];
1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return a0;
1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public long[] longArray(long[] a0, long[] a1, long[] a2) {
1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            for (int i = 0; i < a0.length && i < a2.length; i++) {
1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                a2[i] = a0[i];
1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            for (int i = 0; i < a0.length && i < a1.length; i++) {
1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                a1[i] = a0[i];
1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return a0;
1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public float[] floatArray(float[] a0, float[] a1, float[] a2) {
1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            for (int i = 0; i < a0.length && i < a2.length; i++) {
1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                a2[i] = a0[i];
1669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
1679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            for (int i = 0; i < a0.length && i < a1.length; i++) {
1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                a1[i] = a0[i];
1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return a0;
1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public double[] doubleArray(double[] a0, double[] a1, double[] a2) {
1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            for (int i = 0; i < a0.length && i < a2.length; i++) {
1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                a2[i] = a0[i];
1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            for (int i = 0; i < a0.length && i < a1.length; i++) {
1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                a1[i] = a0[i];
1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return a0;
1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public String[] stringArray(String[] a0, String[] a1, String[] a2) {
1849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            for (int i = 0; i < a0.length && i < a2.length; i++) {
1859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                a2[i] = a0[i];
1869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
1879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            for (int i = 0; i < a0.length && i < a1.length; i++) {
1889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                a1[i] = a0[i];
1899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
1909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return a0;
1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public TestParcelable[] parcelableArray(TestParcelable[] a0,
1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                TestParcelable[] a1, TestParcelable[] a2) {
1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return null;
1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public void voidSecurityException() {
1999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            throw new SecurityException("gotcha!");
2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public int intSecurityException() {
2039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            throw new SecurityException("gotcha!");
2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @SmallTest
2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void testInt() throws Exception {
2099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int result = mRemote.intMethod(42);
2109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals(42, result);
2119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @SmallTest
2149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void testParcelableIn() throws Exception {
2159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        TestParcelable arg = new TestParcelable(43, "hi");
2169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        TestParcelable result = mRemote.parcelableIn(arg);
2179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertNotSame(arg, result);
2189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals(43, arg.mAnInt);
2209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals(44, result.mAnInt);
2219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
2229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @SmallTest
2249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void testParcelableOut() throws Exception {
2259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        TestParcelable arg = new TestParcelable(43, "hi");
2269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        TestParcelable result = mRemote.parcelableOut(arg);
2279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertNotSame(arg, result);
2289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals(44, arg.mAnInt);
2299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
2309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @SmallTest
2329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void testParcelableInOut() throws Exception {
2339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        TestParcelable arg = new TestParcelable(43, "hi");
2349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        TestParcelable result = mRemote.parcelableInOut(arg);
2359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertNotSame(arg, result);
2369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals(44, arg.mAnInt);
2379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
2389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @SmallTest
2409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void testListParcelableLonger() throws Exception {
2419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        List<TestParcelable> list = Lists.newArrayList();
2429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        list.add(new TestParcelable(33, "asdf"));
2439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        list.add(new TestParcelable(34, "jkl;"));
2449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        TestParcelable result = mRemote.listParcelableLonger(list, 1);
2469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project//        System.out.println("result=" + result);
2489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project//        for (TestParcelable p : list) {
2499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project//            System.out.println("longer: " + p);
2509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project//        }
2519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals("jkl;", result.mAString);
2539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals(34, result.mAnInt);
2549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals(3, list.size());
2569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertTrue("out parameter 0: " + list.get(0), check(list.get(0), 33, "asdf"));
2579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertTrue("out parameter 1: " + list.get(1), check(list.get(1), 34, "jkl;"));
2589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertTrue("out parameter 2: " + list.get(2), check(list.get(2), 34, "jkl;"));
2599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertNotSame(list.get(1), list.get(2));
2619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
2629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @SmallTest
2649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void testListParcelableShorter() throws Exception {
2659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        List<TestParcelable> list = Lists.newArrayList();
2669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        list.add(new TestParcelable(33, "asdf"));
2679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        list.add(new TestParcelable(34, "jkl;"));
2689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        list.add(new TestParcelable(35, "qwerty"));
2699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int result = mRemote.listParcelableShorter(list, 2);
2719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project//        System.out.println("result=" + result);
2739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project//        for (TestParcelable p : list) {
2749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project//            System.out.println("shorter: " + p);
2759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project//        }
2769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals(2, result);
2789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals(2, list.size());
2799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertTrue("out parameter 0: " + list.get(0), check(list.get(0), 33, "asdf"));
2809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertTrue("out parameter 1: " + list.get(1), check(list.get(1), 34, "jkl;"));
2819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertNotSame(list.get(0), list.get(1));
2839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
2849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @SmallTest
2869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void testArrays() throws Exception {
2879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        // boolean
2889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        boolean[] b0 = new boolean[]{true};
2899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        boolean[] b1 = new boolean[]{false, true};
2909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        boolean[] b2 = new boolean[]{true, false, true};
2919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        boolean[] br = mRemote.booleanArray(b0, b1, b2);
2929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals(1, br.length);
2949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertTrue(br[0]);
2959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertTrue(b1[0]);
2979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertFalse(b1[1]);
2989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertTrue(b2[0]);
3009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertFalse(b2[1]);
3019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertTrue(b2[2]);
3029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        // char
3049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        char[] c0 = new char[]{'a'};
3059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        char[] c1 = new char[]{'b', 'c'};
3069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        char[] c2 = new char[]{'d', 'e', 'f'};
3079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        char[] cr = mRemote.charArray(c0, c1, c2);
3089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals(1, cr.length);
3109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals('a', cr[0]);
3119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals('a', c1[0]);
3139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals('\0', c1[1]);
3149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals('a', c2[0]);
3169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals('e', c2[1]);
3179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals('f', c2[2]);
3189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        // int
3209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int[] i0 = new int[]{34};
3219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int[] i1 = new int[]{38, 39};
3229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int[] i2 = new int[]{42, 43, 44};
3239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int[] ir = mRemote.intArray(i0, i1, i2);
3249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals(1, ir.length);
3269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals(34, ir[0]);
3279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals(34, i1[0]);
3299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals(0, i1[1]);
3309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals(34, i2[0]);
3329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals(43, i2[1]);
3339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals(44, i2[2]);
3349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        // long
3369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        long[] l0 = new long[]{50};
3379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        long[] l1 = new long[]{51, 52};
3389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        long[] l2 = new long[]{53, 54, 55};
3399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        long[] lr = mRemote.longArray(l0, l1, l2);
3409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals(1, lr.length);
3429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals(50, lr[0]);
3439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals(50, l1[0]);
3459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals(0, l1[1]);
3469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals(50, l2[0]);
3489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals(54, l2[1]);
3499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals(55, l2[2]);
3509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        // float
3529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        float[] f0 = new float[]{90.1f};
3539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        float[] f1 = new float[]{90.2f, 90.3f};
3549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        float[] f2 = new float[]{90.4f, 90.5f, 90.6f};
3559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        float[] fr = mRemote.floatArray(f0, f1, f2);
3569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals(1, fr.length);
3589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals(90.1f, fr[0]);
3599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals(90.1f, f1[0]);
3619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals(0f, f1[1], 0.0f);
3629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals(90.1f, f2[0]);
3649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals(90.5f, f2[1]);
3659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals(90.6f, f2[2]);
3669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        // double
3689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        double[] d0 = new double[]{100.1};
3699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        double[] d1 = new double[]{100.2, 100.3};
3709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        double[] d2 = new double[]{100.4, 100.5, 100.6};
3719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        double[] dr = mRemote.doubleArray(d0, d1, d2);
3729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals(1, dr.length);
3749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals(100.1, dr[0]);
3759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals(100.1, d1[0]);
3779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals(0, d1[1], 0.0);
3789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals(100.1, d2[0]);
3809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals(100.5, d2[1]);
3819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals(100.6, d2[2]);
3829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        // String
3849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        String[] s0 = new String[]{"s0[0]"};
3859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        String[] s1 = new String[]{"s1[0]", "s1[1]"};
3869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        String[] s2 = new String[]{"s2[0]", "s2[1]", "s2[2]"};
3879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        String[] sr = mRemote.stringArray(s0, s1, s2);
3889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals(1, sr.length);
3909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals("s0[0]", sr[0]);
3919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals("s0[0]", s1[0]);
3939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertNull(s1[1]);
3949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals("s0[0]", s2[0]);
3969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals("s2[1]", s2[1]);
3979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals("s2[2]", s2[2]);
3989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
3999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @SmallTest
4019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void testVoidSecurityException() throws Exception {
4029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        boolean good = false;
4039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        try {
4049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            mRemote.voidSecurityException();
4059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        } catch (SecurityException e) {
4069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            good = true;
4079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
4089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals(good, true);
4099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
4109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @SmallTest
4129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void testIntSecurityException() throws Exception {
4139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        boolean good = false;
4149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        try {
4159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            mRemote.intSecurityException();
4169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        } catch (SecurityException e) {
4179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            good = true;
4189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
4199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        assertEquals(good, true);
4209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
4219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
4229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
423