SSLSessionTest.java revision e9505132a9a878aa77b0fb40a40dd55c9e6affe7
1ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom/*
2ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom * Copyright (C) 2010 The Android Open Source Project
3ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom *
4ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom * Licensed under the Apache License, Version 2.0 (the "License");
5ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom * you may not use this file except in compliance with the License.
6ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom * You may obtain a copy of the License at
7ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom *
8ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom *      http://www.apache.org/licenses/LICENSE-2.0
9ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom *
10ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom * Unless required by applicable law or agreed to in writing, software
11ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom * distributed under the License is distributed on an "AS IS" BASIS,
12ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom * See the License for the specific language governing permissions and
14ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom * limitations under the License.
15ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom */
16ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
17ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrompackage javax.net.ssl;
18ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
19ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstromimport java.util.Arrays;
20ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstromimport junit.framework.TestCase;
21ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
22ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrompublic class SSLSessionTest extends TestCase {
23ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
24bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom    public void test_SSLSocket_TestSSLSessions_create() {
25bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
26ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.invalid);
27ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertFalse(s.invalid.isValid());
28ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.server.isValid());
29ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.client.isValid());
30ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
31ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
32ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getApplicationBufferSize() {
33bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
34ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.invalid.getApplicationBufferSize() > 0);
35ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.server.getApplicationBufferSize() > 0);
36ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.client.getApplicationBufferSize() > 0);
37ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
38ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
39ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getCipherSuite() {
40bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
41ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.invalid.getCipherSuite());
42fd487fbac3547360ea81d96edea9827fad080f86Brian Carlstrom        assertEquals(StandardNames.CIPHER_SUITE_INVALID, s.invalid.getCipherSuite());
43ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.server.getCipherSuite());
44ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.client.getCipherSuite());
45ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(s.server.getCipherSuite(),
46ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom                     s.client.getCipherSuite());
479acacc36bafda869c6e9cc63786cdddd995ca96aBrian Carlstrom        assertTrue(StandardNames.CIPHER_SUITES.contains(s.server.getCipherSuite()));
48ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
49ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
50ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getCreationTime() {
51bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
52ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.invalid.getCreationTime() > 0);
53ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.server.getCreationTime() > 0);
54ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.client.getCreationTime() > 0);
55ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(Math.abs(s.server.getCreationTime() - s.client.getCreationTime()) < 1 * 1000);
56ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
57ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
58ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getId() {
59bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
60ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.invalid.getId());
61ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.server.getId());
62ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.client.getId());
63ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(0, s.invalid.getId().length);
64bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        if (TestSSLContext.sslServerSocketSupportsSessionTickets()) {
65bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom            assertEquals(0, s.server.getId().length);
66bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        } else {
67bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom            assertEquals(32, s.server.getId().length);
68bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom            assertTrue(Arrays.equals(s.server.getId(), s.client.getId()));
69bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        }
70ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(32, s.client.getId().length);
71ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
72ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
73ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getLastAccessedTime() {
74bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
75ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.invalid.getLastAccessedTime() > 0);
76ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.server.getLastAccessedTime() > 0);
77ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.client.getLastAccessedTime() > 0);
78e9505132a9a878aa77b0fb40a40dd55c9e6affe7Brian Carlstrom        assertTrue(Math.abs(s.server.getLastAccessedTime()
79e9505132a9a878aa77b0fb40a40dd55c9e6affe7Brian Carlstrom                            - s.client.getLastAccessedTime()) < 1 * 1000);
80ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.server.getLastAccessedTime() >=
81ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom                   s.server.getCreationTime());
82ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.client.getLastAccessedTime() >=
83ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom                   s.client.getCreationTime());
84ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
85ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
86ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getLocalCertificates() throws Exception {
87bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
88ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNull(s.invalid.getLocalCertificates());
89ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNull(s.client.getLocalCertificates());
90ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.server.getLocalCertificates());
91ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(1, s.server.getLocalCertificates().length);
92204cab3c22b4d75c866c95e2d2eec42e14cbd924Brian Carlstrom        TestSSLContext.assertCertificateInKeyStore(s.server.getLocalCertificates()[0],
93204cab3c22b4d75c866c95e2d2eec42e14cbd924Brian Carlstrom                                                   s.s.c.keyStore);
94ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
95ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
96ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getLocalPrincipal() throws Exception {
97bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
98ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNull(s.invalid.getLocalPrincipal());
99ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNull(s.client.getLocalPrincipal());
100ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.server.getLocalPrincipal());
101ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.server.getLocalPrincipal().getName());
102204cab3c22b4d75c866c95e2d2eec42e14cbd924Brian Carlstrom        TestSSLContext.assertCertificateInKeyStore(s.server.getLocalPrincipal(),
103204cab3c22b4d75c866c95e2d2eec42e14cbd924Brian Carlstrom                                                   s.s.c.keyStore);
104ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
105ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
106ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getPacketBufferSize() {
107bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
108ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.invalid.getPacketBufferSize() > 0);
109ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.server.getPacketBufferSize() > 0);
110ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.client.getPacketBufferSize() > 0);
111ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
112ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
113ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getPeerCertificateChain() throws Exception {
114bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
115ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        try {
116ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom            s.invalid.getPeerCertificateChain();
117ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom            fail();
118e9505132a9a878aa77b0fb40a40dd55c9e6affe7Brian Carlstrom        } catch (SSLPeerUnverifiedException expected) {
119ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        }
120ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.client.getPeerCertificates());
121ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(1, s.client.getPeerCertificates().length);
122204cab3c22b4d75c866c95e2d2eec42e14cbd924Brian Carlstrom        TestSSLContext.assertCertificateInKeyStore(s.client.getPeerCertificates()[0],
123204cab3c22b4d75c866c95e2d2eec42e14cbd924Brian Carlstrom                                                   s.s.c.keyStore);
124204cab3c22b4d75c866c95e2d2eec42e14cbd924Brian Carlstrom
125ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        try {
126ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom            assertNull(s.server.getPeerCertificates());
127ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom            fail();
128e9505132a9a878aa77b0fb40a40dd55c9e6affe7Brian Carlstrom        } catch (SSLPeerUnverifiedException expected) {
129ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        }
130ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
131ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
132ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getPeerCertificates() throws Exception {
133bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
134ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        try {
135ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom            s.invalid.getPeerCertificates();
136ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom            fail();
137e9505132a9a878aa77b0fb40a40dd55c9e6affe7Brian Carlstrom        } catch (SSLPeerUnverifiedException expected) {
138ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        }
139ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.client.getPeerCertificates());
140ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(1, s.client.getPeerCertificates().length);
141204cab3c22b4d75c866c95e2d2eec42e14cbd924Brian Carlstrom        TestSSLContext.assertCertificateInKeyStore(s.client.getPeerCertificates()[0],
142204cab3c22b4d75c866c95e2d2eec42e14cbd924Brian Carlstrom                                                   s.s.c.keyStore);
143ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        try {
144ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom            s.server.getPeerCertificates();
145ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom            fail();
146e9505132a9a878aa77b0fb40a40dd55c9e6affe7Brian Carlstrom        } catch (SSLPeerUnverifiedException expected) {
147ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        }
148ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
149ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
150ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getPeerHost() {
151bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
152ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNull(s.invalid.getPeerHost());
153ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.server.getPeerHost());
154ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.client.getPeerHost());
155ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
156ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
157ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getPeerPort() {
158bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
159ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(-1, s.invalid.getPeerPort());
160ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.server.getPeerPort() > 0);
161ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(s.s.c.port, s.client.getPeerPort());
162ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
163ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
164ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getPeerPrincipal() throws Exception {
165bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
166ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        try {
167ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom            s.invalid.getPeerPrincipal();
168ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom            fail();
169e9505132a9a878aa77b0fb40a40dd55c9e6affe7Brian Carlstrom        } catch (SSLPeerUnverifiedException expected) {
170ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        }
171ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        try {
172ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom            s.server.getPeerPrincipal();
173ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom            fail();
174e9505132a9a878aa77b0fb40a40dd55c9e6affe7Brian Carlstrom        } catch (SSLPeerUnverifiedException expected) {
175ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        }
176ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.client.getPeerPrincipal());
177ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.client.getPeerPrincipal().getName());
178204cab3c22b4d75c866c95e2d2eec42e14cbd924Brian Carlstrom        TestSSLContext.assertCertificateInKeyStore(s.client.getPeerPrincipal(),
179204cab3c22b4d75c866c95e2d2eec42e14cbd924Brian Carlstrom                                                   s.s.c.keyStore);
180ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
181ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
182ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getProtocol() {
183bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
184ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.invalid.getProtocol());
185ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals("NONE", s.invalid.getProtocol());
186ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.server.getProtocol());
187ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.client.getProtocol());
188ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(s.server.getProtocol(),
189ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom                     s.client.getProtocol());
1909acacc36bafda869c6e9cc63786cdddd995ca96aBrian Carlstrom        assertTrue(StandardNames.SSL_SOCKET_PROTOCOLS.contains(s.server.getProtocol()));
191ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
192ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
193ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getSessionContext() {
194bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
195ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNull(s.invalid.getSessionContext());
196ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.server.getSessionContext());
197ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.client.getSessionContext());
198ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(s.s.c.sslContext.getServerSessionContext(),
199ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom                     s.server.getSessionContext());
200ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(s.s.c.sslContext.getClientSessionContext(),
201ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom                     s.client.getSessionContext());
202ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotSame(s.server.getSessionContext(),
203ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom                      s.client.getSessionContext());
204ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
205ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
206ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getValue() {
207bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
208ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        try {
209ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom            s.invalid.getValue(null);
210e9505132a9a878aa77b0fb40a40dd55c9e6affe7Brian Carlstrom        } catch (IllegalArgumentException expected) {
211ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        }
212ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNull(s.invalid.getValue("BOGUS"));
213ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
214ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
215ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_getValueNames() {
216bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
217ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNotNull(s.invalid.getValueNames());
218ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(0, s.invalid.getValueNames().length);
219ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
220ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
221ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_invalidate() {
222bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
223ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertFalse(s.invalid.isValid());
224ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        s.invalid.invalidate();
225ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertFalse(s.invalid.isValid());
226ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNull(s.invalid.getSessionContext());
227ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
228ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.server.isValid());
229ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        s.server.invalidate();
230ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertFalse(s.server.isValid());
231ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNull(s.server.getSessionContext());
232ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
233ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.client.isValid());
234ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        s.client.invalidate();
235ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertFalse(s.client.isValid());
236ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNull(s.client.getSessionContext());
237ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
238ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
239ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_isValid() {
240bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
241ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertFalse(s.invalid.isValid());
242ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.server.isValid());
243ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertTrue(s.client.isValid());
244ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
245ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
246ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_putValue() {
247bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
2488ee2e66dc0ef38f4fbdf0fd649abc6e47876c9afBrian Carlstrom        String key = "KEY";
2498ee2e66dc0ef38f4fbdf0fd649abc6e47876c9afBrian Carlstrom        String value = "VALUE";
250ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNull(s.invalid.getValue(key));
251ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(0, s.invalid.getValueNames().length);
252ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        s.invalid.putValue(key, value);
253ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertSame(value, s.invalid.getValue(key));
254ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(1, s.invalid.getValueNames().length);
255ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(key, s.invalid.getValueNames()[0]);
256ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
257ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom
258ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    public void test_SSLSession_removeValue() {
259bcfb325d5b1f9529b439cc0805a1c140521510f7Brian Carlstrom        TestSSLSessions s = TestSSLSessions.create();
2608ee2e66dc0ef38f4fbdf0fd649abc6e47876c9afBrian Carlstrom        String key = "KEY";
2618ee2e66dc0ef38f4fbdf0fd649abc6e47876c9afBrian Carlstrom        String value = "VALUE";
262ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        s.invalid.putValue(key, value);
263ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(1, s.invalid.getValueNames().length);
264ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(key, s.invalid.getValueNames()[0]);
265ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        s.invalid.removeValue(key);
266ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertNull(s.invalid.getValue(key));
267ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom        assertEquals(0, s.invalid.getValueNames().length);
268ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom    }
269ebabb91c8c87ac2be2dca70ae343130f9755047fBrian Carlstrom}
270