X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=tests%2Fclub%2Fwpia%2Fgigi%2Fpages%2Faccount%2FTestCertificateRequest.java;fp=tests%2Fclub%2Fwpia%2Fgigi%2Fpages%2Faccount%2FTestCertificateRequest.java;h=52938183d0f7acea4165c17d99a21892dc07542f;hp=0000000000000000000000000000000000000000;hb=bccd4cc0dba0f89aa045b113bac46eb8cc1dab4e;hpb=c9ed09f0007fc2c813815be927a5a24b23dab83c diff --git a/tests/club/wpia/gigi/pages/account/TestCertificateRequest.java b/tests/club/wpia/gigi/pages/account/TestCertificateRequest.java new file mode 100644 index 00000000..52938183 --- /dev/null +++ b/tests/club/wpia/gigi/pages/account/TestCertificateRequest.java @@ -0,0 +1,88 @@ +package club.wpia.gigi.pages.account; + +import static org.hamcrest.CoreMatchers.*; +import static org.junit.Assert.*; + +import java.io.IOException; +import java.security.GeneralSecurityException; +import java.security.KeyPair; + +import org.junit.Test; + +import club.wpia.gigi.GigiApiException; +import club.wpia.gigi.dbObjects.Group; +import club.wpia.gigi.pages.account.certs.CertificateRequest; +import club.wpia.gigi.testUtils.ClientTest; +import club.wpia.gigi.util.AuthorizationContext; + +public class TestCertificateRequest extends ClientTest { + + KeyPair kp = generateKeypair(); + + AuthorizationContext ac; + + public TestCertificateRequest() throws GeneralSecurityException, IOException, GigiApiException { + ac = new AuthorizationContext(u, u); + makeAssurer(u.getId()); + } + + @Test + public void testIssuingOtherName() throws Exception { + try { + new CertificateRequest(ac, generatePEMCSR(kp, "CN=hansi")).draft(); + fail(); + } catch (GigiApiException e) { + assertThat(e.getMessage(), containsString("name you entered was invalid")); + } + } + + @Test + public void testIssuingDefault() throws Exception { + new CertificateRequest(ac, generatePEMCSR(kp, "CN=" + CertificateRequest.DEFAULT_CN + ",EMAIL=" + email)).draft(); + } + + @Test + public void testIssuingRealName() throws Exception { + new CertificateRequest(ac, generatePEMCSR(kp, "CN=a b,EMAIL=" + email)).draft(); + } + + @Test + public void testIssuingModifiedName() throws Exception { + try { + new CertificateRequest(ac, generatePEMCSR(kp, "CN=a ab")).draft(); + fail(); + } catch (GigiApiException e) { + assertThat(e.getMessage(), containsString("name you entered was invalid")); + } + + } + + // TODO annotate that this depends on default config + @Test + public void testCodesignModifiedName() throws Exception { + try { + u.grantGroup(getSupporter(), Group.CODESIGNING); + CertificateRequest cr = new CertificateRequest(ac, generatePEMCSR(kp, "CN=a ab")); + cr.update("name", "SHA512", "code-a", null, null, "email:" + email); + cr.draft(); + fail(); + } catch (GigiApiException e) { + assertThat(e.getMessage(), containsString("does not match the details")); + } + + } + + // TODO annotate that this depends on default config + @Test + public void testCodesignNoPermModifiedName() throws Exception { + try { + CertificateRequest cr = new CertificateRequest(ac, generatePEMCSR(kp, "CN=a ab")); + cr.update("name", "SHA512", "code-a", null, null, "email:" + email); + cr.draft(); + fail(); + } catch (GigiApiException e) { + assertThat(e.getMessage(), containsString("Certificate Profile is invalid.")); + } + + } +}