1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage tests.api.javax.net.ssl; 2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport junit.framework.TestCase; 4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 51cd5a5cfeccb2745d54a1c49fc39e4e3537a9adeUrs Grobimport javax.net.ssl.SSLContext; 6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport javax.net.ssl.SSLSessionContext; 71cd5a5cfeccb2745d54a1c49fc39e4e3537a9adeUrs Grob 8051f400949489d012498f575c0a40999ad7a4f54Jorg Pleumannimport java.security.KeyManagementException; 91cd5a5cfeccb2745d54a1c49fc39e4e3537a9adeUrs Grobimport java.security.NoSuchAlgorithmException; 10f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/** 12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Tests for <code>SSLSessionContext</code> class constructors and methods. 13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class SSLSessionContextTest extends TestCase { 15f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 17f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * @throws NoSuchAlgorithmException 18f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * @throws KeyManagementException 19229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * javax.net.ssl.SSLSessionContex#getSessionCacheSize() 20229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * javax.net.ssl.SSLSessionContex#setSessionCacheSize(int size) 21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 22051f400949489d012498f575c0a40999ad7a4f54Jorg Pleumann public final void test_sessionCacheSize() throws NoSuchAlgorithmException, KeyManagementException { 23051f400949489d012498f575c0a40999ad7a4f54Jorg Pleumann SSLContext context = SSLContext.getInstance("TLS"); 24051f400949489d012498f575c0a40999ad7a4f54Jorg Pleumann context.init(null, null, null); 25be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob SSLSessionContext sc = context 261cd5a5cfeccb2745d54a1c49fc39e4e3537a9adeUrs Grob .getClientSessionContext(); 271cd5a5cfeccb2745d54a1c49fc39e4e3537a9adeUrs Grob sc.setSessionCacheSize(10); 281cd5a5cfeccb2745d54a1c49fc39e4e3537a9adeUrs Grob assertEquals("10 wasn't returned", 10, sc.getSessionCacheSize()); 291cd5a5cfeccb2745d54a1c49fc39e4e3537a9adeUrs Grob sc.setSessionCacheSize(5); 301cd5a5cfeccb2745d54a1c49fc39e4e3537a9adeUrs Grob assertEquals("5 wasn't returned", 5, sc.getSessionCacheSize()); 31f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sc.setSessionCacheSize(-1); 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException wasn't thrown"); 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException iae) { 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 39f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 41f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * @throws NoSuchAlgorithmException 42f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * @throws KeyManagementException 43229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * javax.net.ssl.SSLSessionContex#getSessionTimeout() 44229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * javax.net.ssl.SSLSessionContex#setSessionTimeout(int seconds) 45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 46051f400949489d012498f575c0a40999ad7a4f54Jorg Pleumann public final void test_sessionTimeout() throws NoSuchAlgorithmException, KeyManagementException { 47051f400949489d012498f575c0a40999ad7a4f54Jorg Pleumann SSLContext context = SSLContext.getInstance("TLS"); 48051f400949489d012498f575c0a40999ad7a4f54Jorg Pleumann context.init(null, null, null); 49be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob SSLSessionContext sc = context 501cd5a5cfeccb2745d54a1c49fc39e4e3537a9adeUrs Grob .getClientSessionContext(); 511cd5a5cfeccb2745d54a1c49fc39e4e3537a9adeUrs Grob sc.setSessionTimeout(100); 521cd5a5cfeccb2745d54a1c49fc39e4e3537a9adeUrs Grob assertEquals("100 wasn't returned", 100, sc.getSessionTimeout()); 531cd5a5cfeccb2745d54a1c49fc39e4e3537a9adeUrs Grob sc.setSessionTimeout(5000); 541cd5a5cfeccb2745d54a1c49fc39e4e3537a9adeUrs Grob assertEquals("5000 wasn't returned", 5000, sc.getSessionTimeout()); 55f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sc.setSessionTimeout(-1); 58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException wasn't thrown"); 59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException iae) { 60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 63f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 65f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * @throws NoSuchAlgorithmException 66f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * @throws KeyManagementException 67229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * javax.net.ssl.SSLSessionContex#getSession(byte[] sessionId) 68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 69051f400949489d012498f575c0a40999ad7a4f54Jorg Pleumann public final void test_getSession() throws NoSuchAlgorithmException, KeyManagementException { 70051f400949489d012498f575c0a40999ad7a4f54Jorg Pleumann SSLContext context = SSLContext.getInstance("TLS"); 71051f400949489d012498f575c0a40999ad7a4f54Jorg Pleumann context.init(null, null, null); 72be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob SSLSessionContext sc = context 731cd5a5cfeccb2745d54a1c49fc39e4e3537a9adeUrs Grob .getClientSessionContext(); 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 751cd5a5cfeccb2745d54a1c49fc39e4e3537a9adeUrs Grob sc.getSession(null); 761cd5a5cfeccb2745d54a1c49fc39e4e3537a9adeUrs Grob } catch (NullPointerException e) { 771cd5a5cfeccb2745d54a1c49fc39e4e3537a9adeUrs Grob // expected 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 791cd5a5cfeccb2745d54a1c49fc39e4e3537a9adeUrs Grob assertNull(sc.getSession(new byte[5])); 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 81f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 83f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * @throws NoSuchAlgorithmException 84f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * @throws KeyManagementException 85229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * javax.net.ssl.SSLSessionContex#getIds() 86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 87051f400949489d012498f575c0a40999ad7a4f54Jorg Pleumann public final void test_getIds() throws NoSuchAlgorithmException, KeyManagementException { 88051f400949489d012498f575c0a40999ad7a4f54Jorg Pleumann SSLContext context = SSLContext.getInstance("TLS"); 89051f400949489d012498f575c0a40999ad7a4f54Jorg Pleumann context.init(null, null, null); 90be25811712488827cf836ee6170eca8fb4e14fe4Urs Grob SSLSessionContext sc = context 911cd5a5cfeccb2745d54a1c49fc39e4e3537a9adeUrs Grob .getClientSessionContext(); 921cd5a5cfeccb2745d54a1c49fc39e4e3537a9adeUrs Grob assertFalse(sc.getIds().hasMoreElements()); 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 95229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom} 96