1package tests.api.javax.net.ssl;
2
3import java.io.ByteArrayInputStream;
4import java.security.cert.CertificateException;
5import java.security.cert.CertificateFactory;
6import java.security.cert.X509Certificate;
7import javax.net.ssl.X509TrustManager;
8import junit.framework.TestCase;
9import org.apache.harmony.security.tests.support.cert.TestUtils;
10import org.apache.harmony.xnet.tests.support.X509TrustManagerImpl;
11
12public class X509TrustManagerTest extends TestCase {
13
14    private X509Certificate[] setX509Certificate() throws Exception {
15        CertificateFactory certFact = CertificateFactory.getInstance("X.509");
16        X509Certificate pemCert = (X509Certificate) certFact.generateCertificate(
17                new ByteArrayInputStream(TestUtils.getX509Certificate_v3()));
18        X509Certificate[] xcert = { pemCert };
19        return xcert;
20    }
21
22    private X509Certificate[] setInvalid() throws Exception {
23        CertificateFactory certFact = CertificateFactory.getInstance("X.509");
24        X509Certificate pemCert = (X509Certificate) certFact.generateCertificate(
25                new ByteArrayInputStream(TestUtils.getX509Certificate_v1()));
26        X509Certificate[] xcert = { pemCert };
27        return xcert;
28    }
29
30    public void test_checkClientTrusted_01() throws Exception {
31        X509TrustManagerImpl xtm = new X509TrustManagerImpl();
32        X509Certificate[] xcert = null;
33
34        try {
35            xtm.checkClientTrusted(xcert, "SSL");
36            fail("IllegalArgumentException wasn't thrown");
37        } catch (IllegalArgumentException expected) {
38        }
39
40        xcert = new X509Certificate[0];
41        try {
42            xtm.checkClientTrusted(xcert, "SSL");
43            fail("IllegalArgumentException wasn't thrown");
44        } catch (IllegalArgumentException expected) {
45        }
46
47        xcert = setX509Certificate();
48        try {
49            xtm.checkClientTrusted(xcert, null);
50            fail("IllegalArgumentException wasn't thrown");
51        } catch (IllegalArgumentException expected) {
52        }
53
54        try {
55            xtm.checkClientTrusted(xcert, "");
56            fail("IllegalArgumentException wasn't thrown");
57        } catch (IllegalArgumentException expected) {
58        }
59    }
60
61    /**
62     * javax.net.ssl.X509TrustManager#checkClientTrusted(X509Certificate[] chain, String authType)
63     */
64    public void test_checkClientTrusted_02() throws Exception {
65        X509TrustManagerImpl xtm = new X509TrustManagerImpl();
66        X509Certificate[] xcert = setInvalid();
67
68        try {
69            xtm.checkClientTrusted(xcert, "SSL");
70            fail("CertificateException wasn't thrown");
71        } catch (CertificateException expected) {
72        }
73    }
74
75    /**
76     * javax.net.ssl.X509TrustManager#checkClientTrusted(X509Certificate[] chain, String authType)
77     */
78    public void test_checkClientTrusted_03() throws Exception {
79        X509TrustManagerImpl xtm = new X509TrustManagerImpl();
80        X509Certificate[] xcert = setX509Certificate();
81        xtm.checkClientTrusted(xcert, "SSL");
82    }
83
84    /**
85     * javax.net.ssl.X509TrustManager#checkServerTrusted(X509Certificate[] chain, String authType)
86     */
87    public void test_checkServerTrusted_01() throws Exception {
88        X509TrustManagerImpl xtm = new X509TrustManagerImpl();
89        X509Certificate[] xcert = null;
90
91        try {
92            xtm.checkServerTrusted(xcert, "SSL");
93            fail("IllegalArgumentException wasn't thrown");
94        } catch (IllegalArgumentException expected) {
95        }
96
97        xcert = new X509Certificate[0];
98        try {
99            xtm.checkServerTrusted(xcert, "SSL");
100            fail("IllegalArgumentException wasn't thrown");
101        } catch (IllegalArgumentException expected) {
102        }
103
104        xcert = setX509Certificate();
105        try {
106            xtm.checkServerTrusted(xcert, null);
107            fail("IllegalArgumentException wasn't thrown");
108        } catch (IllegalArgumentException expected) {
109        }
110
111        try {
112            xtm.checkServerTrusted(xcert, "");
113            fail("IllegalArgumentException wasn't thrown");
114        } catch (IllegalArgumentException expected) {
115        }
116    }
117
118    /**
119     * javax.net.ssl.X509TrustManager#checkServerTrusted(X509Certificate[] chain, String authType)
120     */
121    public void test_checkServerTrusted_02() throws Exception {
122        X509TrustManagerImpl xtm = new X509TrustManagerImpl();
123        X509Certificate[] xcert = setInvalid();
124
125        try {
126            xtm.checkServerTrusted(xcert, "SSL");
127            fail("CertificateException wasn't thrown");
128        } catch (CertificateException expected) {
129        }
130    }
131
132    /**
133     * javax.net.ssl.X509TrustManager#checkServerTrusted(X509Certificate[] chain, String authType)
134     */
135    public void test_checkServerTrusted_03() throws Exception {
136        X509TrustManagerImpl xtm = new X509TrustManagerImpl();
137        X509Certificate[] xcert = setX509Certificate();
138        xtm.checkServerTrusted(xcert, "SSL");
139    }
140
141    /**
142     * javax.net.ssl.X509TrustManager#getAcceptedIssuers()
143     */
144    public void test_getAcceptedIssuers() throws Exception {
145        X509TrustManagerImpl xtm = new X509TrustManagerImpl();
146        assertNotNull(xtm.getAcceptedIssuers());
147    }
148
149}
150