]> WPIA git - gigi.git/blob - tests/club/wpia/gigi/pages/admin/TestSEAdminPageCertSearch.java
add: tests for support certificates view
[gigi.git] / tests / club / wpia / gigi / pages / admin / TestSEAdminPageCertSearch.java
1 package club.wpia.gigi.pages.admin;
2
3 import static org.junit.Assert.*;
4
5 import java.io.IOException;
6 import java.net.URLConnection;
7 import java.net.URLEncoder;
8 import java.security.GeneralSecurityException;
9 import java.security.KeyPair;
10
11 import org.hamcrest.CoreMatchers;
12 import org.junit.Test;
13
14 import club.wpia.gigi.GigiApiException;
15 import club.wpia.gigi.dbObjects.Certificate;
16 import club.wpia.gigi.dbObjects.Certificate.CSRType;
17 import club.wpia.gigi.dbObjects.Certificate.CertificateStatus;
18 import club.wpia.gigi.dbObjects.Certificate.SANType;
19 import club.wpia.gigi.dbObjects.Digest;
20 import club.wpia.gigi.dbObjects.Group;
21 import club.wpia.gigi.dbObjects.User;
22 import club.wpia.gigi.pages.account.certs.Certificates;
23 import club.wpia.gigi.pages.admin.support.FindCertPage;
24 import club.wpia.gigi.pages.admin.support.SupportEnterTicketPage;
25 import club.wpia.gigi.testUtils.ClientTest;
26 import club.wpia.gigi.testUtils.IOUtils;
27 import club.wpia.gigi.util.ServerConstants;
28 import club.wpia.gigi.util.ServerConstants.Host;
29
30 public class TestSEAdminPageCertSearch extends ClientTest {
31
32     private Certificate c;
33
34     private String certMail;
35
36     public TestSEAdminPageCertSearch() throws IOException, GigiApiException, GeneralSecurityException, InterruptedException {
37         grant(u, Group.SUPPORTER);
38         cookie = login(email, TEST_PASSWORD);
39         assertEquals(302, post(cookie, SupportEnterTicketPage.PATH, "ticketno=a20140808.8&setTicket=action", 0).getResponseCode());
40
41         certMail = uniq + "_certOwner@example.com";
42         int id = createVerifiedUser("fn", "ln", certMail, TEST_PASSWORD);
43         User u1 = User.getById(id);
44         KeyPair kp = generateKeypair();
45         String key = generatePEMCSR(kp, "CN=" + certMail);
46         c = new Certificate(u1, u1, Certificate.buildDN("CN", certMail), Digest.SHA512, key, CSRType.CSR, getClientProfile(), new Certificate.SubjectAlternateName(SANType.EMAIL, certMail));
47         await(c.issue(null, "2y", u));
48     }
49
50     @Test
51     public void testSerialSearch() throws IOException {
52         URLConnection uc = post(cookie, FindCertPage.PATH, "certType=serial&process=Next&cert=" + c.getSerial(), 0);
53         assertEquals("https://" + ServerConstants.getHostNamePortSecure(Host.WWW) + Certificates.SUPPORT_PATH + "/" + c.getSerial(), uc.getHeaderField("Location"));
54     }
55
56     @Test
57     public void testEmailSearch() throws IOException {
58         URLConnection uc = post(cookie, FindCertPage.PATH, "certType=email&process=Next&cert=" + URLEncoder.encode(certMail, "UTF-8"), 0);
59         assertEquals("https://" + ServerConstants.getHostNamePortSecure(Host.WWW) + Certificates.SUPPORT_PATH + "/" + c.getSerial(), uc.getHeaderField("Location"));
60     }
61
62     @Test
63     public void testDetails() throws IOException {
64         String s = IOUtils.readURL(get(Certificates.SUPPORT_PATH + "/" + c.getSerial()));
65         assertThat(s, CoreMatchers.containsString("SHA512"));
66         assertThat(s, CoreMatchers.containsString(certMail));
67         assertThat(s, CoreMatchers.containsString(c.getSerial()));
68         assertThat(s, CoreMatchers.containsString("ISSUED"));
69     }
70
71     @Test
72     public void testRevoke() throws IOException {
73         URLConnection conn = post(Certificates.SUPPORT_PATH + "/" + c.getSerial(), "action=revoke");
74         assertEquals("https://" + ServerConstants.getHostNamePortSecure(Host.WWW) + Certificates.SUPPORT_PATH + "/" + c.getSerial(), conn.getHeaderField("Location"));
75         assertEquals(CertificateStatus.REVOKED, c.getStatus());
76     }
77
78 }