1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/* 2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Copyright (C) 2007 The Android Open Source Project 3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * you may not use this file except in compliance with the License. 6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * You may obtain a copy of the License at 7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * See the License for the specific language governing permissions and 14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * limitations under the License. 15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage tests.api.javax.net.ssl; 17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport javax.net.ssl.KeyManagerFactorySpi; 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport javax.net.ssl.KeyStoreBuilderParameters; 20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.KeyStore; 21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.ArrayList; 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.List; 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport junit.framework.TestCase; 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class KeyStoreBuilderParametersTest extends TestCase { 27f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 29229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * javax.net.ssl.KeyStoreBuilderParameters#KeyStoreBuilderParameters(KeyStore.Builder builder) 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_Constructor01() { 324ccd262b321e206768f652aff1507d4e1258c007Brian Carlstrom // Null parameter 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 344ccd262b321e206768f652aff1507d4e1258c007Brian Carlstrom new KeyStoreBuilderParameters((KeyStore.Builder) null); 354ccd262b321e206768f652aff1507d4e1258c007Brian Carlstrom fail(); 364ccd262b321e206768f652aff1507d4e1258c007Brian Carlstrom } catch (NullPointerException expected) { 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 38f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 394ccd262b321e206768f652aff1507d4e1258c007Brian Carlstrom // Not null parameter 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project KeyStore.ProtectionParameter pp = new ProtectionParameterImpl(); 414ccd262b321e206768f652aff1507d4e1258c007Brian Carlstrom KeyStore.Builder bld = KeyStore.Builder.newInstance("testType", null, pp); 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNotNull("Null object KeyStore.Builder", bld); 434ccd262b321e206768f652aff1507d4e1258c007Brian Carlstrom KeyStoreBuilderParameters ksp = new KeyStoreBuilderParameters(bld); 444ccd262b321e206768f652aff1507d4e1258c007Brian Carlstrom assertNotNull(ksp.getParameters()); 45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 46f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 48229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * javax.net.ssl.KeyStoreBuilderParameters#KeyStoreBuilderParameters(List parameters) 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_Constructor02() { 51f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 524ccd262b321e206768f652aff1507d4e1258c007Brian Carlstrom // Null parameter 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 5491c86f1d5711bbf6ce779a3d3ad5d4793fe886eaBrian Carlstrom KeyStoreBuilderParameters ksp = new KeyStoreBuilderParameters((List) null); 554ccd262b321e206768f652aff1507d4e1258c007Brian Carlstrom fail(); 564ccd262b321e206768f652aff1507d4e1258c007Brian Carlstrom } catch (NullPointerException expected) { 57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 58f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 594ccd262b321e206768f652aff1507d4e1258c007Brian Carlstrom // Empty parameter 600c131a2ca38465b7d1df4eaee63ac73ce4d5986dBrian Carlstrom List lsEmpty = new ArrayList<String>(); 61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project KeyStoreBuilderParameters ksp = new KeyStoreBuilderParameters(lsEmpty); 634ccd262b321e206768f652aff1507d4e1258c007Brian Carlstrom fail(); 644ccd262b321e206768f652aff1507d4e1258c007Brian Carlstrom } catch (IllegalArgumentException expected) { 65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 66f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 674ccd262b321e206768f652aff1507d4e1258c007Brian Carlstrom // Not null parameter 680c131a2ca38465b7d1df4eaee63ac73ce4d5986dBrian Carlstrom List lsFiled = new ArrayList<String>(); 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project lsFiled.add("Parameter1"); 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project lsFiled.add("Parameter2"); 714ccd262b321e206768f652aff1507d4e1258c007Brian Carlstrom new KeyStoreBuilderParameters(lsFiled); 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 73f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 75229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * javax.net.ssl.KeyStoreBuilderParameters#getParameters() 76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_getParameters() { 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String[] param = {"Parameter1", "Parameter2", "Parameter3"}; 790c131a2ca38465b7d1df4eaee63ac73ce4d5986dBrian Carlstrom List ls = new ArrayList<String>(); 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < param.length; i++) { 81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ls.add(param[i]); 82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project KeyStoreBuilderParameters ksp = new KeyStoreBuilderParameters(ls); 844ccd262b321e206768f652aff1507d4e1258c007Brian Carlstrom List res_list = ksp.getParameters(); 85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 864ccd262b321e206768f652aff1507d4e1258c007Brian Carlstrom res_list.add("test"); 874ccd262b321e206768f652aff1507d4e1258c007Brian Carlstrom fail(); 884ccd262b321e206768f652aff1507d4e1258c007Brian Carlstrom } catch (UnsupportedOperationException expected) { 894ccd262b321e206768f652aff1507d4e1258c007Brian Carlstrom } 904ccd262b321e206768f652aff1507d4e1258c007Brian Carlstrom Object[] res = res_list.toArray(); 914ccd262b321e206768f652aff1507d4e1258c007Brian Carlstrom assertEquals(res.length, param.length); 924ccd262b321e206768f652aff1507d4e1258c007Brian Carlstrom for (int i = 0; i < res.length; i++) { 934ccd262b321e206768f652aff1507d4e1258c007Brian Carlstrom assertEquals(param[i], res[i]); 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 96f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 974ccd262b321e206768f652aff1507d4e1258c007Brian Carlstrom private static class ProtectionParameterImpl implements KeyStore.ProtectionParameter { 984ccd262b321e206768f652aff1507d4e1258c007Brian Carlstrom private ProtectionParameterImpl() {} 99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 102