ProviderServiceTest.java revision f33eae7e84eb6d3b0f4e86b59605bb3de73009f3
1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/* 2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Licensed to the Apache Software Foundation (ASF) under one or more 3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * contributor license agreements. See the NOTICE file distributed with 4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * this work for additional information regarding copyright ownership. 5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0 6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * (the "License"); you may not use this file except in compliance with 7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the License. You may obtain a copy of the License at 8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * See the License for the specific language governing permissions and 15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * limitations under the License. 16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/** 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @author Boris V. Kuznetsov 20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @version $Revision$ 21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage org.apache.harmony.security.tests.java.security; 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport dalvik.annotation.TestTargetClass; 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport dalvik.annotation.TestTargets; 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport dalvik.annotation.TestLevel; 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport dalvik.annotation.TestTargetNew; 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.InvalidParameterException; 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.Provider; 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.Provider.Service; 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.NoSuchAlgorithmException; 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.HashMap; 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.List; 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Map; 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.apache.harmony.security.tests.support.RandomImpl; 39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport junit.framework.TestCase; 41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project@TestTargetClass(Service.class) 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/** 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Tests for <code>Provider.Service</code> constructor and methods 44f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class ProviderServiceTest extends TestCase { 47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "", 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "Service", 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {java.security.Provider.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.util.List.class, java.util.Map.class} 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ) 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testService() { 55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Provider p = new MyProvider(); 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Provider.Service(null, "type", "algorithm", "className", null, 58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project null); 59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("provider is null: No expected NullPointerException"); 60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Provider.Service(p, null, "algorithm", "className", null, null); 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("type is null: No expected NullPointerException"); 65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Provider.Service(p, "type", null, "className", null, null); 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("algorithm is null: No expected NullPointerException"); 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Provider.Service(p, "type", "algorithm", null, null, null); 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("className is null: No expected NullPointerException"); 75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Provider.Service s = new Provider.Service(p, "type", "algorithm", 79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "className", null, null); 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (!s.getType().equals("type")) { 82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("getType() failed"); 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (!s.getAlgorithm().equals("algorithm")) { 85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("getAlgorithm() failed"); 86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (s.getProvider() != p) { 88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("getProvider() failed"); 89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (!s.getClassName().equals("className")) { 91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("getClassName() failed"); 92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (!s.supportsParameter(new Object())) { 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("supportsParameter() failed"); 95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "", 101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "getAttribute", 102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {java.lang.String.class} 103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ) 104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testGetAttribute() { 105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Provider p = new MyProvider(); 106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Provider.Service s = new Provider.Service(p, "type", "algorithm", 107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "className", null, null); 108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project s.getAttribute(null); 110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("No expected NullPointerException"); 111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (s.getAttribute("aaa") != null) { 115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("getAttribute(aaa) failed"); 116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project HashMap<String, String> hm = new HashMap<String, String>(); 119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hm.put("attribute", "value"); 120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hm.put("KeySize", "1024"); 121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hm.put("AAA", "BBB"); 122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project s = new Provider.Service(p, "type", "algorithm", "className", null, hm); 124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (s.getAttribute("bbb") != null) { 125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("getAttribute(bbb) failed"); 126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (!s.getAttribute("attribute").equals("value")) { 128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("getAttribute(attribute) failed"); 129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (!s.getAttribute("KeySize").equals("1024")) { 131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("getAttribute(KeySize) failed"); 132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "", 138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "newInstance", 139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {java.lang.Object.class} 140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ) 1412f9e468ed4985edfd5e351faf2089d91e561e41dElliott Hughes public void testNewInstance() throws Exception { 142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Provider p = new MyProvider(); 143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Provider.Service s = new Provider.Service(p, "SecureRandom", 1442f9e468ed4985edfd5e351faf2089d91e561e41dElliott Hughes "algorithm", 1452f9e468ed4985edfd5e351faf2089d91e561e41dElliott Hughes "org.apache.harmony.security.tests.support.RandomImpl", 1462f9e468ed4985edfd5e351faf2089d91e561e41dElliott Hughes null, null); 147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1482f9e468ed4985edfd5e351faf2089d91e561e41dElliott Hughes Object o = s.newInstance(null); 1492f9e468ed4985edfd5e351faf2089d91e561e41dElliott Hughes assertTrue("incorrect instance", o instanceof RandomImpl); 150f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project o = s.newInstance(new Object()); 153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("No expected NoSuchAlgorithmException"); 154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NoSuchAlgorithmException e) { 155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 156f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "", 162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "getAlgorithm", 163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {} 164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ) 165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testGetAlgorithm() { 166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Provider p = new MyProvider(); 167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Provider.Service s1 = new Provider.Service(p, "type", "algorithm", 168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "className", null, null); 169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(s1.getAlgorithm().equals("algorithm")); 170f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Provider.Service s2 = new Provider.Service(p, "SecureRandom", 172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "algorithm", "tests.java.security.support.RandomImpl", null, 173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project null); 174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(s2.getAlgorithm().equals("algorithm")); 175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "", 180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "getClassName", 181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {} 182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ) 183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testGetClassName() { 184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Provider p = new MyProvider(); 185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Provider.Service s1 = new Provider.Service(p, "type", "algorithm", 186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "className", null, null); 187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(s1.getClassName().equals("className")); 188f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Provider.Service s2 = new Provider.Service(p, "SecureRandom", 190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "algorithm", "tests.java.security.support.RandomImpl", null, 191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project null); 192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(s2.getClassName().equals("tests.java.security.support.RandomImpl")); 193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "", 198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "getProvider", 199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {} 200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ) 201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testGetProvider() { 202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Provider p = new MyProvider(); 203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Provider.Service s1 = new Provider.Service(p, "type", "algorithm", 204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "className", null, null); 205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(s1.getProvider() == p); 206f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Provider.Service s2 = new Provider.Service(p, "SecureRandom", 208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "algorithm", "tests.java.security.support.RandomImpl", null, 209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project null); 210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(s2.getProvider() == p); 211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "", 216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "getType", 217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {} 218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ) 219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testGetType() { 220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Provider p = new MyProvider(); 221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Provider.Service s1 = new Provider.Service(p, "type", "algorithm", 222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "className", null, null); 223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(s1.getType().equals("type")); 224f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Provider.Service s2 = new Provider.Service(p, "SecureRandom", 226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "algorithm", "tests.java.security.support.RandomImpl", null, 227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project null); 228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(s2.getType().equals("SecureRandom")); 229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "", 234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "supportsParameter", 235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {java.lang.Object.class} 236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ) 237adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testSupportsParameter() { 238adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Provider p = new MyProvider(); 239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Provider.Service s1 = new Provider.Service(p, "type", "algorithm", 240adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "className", null, null); 241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(s1.supportsParameter(null)); 242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(s1.supportsParameter(new Object())); 243adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 244adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 245adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 246adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 247adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "", 248adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "toString", 249adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {} 250adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ) 251adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testToString() { 252adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Provider p = new MyProvider(); 253adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Provider.Service s1 = new Provider.Service(p, "type", "algorithm", 254adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "className", null, null); 255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project s1.toString(); 256f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 257adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Provider.Service s2 = new Provider.Service(p, "SecureRandom", 258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "algorithm", "tests.java.security.support.RandomImpl", null, 259adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project null); 260adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project s2.toString(); 261adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 262adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 263adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project class MyProvider extends Provider { 264adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project MyProvider() { 265adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project super("MyProvider", 1.0, "Provider for testing"); 266adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project put("MessageDigest.SHA-1", "SomeClassName"); 267adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 268f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 269adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 270f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 271adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project class MyService extends Provider.Service { 272adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 273adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public MyService(Provider provider, String type, String algorithm, 274adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String className, List<String> aliases, 275adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Map<String, String> attributes) { 276adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project super(provider, type, algorithm, className, aliases, attributes); 277adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // TODO Auto-generated constructor stub 278adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 279f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 280adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 281adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean supportsParameter(Object parameter) { 282adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (parameter.getClass() == String.class) { 283adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return true; 284adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 285adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return false; 286adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 287adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 288adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 289