1 package club.wpia.gigi.pages.account;
3 import static org.hamcrest.CoreMatchers.*;
4 import static org.junit.Assert.*;
6 import java.io.IOException;
7 import java.security.GeneralSecurityException;
8 import java.security.KeyPair;
10 import org.junit.Test;
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;
18 public class TestCertificateRequest extends ClientTest {
20 KeyPair kp = generateKeypair();
22 AuthorizationContext ac;
24 public TestCertificateRequest() throws GeneralSecurityException, IOException, GigiApiException {
25 ac = new AuthorizationContext(u, u);
30 public void testIssuingOtherName() throws Exception {
32 new CertificateRequest(ac, generatePEMCSR(kp, "CN=hansi")).draft();
34 } catch (GigiApiException e) {
35 assertThat(e.getMessage(), containsString("name you entered was invalid"));
40 public void testIssuingDefault() throws Exception {
41 new CertificateRequest(ac, generatePEMCSR(kp, "CN=" + CertificateRequest.DEFAULT_CN + ",EMAIL=" + email)).draft();
45 public void testIssuingRealName() throws Exception {
46 new CertificateRequest(ac, generatePEMCSR(kp, "CN=a b,EMAIL=" + email)).draft();
50 public void testIssuingModifiedName() throws Exception {
52 new CertificateRequest(ac, generatePEMCSR(kp, "CN=a ab")).draft();
54 } catch (GigiApiException e) {
55 assertThat(e.getMessage(), containsString("name you entered was invalid"));
60 // TODO annotate that this depends on default config
62 public void testCodesignModifiedName() throws Exception {
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);
69 } catch (GigiApiException e) {
70 assertThat(e.getMessage(), containsString("does not match the details"));
75 // TODO annotate that this depends on default config
77 public void testCodesignNoPermModifiedName() throws Exception {
79 CertificateRequest cr = new CertificateRequest(ac, generatePEMCSR(kp, "CN=a ab"));
80 cr.update("name", "SHA512", "code-a", null, null, "email:" + email);
83 } catch (GigiApiException e) {
84 assertThat(e.getMessage(), containsString("Certificate Profile is invalid."));