1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpackage tests.api.javax.net.ssl; 2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestTargets; 4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestLevel; 5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestTargetNew; 6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestTargetClass; 7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport junit.framework.TestCase; 9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 10dfaac167b5f6a48ca76cc76e237c548d496da036Urs Grobimport javax.net.ssl.SSLContext; 11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport javax.net.ssl.SSLSessionContext; 12dfaac167b5f6a48ca76cc76e237c548d496da036Urs Grob 130b1744916fc98c191a9d30c1e46f3b5b72110fb3Jorg Pleumannimport java.security.KeyManagementException; 14dfaac167b5f6a48ca76cc76e237c548d496da036Urs Grobimport java.security.NoSuchAlgorithmException; 15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/** 17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Tests for <code>SSLSessionContext</code> class constructors and methods. 18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project@TestTargetClass(SSLSessionContext.class) 20f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpublic class SSLSessionContextTest extends TestCase { 21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 23dfaac167b5f6a48ca76cc76e237c548d496da036Urs Grob * @throws NoSuchAlgorithmException 240b1744916fc98c191a9d30c1e46f3b5b72110fb3Jorg Pleumann * @throws KeyManagementException 25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests javax.net.ssl.SSLSessionContex#getSessionCacheSize() 26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests javax.net.ssl.SSLSessionContex#setSessionCacheSize(int size) 27f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 28f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargets({ 29f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "getSessionCacheSize", 33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ), 35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 36f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 37f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 38f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "setSessionCacheSize", 39f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {int.class} 40f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 41f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project }) 420b1744916fc98c191a9d30c1e46f3b5b72110fb3Jorg Pleumann public final void test_sessionCacheSize() throws NoSuchAlgorithmException, KeyManagementException { 430b1744916fc98c191a9d30c1e46f3b5b72110fb3Jorg Pleumann SSLContext context = SSLContext.getInstance("TLS"); 440b1744916fc98c191a9d30c1e46f3b5b72110fb3Jorg Pleumann context.init(null, null, null); 454207d94cc9adf154018099c275de9518e596cf4aUrs Grob SSLSessionContext sc = context 46dfaac167b5f6a48ca76cc76e237c548d496da036Urs Grob .getClientSessionContext(); 47dfaac167b5f6a48ca76cc76e237c548d496da036Urs Grob sc.setSessionCacheSize(10); 48dfaac167b5f6a48ca76cc76e237c548d496da036Urs Grob assertEquals("10 wasn't returned", 10, sc.getSessionCacheSize()); 49dfaac167b5f6a48ca76cc76e237c548d496da036Urs Grob sc.setSessionCacheSize(5); 50dfaac167b5f6a48ca76cc76e237c548d496da036Urs Grob assertEquals("5 wasn't returned", 5, sc.getSessionCacheSize()); 51f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 52f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 53f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project sc.setSessionCacheSize(-1); 54f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalArgumentException wasn't thrown"); 55f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalArgumentException iae) { 56f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //expected 57f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 58f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 59f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 60f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 61dfaac167b5f6a48ca76cc76e237c548d496da036Urs Grob * @throws NoSuchAlgorithmException 620b1744916fc98c191a9d30c1e46f3b5b72110fb3Jorg Pleumann * @throws KeyManagementException 63f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests javax.net.ssl.SSLSessionContex#getSessionTimeout() 64f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests javax.net.ssl.SSLSessionContex#setSessionTimeout(int seconds) 65f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 66f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargets({ 67f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 68f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 69f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 70f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "getSessionTimeout", 71f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 72f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ), 73f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 74f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 75f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 76f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "setSessionTimeout", 77f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {int.class} 78f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 79f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project }) 800b1744916fc98c191a9d30c1e46f3b5b72110fb3Jorg Pleumann public final void test_sessionTimeout() throws NoSuchAlgorithmException, KeyManagementException { 810b1744916fc98c191a9d30c1e46f3b5b72110fb3Jorg Pleumann SSLContext context = SSLContext.getInstance("TLS"); 820b1744916fc98c191a9d30c1e46f3b5b72110fb3Jorg Pleumann context.init(null, null, null); 834207d94cc9adf154018099c275de9518e596cf4aUrs Grob SSLSessionContext sc = context 84dfaac167b5f6a48ca76cc76e237c548d496da036Urs Grob .getClientSessionContext(); 85dfaac167b5f6a48ca76cc76e237c548d496da036Urs Grob sc.setSessionTimeout(100); 86dfaac167b5f6a48ca76cc76e237c548d496da036Urs Grob assertEquals("100 wasn't returned", 100, sc.getSessionTimeout()); 87dfaac167b5f6a48ca76cc76e237c548d496da036Urs Grob sc.setSessionTimeout(5000); 88dfaac167b5f6a48ca76cc76e237c548d496da036Urs Grob assertEquals("5000 wasn't returned", 5000, sc.getSessionTimeout()); 89f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 90f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 91f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project sc.setSessionTimeout(-1); 92f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalArgumentException wasn't thrown"); 93f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalArgumentException iae) { 94f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //expected 95f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 96f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 97f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 98f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 99dfaac167b5f6a48ca76cc76e237c548d496da036Urs Grob * @throws NoSuchAlgorithmException 1000b1744916fc98c191a9d30c1e46f3b5b72110fb3Jorg Pleumann * @throws KeyManagementException 101f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests javax.net.ssl.SSLSessionContex#getSession(byte[] sessionId) 102f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 103f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 104f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 105f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 106f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "getSession", 107f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {byte[].class} 108f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 1090b1744916fc98c191a9d30c1e46f3b5b72110fb3Jorg Pleumann public final void test_getSession() throws NoSuchAlgorithmException, KeyManagementException { 1100b1744916fc98c191a9d30c1e46f3b5b72110fb3Jorg Pleumann SSLContext context = SSLContext.getInstance("TLS"); 1110b1744916fc98c191a9d30c1e46f3b5b72110fb3Jorg Pleumann context.init(null, null, null); 1124207d94cc9adf154018099c275de9518e596cf4aUrs Grob SSLSessionContext sc = context 113dfaac167b5f6a48ca76cc76e237c548d496da036Urs Grob .getClientSessionContext(); 114f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 115dfaac167b5f6a48ca76cc76e237c548d496da036Urs Grob sc.getSession(null); 116dfaac167b5f6a48ca76cc76e237c548d496da036Urs Grob } catch (NullPointerException e) { 117dfaac167b5f6a48ca76cc76e237c548d496da036Urs Grob // expected 118f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 119dfaac167b5f6a48ca76cc76e237c548d496da036Urs Grob assertNull(sc.getSession(new byte[5])); 120f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 121f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 122f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 123dfaac167b5f6a48ca76cc76e237c548d496da036Urs Grob * @throws NoSuchAlgorithmException 1240b1744916fc98c191a9d30c1e46f3b5b72110fb3Jorg Pleumann * @throws KeyManagementException 125f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests javax.net.ssl.SSLSessionContex#getIds() 126f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 127f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 128f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 129f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 130f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "getIds", 131f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 132f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 1330b1744916fc98c191a9d30c1e46f3b5b72110fb3Jorg Pleumann public final void test_getIds() throws NoSuchAlgorithmException, KeyManagementException { 1340b1744916fc98c191a9d30c1e46f3b5b72110fb3Jorg Pleumann SSLContext context = SSLContext.getInstance("TLS"); 1350b1744916fc98c191a9d30c1e46f3b5b72110fb3Jorg Pleumann context.init(null, null, null); 1364207d94cc9adf154018099c275de9518e596cf4aUrs Grob SSLSessionContext sc = context 137dfaac167b5f6a48ca76cc76e237c548d496da036Urs Grob .getClientSessionContext(); 138dfaac167b5f6a48ca76cc76e237c548d496da036Urs Grob assertFalse(sc.getIds().hasMoreElements()); 139f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 140f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 141f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project}