/*
* Copyright (C) 2016 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License
*/
package android.net.wifi;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import android.os.Parcel;
import android.test.suitebuilder.annotation.SmallTest;
import org.junit.Before;
import org.junit.Test;
import java.security.PrivateKey;
import java.security.cert.X509Certificate;
/**
* Unit tests for {@link android.net.wifi.ParcelUtil}.
*/
@SmallTest
public class ParcelUtilTest {
private Parcel mParcel;
@Before
public void setUp() throws Exception {
mParcel = Parcel.obtain();
}
@Test
public void readWriteNullPrivateKey() throws Exception {
ParcelUtil.writePrivateKey(mParcel, null);
mParcel.setDataPosition(0); // Rewind data position back to the beginning for read.
PrivateKey readKey = ParcelUtil.readPrivateKey(mParcel);
assertNull(readKey);
}
@Test
public void readWriteValidPrivateKey() throws Exception {
PrivateKey writeKey = FakeKeys.RSA_KEY1;
ParcelUtil.writePrivateKey(mParcel, writeKey);
mParcel.setDataPosition(0); // Rewind data position back to the beginning for read.
PrivateKey readKey = ParcelUtil.readPrivateKey(mParcel);
assertNotNull(readKey);
assertEquals(writeKey.getAlgorithm(), readKey.getAlgorithm());
assertArrayEquals(writeKey.getEncoded(), readKey.getEncoded());
}
@Test
public void readWriteNullCertificate() throws Exception {
ParcelUtil.writeCertificate(mParcel, null);
mParcel.setDataPosition(0); // Rewind data position back to the beginning for read.
X509Certificate readCert = ParcelUtil.readCertificate(mParcel);
assertNull(readCert);
}
@Test
public void readWriteValidCertificate() throws Exception {
X509Certificate writeCert = FakeKeys.CA_CERT1;
ParcelUtil.writeCertificate(mParcel, writeCert);
mParcel.setDataPosition(0); // Rewind data position back to the beginning for read.
X509Certificate readCert = ParcelUtil.readCertificate(mParcel);
assertNotNull(readCert);
assertArrayEquals(writeCert.getEncoded(), readCert.getEncoded());
}
@Test
public void readWriteNullCertificates() throws Exception {
ParcelUtil.writeCertificates(mParcel, null);
mParcel.setDataPosition(0); // Rewind data position back to the beginning for read.
X509Certificate[] readCerts = ParcelUtil.readCertificates(mParcel);
assertNull(readCerts);
}
@Test
public void readWriteValidCertificates() throws Exception {
X509Certificate[] writeCerts = new X509Certificate[2];
writeCerts[0] = FakeKeys.CA_CERT0;
writeCerts[1] = FakeKeys.CA_CERT1;
ParcelUtil.writeCertificates(mParcel, writeCerts);
mParcel.setDataPosition(0); // Rewind data position back to the beginning for read.
X509Certificate[] readCerts = ParcelUtil.readCertificates(mParcel);
assertNotNull(readCerts);
assertEquals(writeCerts.length, readCerts.length);
for (int i = 0; i < writeCerts.length; i++) {
assertNotNull(readCerts[i]);
assertArrayEquals(writeCerts[i].getEncoded(), readCerts[i].getEncoded());
}
}
}