Merge "Add addPublicKeyPins test" am: d18610d9b1
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/2497539 Change-Id: I311a7011dd1729af2e659de680113c5b9dcfa8eb Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -26,6 +26,7 @@ import static org.hamcrest.MatcherAssert.assertThat;
|
|||||||
import static org.hamcrest.Matchers.containsString;
|
import static org.hamcrest.Matchers.containsString;
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertFalse;
|
import static org.junit.Assert.assertFalse;
|
||||||
|
import static org.junit.Assert.assertNotNull;
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@@ -49,6 +50,11 @@ import org.junit.Test;
|
|||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.mockito.Mockito;
|
import org.mockito.Mockito;
|
||||||
|
|
||||||
|
import java.time.Instant;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Calendar;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
@RunWith(AndroidJUnit4.class)
|
@RunWith(AndroidJUnit4.class)
|
||||||
public class HttpEngineTest {
|
public class HttpEngineTest {
|
||||||
private static final String HOST = "source.android.com";
|
private static final String HOST = "source.android.com";
|
||||||
@@ -182,6 +188,38 @@ public class HttpEngineTest {
|
|||||||
// server.
|
// server.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private byte[] generateSha256() {
|
||||||
|
byte[] sha256 = new byte[32];
|
||||||
|
Arrays.fill(sha256, (byte) 58);
|
||||||
|
return sha256;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Instant instantInFuture(int secondsIntoFuture) {
|
||||||
|
Calendar cal = Calendar.getInstance();
|
||||||
|
cal.add(Calendar.SECOND, secondsIntoFuture);
|
||||||
|
return cal.getTime().toInstant();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testHttpEngine_AddPublicKeyPins() {
|
||||||
|
// CtsTestServer, when set in SslMode.NO_CLIENT_AUTH (required to trigger
|
||||||
|
// certificate verification, needed by this test), uses a certificate that
|
||||||
|
// doesn't match the hostname. For this reason, CtsTestServer cannot be used
|
||||||
|
// by this test.
|
||||||
|
Instant expirationInstant = instantInFuture(/* secondsIntoFuture */ 100);
|
||||||
|
boolean includeSubdomains = true;
|
||||||
|
Set<byte[]> pinsSha256 = Set.of(generateSha256());
|
||||||
|
mEngine = mEngineBuilder.addPublicKeyPins(
|
||||||
|
HOST, pinsSha256, includeSubdomains, expirationInstant).build();
|
||||||
|
|
||||||
|
UrlRequest.Builder builder =
|
||||||
|
mEngine.newUrlRequestBuilder(URL, mCallback.getExecutor(), mCallback);
|
||||||
|
mRequest = builder.build();
|
||||||
|
mRequest.start();
|
||||||
|
mCallback.expectCallback(ResponseStep.ON_FAILED);
|
||||||
|
assertNotNull("Expected an error", mCallback.mError);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testHttpEngine_EnableQuic() throws Exception {
|
public void testHttpEngine_EnableQuic() throws Exception {
|
||||||
mEngine = mEngineBuilder.setEnableQuic(true).addQuicHint(HOST, 443, 443).build();
|
mEngine = mEngineBuilder.setEnableQuic(true).addQuicHint(HOST, 443, 443).build();
|
||||||
|
|||||||
Reference in New Issue
Block a user