diff options
author | Jesse Wilson <jessewilson@google.com> | 2011-12-19 19:45:31 -0500 |
---|---|---|
committer | Jesse Wilson <jessewilson@google.com> | 2011-12-19 19:47:23 -0500 |
commit | abe4e615f473b387b1c00a738062a7c428f05a33 (patch) | |
tree | 530ac5d2aefb55fe9598cdce5f2b60b13864565d /luni | |
parent | 5757cb35ad2e58d7accb7f5d3db6f2d5e72f097d (diff) | |
download | libcore-abe4e615f473b387b1c00a738062a7c428f05a33.zip libcore-abe4e615f473b387b1c00a738062a7c428f05a33.tar.gz libcore-abe4e615f473b387b1c00a738062a7c428f05a33.tar.bz2 |
Unit test SSL fallback.
Bug: http://b/4462288
Change-Id: I9a29c70b24f235df15aa9a763ae5217e10e42f83
Diffstat (limited to 'luni')
-rw-r--r-- | luni/src/test/java/libcore/java/net/URLConnectionTest.java | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/luni/src/test/java/libcore/java/net/URLConnectionTest.java b/luni/src/test/java/libcore/java/net/URLConnectionTest.java index 8777aa0..d16f14a 100644 --- a/luni/src/test/java/libcore/java/net/URLConnectionTest.java +++ b/luni/src/test/java/libcore/java/net/URLConnectionTest.java @@ -449,6 +449,7 @@ public final class URLConnectionTest extends TestCase { RecordedRequest request = server.takeRequest(); assertEquals("GET /foo HTTP/1.1", request.getRequestLine()); + assertEquals("TLSv1", request.getSslProtocol()); } public void testConnectViaHttpsReusingConnections() throws IOException, InterruptedException { @@ -2031,6 +2032,25 @@ public final class URLConnectionTest extends TestCase { } } + public void testSslFallback() throws Exception { + TestSSLContext testSSLContext = TestSSLContext.create(); + server.useHttps(testSSLContext.serverContext.getSocketFactory(), false); + server.enqueue(new MockResponse().setSocketPolicy(SocketPolicy.FAIL_HANDSHAKE)); + server.enqueue(new MockResponse().setBody("This required a 2nd handshake")); + server.play(); + + HttpsURLConnection connection = (HttpsURLConnection) server.getUrl("/").openConnection(); + connection.setSSLSocketFactory(testSSLContext.clientContext.getSocketFactory()); + assertEquals("This required a 2nd handshake", + readAscii(connection.getInputStream(), Integer.MAX_VALUE)); + + RecordedRequest first = server.takeRequest(); + assertEquals(0, first.getSequenceNumber()); + RecordedRequest retry = server.takeRequest(); + assertEquals(0, retry.getSequenceNumber()); + assertEquals("SSLv3", retry.getSslProtocol()); + } + /** * Returns a gzipped copy of {@code bytes}. */ |