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 Vera Y. Petrashkova
20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project* @version $Revision$
21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project*/
22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage tests.security.cert;
24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport junit.framework.TestCase;
26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.cert.CertPath;
28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.cert.CertPathValidatorException;
29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.cert.Certificate;
30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Iterator;
31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.List;
32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.StringTokenizer;
33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Vector;
34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/**
37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Tests for <code>CertPathValidatorException</code> class constructors and
38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * methods.
39f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes *
40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */
41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class CertPathValidatorExceptionTest extends TestCase {
42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    private static String[] msgs = {
44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            "",
45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            "Check new message",
46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            "Check new message Check new message Check new message Check new message Check new message" };
47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    private static Throwable tCause = new Throwable("Throwable for exception");
49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Test for <code>CertPathValidatorException()</code> constructor
52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Assertion: constructs CertPathValidatorException with no detail message
53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testCertPathValidatorException01() {
55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        CertPathValidatorException tE = new CertPathValidatorException();
56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNull("getMessage() must return null.", tE.getMessage());
57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNull("getCause() must return null", tE.getCause());
58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Test for <code>CertPathValidatorException(String)</code> constructor
62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Assertion: constructs CertPathValidatorException with detail message msg.
63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Parameter <code>msg</code> is not null.
64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testCertPathValidatorException02() {
66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        CertPathValidatorException tE;
67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int i = 0; i < msgs.length; i++) {
68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            tE = new CertPathValidatorException(msgs[i]);
69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertEquals("getMessage() must return: ".concat(msgs[i]), tE
70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    .getMessage(), msgs[i]);
71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertNull("getCause() must return null", tE.getCause());
72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Test for <code>CertPathValidatorException(String)</code> constructor
77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Assertion: constructs CertPathValidatorException when <code>msg</code>
78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * is null
79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testCertPathValidatorException03() {
81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String msg = null;
82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        CertPathValidatorException tE = new CertPathValidatorException(msg);
83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNull("getMessage() must return null.", tE.getMessage());
84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNull("getCause() must return null", tE.getCause());
85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Test for <code>CertPathValidatorException(Throwable)</code> constructor
89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Assertion: constructs CertPathValidatorException when <code>cause</code>
90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * is null
91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testCertPathValidatorException04() {
93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Throwable cause = null;
94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        CertPathValidatorException tE = new CertPathValidatorException(cause);
95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNull("getMessage() must return null.", tE.getMessage());
96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNull("getCause() must return null", tE.getCause());
97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Test for <code>CertPathValidatorException(Throwable)</code> constructor
101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Assertion: constructs CertPathValidatorException when <code>cause</code>
102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * is not null
103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testCertPathValidatorException05() {
105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        CertPathValidatorException tE = new CertPathValidatorException(tCause);
106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (tE.getMessage() != null) {
107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            String toS = tCause.toString();
108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            String getM = tE.getMessage();
109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertTrue("getMessage() should contain ".concat(toS), (getM
110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    .indexOf(toS) != -1));
111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNotNull("getCause() must not return null", tE.getCause());
113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("getCause() must return ".concat(tCause.toString()), tE
114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .getCause(), tCause);
115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Test for <code>CertPathValidatorException(String, Throwable)</code>
119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * constructor Assertion: constructs CertPathValidatorException when
120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * <code>cause</code> is null <code>msg</code> is null
121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testCertPathValidatorException06() {
123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        CertPathValidatorException tE = new CertPathValidatorException(null,
124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                null);
125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNull("getMessage() must return null", tE.getMessage());
126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNull("getCause() must return null", tE.getCause());
127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Test for <code>CertPathValidatorException(String, Throwable)</code>
131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * constructor Assertion: constructs CertPathValidatorException when
132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * <code>cause</code> is null <code>msg</code> is not null
133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testCertPathValidatorException07() {
135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        CertPathValidatorException tE;
136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int i = 0; i < msgs.length; i++) {
137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            tE = new CertPathValidatorException(msgs[i], null);
138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertEquals("getMessage() must return: ".concat(msgs[i]), tE
139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    .getMessage(), msgs[i]);
140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertNull("getCause() must return null", tE.getCause());
141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Test for <code>CertPathValidatorException(String, Throwable)</code>
146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * constructor Assertion: constructs CertPathValidatorException when
147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * <code>cause</code> is not null <code>msg</code> is null
148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testCertPathValidatorException08() {
150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        CertPathValidatorException tE = new CertPathValidatorException(null,
151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                tCause);
152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        if (tE.getMessage() != null) {
153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            String toS = tCause.toString();
154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            String getM = tE.getMessage();
155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertTrue("getMessage() must should ".concat(toS), (getM
156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    .indexOf(toS) != -1));
157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNotNull("getCause() must not return null", tE.getCause());
159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("getCause() must return ".concat(tCause.toString()), tE
160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .getCause(), tCause);
161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Test for <code>CertPathValidatorException(String, Throwable)</code>
165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * constructor Assertion: constructs CertPathValidatorException when
166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * <code>cause</code> is not null <code>msg</code> is not null
167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testCertPathValidatorException09() {
169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        CertPathValidatorException tE;
170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int i = 0; i < msgs.length; i++) {
171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            tE = new CertPathValidatorException(msgs[i], tCause);
172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            String getM = tE.getMessage();
173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            String toS = tCause.toString();
174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            if (msgs[i].length() > 0) {
175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                assertTrue("getMessage() must contain ".concat(msgs[i]), getM
176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        .indexOf(msgs[i]) != -1);
177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                if (!getM.equals(msgs[i])) {
178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    assertTrue("getMessage() should contain ".concat(toS), getM
179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                            .indexOf(toS) != -1);
180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                }
181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            }
182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertNotNull("getCause() must not return null", tE.getCause());
183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertEquals("getCause() must return ".concat(tCause.toString()),
184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    tE.getCause(), tCause);
185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Test for
190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * <code>CertPathValidatorException(String, Throwable, CertPath, int)</code>
191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * constructor Assertion: constructs CertPathValidatorException when
192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * <code>cause</code> is null <code>msg</code> is null
193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * <code>certPath</code> is null <code>index</code> is -1
194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testCertPathValidatorException10() {
196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        CertPathValidatorException tE = new CertPathValidatorException(null,
197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                null, null, -1);
198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNull("getMessage() must return null", tE.getMessage());
199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNull("getCause() must return null", tE.getCause());
200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNull("getCertPath() must return null", tE.getCertPath());
201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("getIndex() must be -1", tE.getIndex(), -1);
202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Test for
206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * <code>CertPathValidatorException(String, Throwable, CertPath, int)</code>
207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * constructor Assertion: constructs CertPathValidatorException when
208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * <code>cause</code> is null <code>msg</code> is null
209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * <code>certPath</code> is null <code>index</code> not -1 throws:
210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * IllegalArgumentException
211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testCertPathValidatorException11() {
213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        int[] indx = { 0, 1, 100, Integer.MAX_VALUE, Integer.MIN_VALUE };
214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int j = 0; j < indx.length; j++) {
215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            for (int i = 0; i < msgs.length; i++) {
216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                try {
217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    new CertPathValidatorException(msgs[i], tCause, null, indx[j]);
218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    fail("Error. IllegalArgumentException was not thrown as expected. "
219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                            + " msg: "
220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                            + msgs[i]
221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                            + ", certPath is null and index is " + indx[j]);
222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                } catch (IllegalArgumentException e) {
223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                }
224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            }
225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Test for
230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * <code>CertPathValidatorException(String, Throwable, CertPath, int)</code>
231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * constructor Assertion: constructs CertPathValidatorException when
232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * <code>cause</code> not null <code>msg</code> not null
233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * <code>certPath</code> is null <code>index</code> is -1
234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testCertPathValidatorException12() {
236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        CertPathValidatorException tE;
237adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
238adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int i = 0; i < msgs.length; i++) {
239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            try {
240adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                tE = new CertPathValidatorException(msgs[i], tCause, null, -1);
241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                String getM = tE.getMessage();
242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                String toS = tCause.toString();
243adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                if (msgs[i].length() > 0) {
244adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    assertTrue("getMessage() must contain ".concat(msgs[i]),
245adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                            getM.indexOf(msgs[i]) != -1);
246adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    if (!getM.equals(msgs[i])) {
247adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        assertTrue("getMessage() should contain ".concat(toS),
248adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                                getM.indexOf(toS) != -1);
249adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    }
250adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                }
251adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                assertNotNull("getCause() must not return null", tE.getCause());
252adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                assertEquals("getCause() must return "
253adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        .concat(tCause.toString()), tE.getCause(), tCause);
254adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                assertNull("getCertPath() must return null", tE.getCertPath());
255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                assertEquals("getIndex() must return -1", tE.getIndex(), -1);
256adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            } catch (IndexOutOfBoundsException e) {
257adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                fail("Unexpected exception: " + e.toString()
258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        + " Parameters: msg: " + msgs[i]
259adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        + ", certPath is null and index is -1");
260adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            }
261adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
262adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
263adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
264adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
265adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Test for
266adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * <code>CertPathValidatorException(String, Throwable, CertPath, int)</code>
267adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * constructor Assertion: constructs CertPathValidatorException when
268adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * <code>cause</code> not null <code>msg</code> not null
269adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * <code>certPath</code> not null <code>index</code>< -1 || >=
270adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * certPath.getCertificates().size() throws: IndexOutOfBoundsException
271adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
272adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testCertPathValidatorException13() {
273adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        myCertPath mcp = new myCertPath("X.509", "");
274adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        CertPath cp = mcp.get("X.509");
275adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        int[] indx = { -2, -100, 0, 1, 100, Integer.MAX_VALUE,
276adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                Integer.MIN_VALUE };
277adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int j = 0; j < indx.length; j++) {
278adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            for (int i = 0; i < msgs.length; i++) {
279adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                try {
280adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    new CertPathValidatorException(msgs[i], tCause, cp, indx[j]);
281adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    fail("IndexOutOfBoundsException was not thrown as expected. "
282adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                            + " msg: "
283adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                            + msgs[i]
284adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                            + ", certPath is null and index is " + indx[j]);
285adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                } catch (IndexOutOfBoundsException e) {
286adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                }
287adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            }
288adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
289adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
290adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
291adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
292adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Test for
293adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * <code>CertPathValidatorException(String, Throwable, CertPath, int)</code>
294adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * constructor Assertion: constructs CertPathValidatorException when
295adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * <code>cause</code> not null <code>msg</code> not null
296adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * <code>certPath</code> not null <code>index</code><
297adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * certPath.getCertificates().size()
298adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
299adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testCertPathValidatorException14() {
300adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        CertPathValidatorException tE;
301adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        myCertPath mcp = new myCertPath("X.509", "");
302adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        CertPath cp = mcp.get("X.509");
303adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int i = 0; i < msgs.length; i++) {
304adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            try {
305adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                tE = new CertPathValidatorException(msgs[i], tCause, cp, -1);
306adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                String getM = tE.getMessage();
307adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                String toS = tCause.toString();
308adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                if (msgs[i].length() > 0) {
309adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    assertTrue("getMessage() must contain ".concat(msgs[i]),
310adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                            getM.indexOf(msgs[i]) != -1);
311adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    if (!getM.equals(msgs[i])) {
312adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        assertTrue("getMessage() should contain ".concat(toS),
313adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                                getM.indexOf(toS) != -1);
314adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    }
315adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                }
316adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                assertNotNull("getCause() must not return null", tE.getCause());
317adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                assertEquals("getCause() must return "
318adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        .concat(tCause.toString()), tE.getCause(), tCause);
319adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                assertNotNull("getCertPath() must not return null", tE
320adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        .getCertPath());
321adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                assertEquals(
322adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        "getCertPath() must return ".concat(cp.toString()), tE
323adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                                .getCertPath(), cp);
324adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                assertEquals("getIndex() must return -1", tE.getIndex(), -1);
325adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
326adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            } catch (IndexOutOfBoundsException e) {
327adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                fail("Unexpected IndexOutOfBoundsException was thrown. "
328adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        + e.toString());
329adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            }
330adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
331adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
332f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
333adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
334adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Test for <code>getCertPath()</code>. Returns the certification path
335adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * that was being validated when the exception was thrown.
336adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
337adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testCertPathValidatorException15() {
338adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        CertPathValidatorException tE = new CertPathValidatorException();
339adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNull("getCertPath() must return null.", tE.getCertPath());
340adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
341adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int i = 0; i < msgs.length; i++) {
342adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            tE = new CertPathValidatorException(msgs[i]);
343adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertNull("getCertPath() must return null ", tE.getCertPath());
344adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
345adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
346adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Throwable cause = null;
347adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        tE = new CertPathValidatorException(cause);
348adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNull("getCertPath() must return null.", tE.getCertPath());
349adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
350adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        tE = new CertPathValidatorException(tCause);
351adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNull("getCertPath() must return null.", tE.getCertPath());
352adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
353adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int i = 0; i < msgs.length; i++) {
354adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            tE = new CertPathValidatorException(msgs[i], tCause);
355adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertNull("getCertPath() must return null", tE.getCertPath());
356adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
357adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
358adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        tE = new CertPathValidatorException(null, null, null, -1);
359adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNull("getCertPath() must return null", tE.getCertPath());
360adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
361adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int i = 0; i < msgs.length; i++) {
362adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            try {
363adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                tE = new CertPathValidatorException(msgs[i], tCause, null, -1);
364adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                assertNull("getCertPath() must return null", tE.getCertPath());
365adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            } catch (IndexOutOfBoundsException e) {
366adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                fail("Unexpected exception: " + e.getMessage());
367adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            }
368adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
369adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
370adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        myCertPath mcp = new myCertPath("X.509", "");
371adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        CertPath cp = mcp.get("X.509");
372adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int i = 0; i < msgs.length; i++) {
373adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            try {
374adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                tE = new CertPathValidatorException(msgs[i], tCause, cp, -1);
375adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                assertNotNull("getCertPath() must not return null", tE
376adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        .getCertPath());
377adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                assertEquals(
378adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        "getCertPath() must return ".concat(cp.toString()), tE
379adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                                .getCertPath(), cp);
380adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            } catch (IndexOutOfBoundsException e) {
381adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                fail("Unexpected IndexOutOfBoundsException was thrown. "
382adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        + e.toString());
383adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            }
384adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
385adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
386adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
387adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
388adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Test for <code>getIndex()</code>. Returns the index of the certificate
389adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * in the certification path that caused the exception to be thrown. Note
390adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * that the list of certificates in a CertPath is zero based. If no index
391adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * has been set, -1 is returned.
392adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
393adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testCertPathValidatorException16() {
394adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        CertPathValidatorException tE = new CertPathValidatorException();
395adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("getIndex() must be equals -1", -1, tE.getIndex());
396adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
397adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int i = 0; i < msgs.length; i++) {
398adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            tE = new CertPathValidatorException(msgs[i]);
399adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertEquals("getIndex() must be equals -1", -1, tE.getIndex());
400adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
401adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
402adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Throwable cause = null;
403adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        tE = new CertPathValidatorException(cause);
404adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("getIndex() must be equals -1", -1, tE.getIndex());
405adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
406adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        tE = new CertPathValidatorException(tCause);
407adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("getIndex() must be equals -1", -1, tE.getIndex());
408adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
409adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int i = 0; i < msgs.length; i++) {
410adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            tE = new CertPathValidatorException(msgs[i], tCause);
411adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertEquals("getIndex() must be equals -1", -1, tE.getIndex());
412adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
413adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
414adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        tE = new CertPathValidatorException(null, null, null, -1);
415adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("getIndex() must be equals -1", -1, tE.getIndex());
416adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
417adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        myCertPath mcp = new myCertPath("X.509", "");
418adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        CertPath cp = mcp.get("X.509");
419adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int i = 0; i < msgs.length; i++) {
420adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            try {
421adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                tE = new CertPathValidatorException(msgs[i], tCause, cp, -1);
422adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                assertNotNull("getIndex() must not return null", tE
423adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        .getCertPath());
424adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                assertEquals(
425adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        "getIndex() must return ".concat(cp.toString()), tE
426adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                                .getCertPath(), cp);
427adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            } catch (IndexOutOfBoundsException e) {
428adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                fail("Unexpected IndexOutOfBoundsException was thrown. "
429adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        + e.getMessage());
430adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            }
431adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
432adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
433adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
434adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    class myCertPath extends CertPath {
435adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
436adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        private static final long serialVersionUID = 5871603047244722511L;
437adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
438adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public List<Certificate> getCertificates() {
439adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return new Vector<Certificate>();
440adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
441adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
442adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public byte[] getEncoded() {
443adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return new byte[0];
444adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
445adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
446adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public byte[] getEncoded(String s) {
447adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return new byte[0];
448adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
449adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
450adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public Iterator<String> getEncodings() {
451adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return (Iterator<String>) (new StringTokenizer("ss ss ss ss"));
452adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
453adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
454adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        protected myCertPath(String s) {
455adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            super(s);
456adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
457adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
458adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public CertPath get(String s) {
459adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return new myCertPath(s);
460adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
461adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
462adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public myCertPath(String s, String s1) {
463adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            super(s);
464adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
465adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
466adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
467adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project}
468adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
469adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
470