1 /*
2  *  Licensed to the Apache Software Foundation (ASF) under one or more
3  *  contributor license agreements.  See the NOTICE file distributed with
4  *  this work for additional information regarding copyright ownership.
5  *  The ASF licenses this file to You under the Apache License, Version 2.0
6  *  (the "License"); you may not use this file except in compliance with
7  *  the License.  You may obtain a copy of the License at
8  *
9  *     http://www.apache.org/licenses/LICENSE-2.0
10  *
11  *  Unless required by applicable law or agreed to in writing, software
12  *  distributed under the License is distributed on an "AS IS" BASIS,
13  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  *  See the License for the specific language governing permissions and
15  *  limitations under the License.
16  */
17 
18 package org.apache.harmony.tests.javax.net.ssl;
19 
20 import javax.net.ssl.SSLServerSocket;
21 import javax.net.ssl.SSLServerSocketFactory;
22 import javax.net.ssl.SSLSession;
23 import javax.net.ssl.SSLSessionBindingEvent;
24 import javax.net.ssl.SSLSessionBindingListener;
25 import javax.net.ssl.SSLSocket;
26 import javax.net.ssl.SSLSocketFactory;
27 
28 import java.io.IOException;
29 import java.net.UnknownHostException;
30 
31 import junit.framework.TestCase;
32 
33 /**
34  * Tests for SSLSessionBindingListener class
35  *
36  */
37 public class SSLSessionBindingListenerTest extends TestCase {
38 
39     public class mySSLSessionBindingListener implements SSLSessionBindingListener {
40 
41         public boolean boundDone = false;
42         public boolean unboundDone = false;
43 
mySSLSessionBindingListener()44         mySSLSessionBindingListener() {
45         }
46 
valueBound(SSLSessionBindingEvent event)47         public void valueBound(SSLSessionBindingEvent event) {
48             if (event != null) boundDone = true;
49         }
valueUnbound(SSLSessionBindingEvent event)50         public void valueUnbound(SSLSessionBindingEvent event) {
51             if (event != null) unboundDone = true;
52         }
53     }
54 
55     /**
56      * @throws IOException
57      * @throws UnknownHostException
58      * @throws InterruptedException
59      * javax.net.ssl.SSLSessionBindingListener#valueBound(SSLSessionBindingEvent event)
60      */
test_valueBound()61     public void test_valueBound() throws UnknownHostException, IOException,
62             InterruptedException {
63         SSLSocket sock = (SSLSocket) SSLSocketFactory.getDefault()
64                 .createSocket();
65         SSLSession ss = sock.getSession();
66         mySSLSessionBindingListener sbl = new mySSLSessionBindingListener();
67         ss.putValue("test", sbl);
68         assertTrue("valueBound was not called.", sbl.boundDone);
69     }
70 
71     /**
72      * @throws IOException
73      * @throws UnknownHostException
74      * javax.net.ssl.SSLSessionBindingListener#valueUnbound(SSLSessionBindingEvent event)
75      */
test_valueUnbound()76     public void test_valueUnbound() throws UnknownHostException, IOException {
77         SSLSocket sock = (SSLSocket) SSLSocketFactory.getDefault()
78                 .createSocket();
79         SSLSession ss = sock.getSession();
80         mySSLSessionBindingListener sbl = new mySSLSessionBindingListener();
81         ss.putValue("test", sbl);
82         ss.removeValue("test");
83         assertTrue("valueUnbound was not called.", sbl.unboundDone);
84     }
85 }
86