]> WPIA git - gigi.git/blob - tests/club/wpia/gigi/pages/admin/TestSEAdminTicketSetting.java
Merge "upd: remove 'browser install'"
[gigi.git] / tests / club / wpia / gigi / pages / admin / TestSEAdminTicketSetting.java
1 package club.wpia.gigi.pages.admin;
2
3 import static org.hamcrest.CoreMatchers.*;
4 import static org.hamcrest.MatcherAssert.assertThat;
5 import static org.junit.Assert.*;
6
7 import java.io.IOException;
8 import java.io.UnsupportedEncodingException;
9 import java.net.MalformedURLException;
10 import java.util.Random;
11
12 import org.junit.Test;
13
14 import club.wpia.gigi.GigiApiException;
15 import club.wpia.gigi.dbObjects.CATS.CATSType;
16 import club.wpia.gigi.dbObjects.Group;
17 import club.wpia.gigi.dbObjects.User;
18 import club.wpia.gigi.pages.admin.support.FindCertPage;
19 import club.wpia.gigi.pages.admin.support.FindUserByDomainPage;
20 import club.wpia.gigi.pages.admin.support.FindUserByEmailPage;
21 import club.wpia.gigi.pages.admin.support.SupportEnterTicketForm;
22 import club.wpia.gigi.pages.admin.support.SupportEnterTicketPage;
23 import club.wpia.gigi.testUtils.ClientTest;
24 import club.wpia.gigi.testUtils.IOUtils;
25
26 public class TestSEAdminTicketSetting extends ClientTest {
27
28     public TestSEAdminTicketSetting() throws IOException, GigiApiException {
29         grant(u, Group.SUPPORTER);
30         addChallenge(u.getId(), CATSType.SUPPORT_DP_CHALLENGE_NAME);
31         cookie = cookieWithCertificateLogin(u);
32     }
33
34     @Test
35     public void testFulltextMailSearch() throws MalformedURLException, UnsupportedEncodingException, IOException {
36         assertEquals(403, get(FindUserByEmailPage.PATH).getResponseCode());
37         assertEquals(302, post(SupportEnterTicketPage.PATH, "ticketno=a20140808.8&setTicket=action", 0).getResponseCode());
38         assertEquals(200, get(FindUserByEmailPage.PATH).getResponseCode());
39         assertEquals(200, get(FindUserByDomainPage.PATH).getResponseCode());
40         assertEquals(302, post(SupportEnterTicketPage.PATH, "ticketno=a20140808.8&deleteTicket=action", 0).getResponseCode());
41         assertEquals(403, get(FindUserByEmailPage.PATH).getResponseCode());
42     }
43
44     @Test
45     public void testSetTicketNumberCharacter() throws MalformedURLException, UnsupportedEncodingException, IOException {
46         String ticket;
47         String alphabet = "abcdefghijklmnopqrstuvwxyz";
48
49         // test allowed character
50         for (char ch : SupportEnterTicketForm.TICKET_PREFIX.toCharArray()) {
51             ticket = ch + "20171212.1";
52             assertEquals(302, post(SupportEnterTicketPage.PATH, "ticketno=" + ticket + "&setTicket=action", 0).getResponseCode());
53             ticket = Character.toUpperCase(ch) + "20171212.1";
54             assertEquals(302, post(SupportEnterTicketPage.PATH, "ticketno=" + ticket + "&setTicket=action", 0).getResponseCode());
55             alphabet = alphabet.replaceAll(Character.toString(ch), "");
56         }
57
58         // test not allowed character
59         Random rnd = new Random();
60         char ch = alphabet.charAt(rnd.nextInt(alphabet.length()));
61         assertWrongTicketNumber(ch + "20171212.1");
62     }
63
64     @Test
65     public void testSetTicketNumberDatepart() throws MalformedURLException, UnsupportedEncodingException, IOException {
66         char ch = getValidCharacter();
67
68         assertWrongTicketNumber(ch + "220171212.1");
69
70         assertWrongTicketNumber(ch + "0171212.1");
71
72         assertWrongTicketNumber(ch + "20171512.1");
73
74         assertWrongTicketNumber(ch + "20170229.1");
75
76         assertWrongTicketNumber(ch + ch + "20171212.1");
77
78         assertWrongTicketNumber("20171212.1");
79
80         assertWrongTicketNumber(ch + "20171212" + ch + ".1");
81
82         assertWrongTicketNumber(ch + "201721" + ch + "21.1");
83     }
84
85     @Test
86     public void testSetTicketNumberNumberpart() throws MalformedURLException, UnsupportedEncodingException, IOException {
87         char ch = getValidCharacter();
88
89         assertWrongTicketNumber(ch + "20171212.");
90
91         assertWrongTicketNumber(ch + "20171212");
92
93         assertWrongTicketNumber(ch + "20171212.1" + ch);
94
95     }
96
97     private char getValidCharacter() {
98         Random rnd = new Random();
99         return SupportEnterTicketForm.TICKET_PREFIX.charAt(rnd.nextInt(SupportEnterTicketForm.TICKET_PREFIX.length()));
100     }
101
102     private void assertWrongTicketNumber(String ticket) throws IOException {
103         String res = IOUtils.readURL(post(SupportEnterTicketPage.PATH, "ticketno=" + ticket + "&setTicket=action"));
104         assertThat(res, containsString("Ticket format malformed"));
105     }
106
107     @Test
108     public void testPWLogin() throws MalformedURLException, UnsupportedEncodingException, IOException {
109         String cookiePW = login(email, TEST_PASSWORD);
110         loginCertificate = null;
111         assertEquals(403, get(cookiePW, SupportEnterTicketPage.PATH).getResponseCode());
112         assertEquals(403, get(cookiePW, FindUserByEmailPage.PATH).getResponseCode());
113         assertEquals(403, get(cookiePW, FindUserByDomainPage.PATH).getResponseCode());
114         assertEquals(403, get(cookiePW, FindCertPage.PATH).getResponseCode());
115     }
116
117     @Test
118     public void testNoSupportChallenge() throws MalformedURLException, UnsupportedEncodingException, IOException, GigiApiException {
119         User supporter1 = User.getById(createVerificationUser("testworker", "testname", createUniqueName() + "@testdom.com", TEST_PASSWORD));
120         grant(supporter1, Group.SUPPORTER);
121         loginCertificate = null;
122         cookie = cookieWithCertificateLogin(supporter1);
123
124         assertEquals(403, get(SupportEnterTicketPage.PATH).getResponseCode());
125         assertEquals(403, get(FindUserByEmailPage.PATH).getResponseCode());
126         assertEquals(403, get(FindUserByDomainPage.PATH).getResponseCode());
127         assertEquals(403, get(FindCertPage.PATH).getResponseCode());
128     }
129
130 }