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