import org.cacert.gigi.dbObjects.Group;
import org.cacert.gigi.pages.account.certs.CertificateRequest;
import org.cacert.gigi.testUtils.ClientTest;
+import org.cacert.gigi.util.AuthorizationContext;
import org.junit.Test;
public class TestCertificateRequest extends ClientTest {
KeyPair kp = generateKeypair();
+ AuthorizationContext ac;
+
public TestCertificateRequest() throws GeneralSecurityException, IOException {
+ ac = new AuthorizationContext(u, u);
makeAssurer(u.getId());
grant(email, Group.CODESIGNING);
@Test
public void testIssuingOtherName() throws Exception {
try {
- new CertificateRequest(u, generatePEMCSR(kp, "CN=hansi")).draft();
+ 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(u, generatePEMCSR(kp, "CN=" + CertificateRequest.DEFAULT_CN + ",EMAIL=" + email)).draft();
+ new CertificateRequest(ac, generatePEMCSR(kp, "CN=" + CertificateRequest.DEFAULT_CN + ",EMAIL=" + email)).draft();
}
@Test
public void testIssuingRealName() throws Exception {
- new CertificateRequest(u, generatePEMCSR(kp, "CN=a b,EMAIL=" + email)).draft();
+ new CertificateRequest(ac, generatePEMCSR(kp, "CN=a b,EMAIL=" + email)).draft();
}
@Test
public void testIssuingModifiedName() throws Exception {
try {
- new CertificateRequest(u, generatePEMCSR(kp, "CN=a ab")).draft();
+ new CertificateRequest(ac, generatePEMCSR(kp, "CN=a ab")).draft();
fail();
} catch (GigiApiException e) {
assertThat(e.getMessage(), containsString("name you entered was invalid"));
@Test
public void testCodesignModifiedName() throws Exception {
try {
- CertificateRequest cr = new CertificateRequest(u, generatePEMCSR(kp, "CN=a ab"));
- cr.update("name", "SHA512", "code-a", null, null, "email:" + email, null, null);
+ u.grantGroup(u, 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."));
+ }
+
+ }
}