• Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements.  See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License.  You may obtain a copy of the License at
8  *
9  *   http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 /**
19 * @author Alexander V. Astapchuk
20 * @version $Revision$
21 */
22 
23 package org.apache.harmony.security.tests.java.security;
24 
25 import java.security.CodeSigner;
26 import java.security.Timestamp;
27 import java.security.cert.CertPath;
28 import java.util.Date;
29 
30 import org.apache.harmony.security.tests.support.TestCertUtils;
31 
32 import junit.framework.TestCase;
33 
34 /**
35  * Unit test for CodeSigner.
36  */
37 public class CodeSignerTest extends TestCase {
38     private CertPath cpath = TestCertUtils.genCertPath(3, 0);
39     private Date now = new Date();
40 
41     private Timestamp ts = new Timestamp(now, cpath);
42 
43     /**
44      * must throw NPE if signerCertPath is null
45      */
testCodeSigner_00()46     public void testCodeSigner_00() {
47         try {
48             new CodeSigner(null, ts);
49             fail("must not accept null");
50         } catch (NullPointerException ex) {
51             /* it's ok */
52         }
53     }
54 
55     /**
56      * timestamp can be null
57      */
testCodeSigner_01()58     public final void testCodeSigner_01() {
59         try {
60             CodeSigner cs = new CodeSigner(cpath, null);
61             assertNotNull(cs);
62         } catch (Exception e) {
63             fail("Unexpected exception");
64         }
65     }
66 
67     /**
68      * Not null parameters
69      */
testCodeSigner_02()70     public final void testCodeSigner_02() {
71         try {
72             CodeSigner cs = new CodeSigner(cpath, ts);
73             assertNotNull(cs);
74         } catch (Exception e) {
75             fail("Unexpected exception");
76         }
77     }
78 
79     /**
80      * Test various assertions about equals()
81      */
testEqualsObject()82     public final void testEqualsObject() {
83 
84         CodeSigner one = new CodeSigner(cpath, ts);
85         CodeSigner two = new CodeSigner(cpath, ts);
86         CodeSigner three = new CodeSigner(cpath, null);
87 
88         CertPath cpath2 = TestCertUtils.genCertPath(5, 3);
89         CodeSigner four = new CodeSigner(cpath2, null);
90 
91         assertTrue(one.equals(one));
92         assertTrue(one.equals(two));
93         assertTrue(two.equals(one));
94         assertFalse(one.equals(three));
95         assertFalse(three.equals(one));
96         assertTrue(three.equals(three));
97         // different CertPaths
98         assertFalse( three.equals(four));
99         // special cases
100         assertFalse( one.equals(null) );
101         assertFalse( one.equals(new Object()) );
102     }
103 
104     /**
105      * Tests CodeSigner.getSignerCertPath()
106      */
testGetSignerCertPath()107     public void testGetSignerCertPath() {
108         assertSame(new CodeSigner(cpath, null).getSignerCertPath(), cpath);
109     }
110 
111     /**
112      * Tests CodeSigner.getTimeStamp()
113      */
testGetTimestamp()114     public void testGetTimestamp() {
115         assertNull(new CodeSigner(cpath, null).getTimestamp());
116         assertSame(new CodeSigner(cpath, ts).getTimestamp(), ts);
117     }
118 
119     /**
120      * Tests CodeSigner.toString()
121      */
testToString()122     public void testToString() {
123         assertTrue(new CodeSigner(cpath, null).toString().contains(""));
124         assertTrue(new CodeSigner(cpath, ts).toString().contains(""));
125 
126         assertTrue(new CodeSigner(cpath, null).toString().contains("Signer"));
127         assertTrue(new CodeSigner(cpath, ts).toString().contains(ts.toString()));
128     }
129 
130     /**
131      * Tests CodeSigner.hashCode()
132      */
testHashCode()133     public void testHashCode() {
134         CodeSigner cs1 = new CodeSigner(cpath, ts);
135         CodeSigner cs2 = new CodeSigner(cpath, ts);
136         CodeSigner cs3 = new CodeSigner(cpath, null);
137 
138         assertTrue(cs1.hashCode() == cs2.hashCode());
139         assertTrue(cs2.hashCode() != cs3.hashCode());
140     }
141 
142 }
143