1 package org.objectweb.celtix.bus.transports.https; 2 3 import java.net.InetAddress ; 4 import java.net.Socket ; 5 import java.net.URL ; 6 import java.util.Properties ; 7 8 import javax.net.ssl.SSLSocket; 9 import javax.net.ssl.SSLSocketFactory; 10 11 import junit.extensions.TestSetup; 12 import junit.framework.Test; 13 import junit.framework.TestCase; 14 import junit.framework.TestSuite; 15 16 import org.easymock.classextension.EasyMock; 17 import org.objectweb.celtix.Bus; 18 import org.objectweb.celtix.BusException; 19 20 public class SSLSocketFactoryWrapperTest extends TestCase { 21 22 23 private static final String DROP_BACK_SRC_DIR = 24 "../../../../../../../../src/test/java/org/objectweb/celtix/bus/transports/https/"; 25 26 Bus bus; 27 28 private SSLSocketFactory sslSocketFactory; 29 private SSLSocket mockSocket; 30 31 32 33 34 public SSLSocketFactoryWrapperTest(String arg0) { 35 super(arg0); 36 } 37 38 public static Test suite() throws Exception { 39 TestSuite suite = new TestSuite(SSLSocketFactoryWrapperTest.class); 40 return new TestSetup(suite) { 41 protected void tearDown() throws Exception { 42 super.tearDown(); 43 } 44 }; 45 } 46 47 48 public static void main(String [] args) { 49 junit.textui.TestRunner.run(SSLSocketFactoryWrapperTest.class); 50 } 51 52 public void setUp() throws BusException { 53 bus = EasyMock.createMock(Bus.class); 54 sslSocketFactory = EasyMock.createMock(SSLSocketFactory.class); 55 mockSocket = EasyMock.createMock(SSLSocket.class); 56 57 } 58 59 public void tearDown() throws Exception { 60 EasyMock.reset(bus); 61 EasyMock.reset(sslSocketFactory); 62 EasyMock.reset(mockSocket); 63 Properties props = System.getProperties(); 64 props.remove("javax.net.ssl.trustStore"); 65 props.remove("javax.net.ssl.keyStore"); 66 props.remove("javax.net.ssl.keyPassword"); 67 props.remove("javax.net.ssl.keyStorePassword"); 68 } 69 70 public void testConstructor1() { 71 TestHandler handler = new TestHandler(); 72 73 try { 74 String [] ciphs = new String []{"a", "b", "c"}; 75 SSLSocketFactoryWrapper sslSocketFactoryWrapper = 76 createSSLSocketFactoryWrapper(ciphs, 77 handler); 78 EasyMock.expect(sslSocketFactory.createSocket((String )EasyMock.anyObject(), 79 EasyMock.anyInt())).andReturn(mockSocket); 80 EasyMock.expect(sslSocketFactory.getDefaultCipherSuites()).andReturn(ciphs); 81 EasyMock.expect(sslSocketFactory.getSupportedCipherSuites()).andReturn(ciphs); 82 EasyMock.replay(sslSocketFactory); 83 SSLSocket socket = 84 (SSLSocket)sslSocketFactoryWrapper.createSocket("localhost", 9001); 85 assertTrue("Expected socket != null", socket != null); 86 String [] defCiphers = sslSocketFactoryWrapper.getDefaultCipherSuites(); 87 assertTrue("Default Cipher suite not as expected", defCiphers[1].equals("b")); 88 String [] suppCiphers = sslSocketFactoryWrapper.getSupportedCipherSuites(); 89 assertTrue("Supported Cipher suite not as expected", suppCiphers[1].equals("b")); 90 91 EasyMock.reset(sslSocketFactory); 92 EasyMock.reset(mockSocket); 93 EasyMock.expect(sslSocketFactory.createSocket((String )EasyMock.anyObject(), 94 EasyMock.anyInt())).andReturn(null); 95 EasyMock.expect(sslSocketFactory.getDefaultCipherSuites()).andReturn(null); 96 EasyMock.expect(sslSocketFactory.getSupportedCipherSuites()).andReturn(null); 97 EasyMock.replay(sslSocketFactory); 98 socket = 99 (SSLSocket)sslSocketFactoryWrapper.createSocket("localhost", 9001); 100 assertTrue("Expected socket == null", socket == null); 101 102 103 } catch (Exception e) { 104 assertTrue("Caught an unexpected exception e = " + e, false); 105 } 106 } 107 108 public void testConstructor2() { 109 TestHandler handler = new TestHandler(); 110 111 try { 112 String [] ciphs = new String []{}; 113 SSLSocketFactoryWrapper sslSocketFactoryWrapper = 114 createSSLSocketFactoryWrapper(ciphs, 115 handler); 116 EasyMock.expect(sslSocketFactory.createSocket((Socket )EasyMock.anyObject(), 117 (String )EasyMock.anyObject(), 118 EasyMock.anyInt(), 119 EasyMock.anyBoolean())).andReturn(mockSocket); 120 EasyMock.expect(sslSocketFactory.getDefaultCipherSuites()).andReturn(ciphs); 121 EasyMock.expect(sslSocketFactory.getSupportedCipherSuites()).andReturn(ciphs); 122 EasyMock.replay(sslSocketFactory); 123 Socket socket = 124 sslSocketFactoryWrapper.createSocket(null, "localhost", 9001, true); 125 assertTrue("Expected socket != null", socket != null); 126 127 EasyMock.reset(sslSocketFactory); 128 EasyMock.reset(mockSocket); 129 EasyMock.expect(sslSocketFactory.createSocket((Socket )EasyMock.anyObject(), 130 (String )EasyMock.anyObject(), 131 EasyMock.anyInt(), 132 EasyMock.anyBoolean())).andReturn(null); 133 EasyMock.expect(sslSocketFactory.getDefaultCipherSuites()).andReturn(null); 134 EasyMock.expect(sslSocketFactory.getSupportedCipherSuites()).andReturn(null); 135 EasyMock.replay(sslSocketFactory); 136 socket = 137 sslSocketFactoryWrapper.createSocket(null, "localhost", 9001, true); 138 assertTrue("Expected socket == null", socket == null); 139 } catch (Exception e) { 140 assertTrue("Caught an unexpected exception e = " + e, false); 141 } 142 } 143 144 public void testConstructor3() { 145 TestHandler handler = new TestHandler(); 146 try { 147 String [] ciphs = new String []{"a", "b", "c"}; 148 SSLSocketFactoryWrapper sslSocketFactoryWrapper = 149 createSSLSocketFactoryWrapper(ciphs, 150 handler); 151 EasyMock.expect(sslSocketFactory.createSocket((String )EasyMock.anyObject(), 152 EasyMock.anyInt(), 153 (InetAddress )EasyMock.anyObject(), 154 EasyMock.anyInt())).andReturn(mockSocket); 155 EasyMock.expect(sslSocketFactory.getDefaultCipherSuites()).andReturn(ciphs); 156 EasyMock.expect(sslSocketFactory.getSupportedCipherSuites()).andReturn(ciphs); 157 EasyMock.replay(sslSocketFactory); 158 Socket socket = 159 sslSocketFactoryWrapper.createSocket("localhost", 9001, null, 9001); 160 assertTrue("Expected socket != null", socket != null); 161 162 EasyMock.reset(sslSocketFactory); 163 EasyMock.reset(mockSocket); 164 EasyMock.expect(sslSocketFactory.createSocket((String )EasyMock.anyObject(), 165 EasyMock.anyInt(), 166 (InetAddress )EasyMock.anyObject(), 167 EasyMock.anyInt())).andReturn(null); 168 EasyMock.expect(sslSocketFactory.getDefaultCipherSuites()).andReturn(null); 169 EasyMock.expect(sslSocketFactory.getSupportedCipherSuites()).andReturn(null); 170 EasyMock.replay(sslSocketFactory); 171 socket = 172 sslSocketFactoryWrapper.createSocket("localhost", 9001, null, 9001); 173 assertTrue("Expected socket == null", socket == null); 174 175 } catch (Exception e) { 176 assertTrue("Caught an unexpected exception e = " + e, false); 177 } 178 } 179 180 181 public void testConstructor4() { 182 TestHandler handler = new TestHandler(); 183 184 try { 185 String [] ciphs = new String []{"a", "b", "c"}; 186 SSLSocketFactoryWrapper sslSocketFactoryWrapper = 187 createSSLSocketFactoryWrapper(ciphs, 188 handler); 189 EasyMock.expect(sslSocketFactory.createSocket((InetAddress )EasyMock.anyObject(), 190 EasyMock.anyInt())).andReturn(mockSocket); 191 EasyMock.expect(sslSocketFactory.getDefaultCipherSuites()).andReturn(ciphs); 192 EasyMock.expect(sslSocketFactory.getSupportedCipherSuites()).andReturn(ciphs); 193 EasyMock.replay(sslSocketFactory); 194 InetAddress addr = InetAddress.getLocalHost(); 195 Socket socket = 196 sslSocketFactoryWrapper.createSocket(addr, 9001); 197 assertTrue("Expected socket != null", socket != null); 198 199 EasyMock.reset(sslSocketFactory); 200 EasyMock.reset(mockSocket); 201 EasyMock.expect(sslSocketFactory.createSocket((InetAddress )EasyMock.anyObject(), 202 EasyMock.anyInt())).andReturn(null); 203 EasyMock.expect(sslSocketFactory.getDefaultCipherSuites()).andReturn(null); 204 EasyMock.expect(sslSocketFactory.getSupportedCipherSuites()).andReturn(null); 205 EasyMock.replay(sslSocketFactory); 206 207 socket = 208 sslSocketFactoryWrapper.createSocket(addr, 9001); 209 assertTrue("Expected socket == null", socket == null); 210 211 } catch (Exception e) { 212 assertTrue("Caught an unexpected exception e = " + e, false); 213 } 214 } 215 216 public void testConstructor5() { 217 TestHandler handler = new TestHandler(); 218 219 try { 220 String [] ciphs = new String []{"a", "b", "c"}; 221 SSLSocketFactoryWrapper sslSocketFactoryWrapper = 222 createSSLSocketFactoryWrapper(ciphs, 223 handler); 224 EasyMock.expect(sslSocketFactory.createSocket((InetAddress )EasyMock.anyObject(), 225 EasyMock.anyInt(), 226 (InetAddress )EasyMock.anyObject(), 227 EasyMock.anyInt())).andReturn(mockSocket); 228 EasyMock.expect(sslSocketFactory.getDefaultCipherSuites()).andReturn(ciphs); 229 EasyMock.expect(sslSocketFactory.getSupportedCipherSuites()).andReturn(ciphs); 230 EasyMock.replay(sslSocketFactory); 231 InetAddress addr = InetAddress.getLocalHost(); 232 Socket socket = 233 sslSocketFactoryWrapper.createSocket(addr, 9001, addr, 9001); 234 assertTrue("Expected socket != null", socket != null); 235 236 } catch (Exception e) { 237 assertTrue("Caught an unexpected exception e = " + e, false); 238 } 239 } 240 241 public void testConstructor6() { 242 TestHandler handler = new TestHandler(); 243 244 try { 245 String [] ciphs = null; 246 SSLSocketFactoryWrapper sslSocketFactoryWrapper = 247 createSSLSocketFactoryWrapper(ciphs, 248 handler); 249 EasyMock.expect(sslSocketFactory.createSocket((InetAddress )EasyMock.anyObject(), 250 EasyMock.anyInt(), 251 (InetAddress )EasyMock.anyObject(), 252 EasyMock.anyInt())).andReturn(mockSocket); 253 EasyMock.expect(sslSocketFactory.getDefaultCipherSuites()).andReturn(ciphs); 254 EasyMock.expect(sslSocketFactory.getSupportedCipherSuites()).andReturn(ciphs); 255 EasyMock.replay(sslSocketFactory); 256 InetAddress addr = InetAddress.getLocalHost(); 257 Socket socket = 258 sslSocketFactoryWrapper.createSocket(addr, 9001, addr, 9001); 259 assertTrue("Expected socket != null", socket != null); 260 261 } catch (Exception e) { 262 assertTrue("Caught an unexpected exception e = " + e, false); 263 } 264 } 265 266 267 268 private SSLSocketFactoryWrapper createSSLSocketFactoryWrapper( 269 String [] cipherSuite, 270 TestHandler handler) { 271 try { 272 273 SSLSocketFactoryWrapper sslSocketFactoryWrapper = 274 new SSLSocketFactoryWrapper(sslSocketFactory, 275 cipherSuite); 276 277 sslSocketFactoryWrapper.addLogHandler(handler); 278 return sslSocketFactoryWrapper; 279 280 } catch (Exception e) { 281 e.printStackTrace(); 282 } 283 return null; 284 } 285 286 protected static String getPath(String fileName) { 287 URL keystoreURL = SSLSocketFactoryWrapperTest.class.getResource("."); 288 String str = keystoreURL.getFile(); 289 str += DROP_BACK_SRC_DIR + fileName; 290 return str; 291 } 292 } 293 294 295 | Popular Tags |