]> WPIA git - gigi.git/blob - tests/org/cacert/gigi/pages/account/TestCertificateRequest.java
fix: ResultSet.getDate is often wrong as it fetches day-precision times
[gigi.git] / tests / org / cacert / gigi / pages / account / TestCertificateRequest.java
1 package org.cacert.gigi.pages.account;
2
3 import static org.hamcrest.CoreMatchers.*;
4 import static org.junit.Assert.*;
5
6 import java.io.IOException;
7 import java.security.GeneralSecurityException;
8 import java.security.KeyPair;
9
10 import org.cacert.gigi.GigiApiException;
11 import org.cacert.gigi.dbObjects.Group;
12 import org.cacert.gigi.pages.account.certs.CertificateRequest;
13 import org.cacert.gigi.testUtils.ClientTest;
14 import org.cacert.gigi.util.AuthorizationContext;
15 import org.junit.Test;
16
17 public class TestCertificateRequest extends ClientTest {
18
19     KeyPair kp = generateKeypair();
20
21     AuthorizationContext ac;
22
23     public TestCertificateRequest() throws GeneralSecurityException, IOException, GigiApiException {
24         ac = new AuthorizationContext(u, u);
25         makeAssurer(u.getId());
26     }
27
28     @Test
29     public void testIssuingOtherName() throws Exception {
30         try {
31             new CertificateRequest(ac, generatePEMCSR(kp, "CN=hansi")).draft();
32             fail();
33         } catch (GigiApiException e) {
34             assertThat(e.getMessage(), containsString("name you entered was invalid"));
35         }
36     }
37
38     @Test
39     public void testIssuingDefault() throws Exception {
40         new CertificateRequest(ac, generatePEMCSR(kp, "CN=" + CertificateRequest.DEFAULT_CN + ",EMAIL=" + email)).draft();
41     }
42
43     @Test
44     public void testIssuingRealName() throws Exception {
45         new CertificateRequest(ac, generatePEMCSR(kp, "CN=a b,EMAIL=" + email)).draft();
46     }
47
48     @Test
49     public void testIssuingModifiedName() throws Exception {
50         try {
51             new CertificateRequest(ac, generatePEMCSR(kp, "CN=a ab")).draft();
52             fail();
53         } catch (GigiApiException e) {
54             assertThat(e.getMessage(), containsString("name you entered was invalid"));
55         }
56
57     }
58
59     // TODO annotate that this depends on default config
60     @Test
61     public void testCodesignModifiedName() throws Exception {
62         try {
63             u.grantGroup(getSupporter(), Group.CODESIGNING);
64             CertificateRequest cr = new CertificateRequest(ac, generatePEMCSR(kp, "CN=a ab"));
65             cr.update("name", "SHA512", "code-a", null, null, "email:" + email);
66             cr.draft();
67             fail();
68         } catch (GigiApiException e) {
69             assertThat(e.getMessage(), containsString("does not match the details"));
70         }
71
72     }
73
74     // TODO annotate that this depends on default config
75     @Test
76     public void testCodesignNoPermModifiedName() throws Exception {
77         try {
78             CertificateRequest cr = new CertificateRequest(ac, generatePEMCSR(kp, "CN=a ab"));
79             cr.update("name", "SHA512", "code-a", null, null, "email:" + email);
80             cr.draft();
81             fail();
82         } catch (GigiApiException e) {
83             assertThat(e.getMessage(), containsString("Certificate Profile is invalid."));
84         }
85
86     }
87 }