1 package club.wpia.gigi.pages.admin;
3 import static org.hamcrest.CoreMatchers.*;
4 import static org.hamcrest.MatcherAssert.assertThat;
5 import static org.junit.Assert.*;
7 import java.io.IOException;
8 import java.io.UnsupportedEncodingException;
9 import java.net.MalformedURLException;
10 import java.util.Random;
12 import org.junit.Test;
14 import club.wpia.gigi.GigiApiException;
15 import club.wpia.gigi.dbObjects.Group;
16 import club.wpia.gigi.pages.admin.support.FindCertPage;
17 import club.wpia.gigi.pages.admin.support.FindUserByDomainPage;
18 import club.wpia.gigi.pages.admin.support.FindUserByEmailPage;
19 import club.wpia.gigi.pages.admin.support.SupportEnterTicketForm;
20 import club.wpia.gigi.pages.admin.support.SupportEnterTicketPage;
21 import club.wpia.gigi.testUtils.ClientTest;
22 import club.wpia.gigi.testUtils.IOUtils;
24 public class TestSEAdminTicketSetting extends ClientTest {
26 public TestSEAdminTicketSetting() throws IOException, GigiApiException {
27 grant(u, Group.SUPPORTER);
28 cookie = cookieWithCertificateLogin(u);
32 public void testFulltextMailSearch() throws MalformedURLException, UnsupportedEncodingException, IOException {
33 assertEquals(403, get(FindUserByEmailPage.PATH).getResponseCode());
34 assertEquals(302, post(SupportEnterTicketPage.PATH, "ticketno=a20140808.8&setTicket=action", 0).getResponseCode());
35 assertEquals(200, get(FindUserByEmailPage.PATH).getResponseCode());
36 assertEquals(200, get(FindUserByDomainPage.PATH).getResponseCode());
37 assertEquals(302, post(SupportEnterTicketPage.PATH, "ticketno=a20140808.8&deleteTicket=action", 0).getResponseCode());
38 assertEquals(403, get(FindUserByEmailPage.PATH).getResponseCode());
42 public void testSetTicketNumberCharacter() throws MalformedURLException, UnsupportedEncodingException, IOException {
44 String alphabet = "abcdefghijklmnopqrstuvwxyz";
46 // test allowed character
47 for (char ch : SupportEnterTicketForm.TICKET_PREFIX.toCharArray()) {
48 ticket = ch + "20171212.1";
49 assertEquals(302, post(SupportEnterTicketPage.PATH, "ticketno=" + ticket + "&setTicket=action", 0).getResponseCode());
50 ticket = Character.toUpperCase(ch) + "20171212.1";
51 assertEquals(302, post(SupportEnterTicketPage.PATH, "ticketno=" + ticket + "&setTicket=action", 0).getResponseCode());
52 alphabet = alphabet.replaceAll(Character.toString(ch), "");
55 // test not allowed character
56 Random rnd = new Random();
57 char ch = alphabet.charAt(rnd.nextInt(alphabet.length()));
58 assertWrongTicketNumber(ch + "20171212.1");
62 public void testSetTicketNumberDatepart() throws MalformedURLException, UnsupportedEncodingException, IOException {
63 char ch = getValidCharacter();
65 assertWrongTicketNumber(ch + "220171212.1");
67 assertWrongTicketNumber(ch + "0171212.1");
69 assertWrongTicketNumber(ch + "20171512.1");
71 assertWrongTicketNumber(ch + "20170229.1");
73 assertWrongTicketNumber(ch + ch + "20171212.1");
75 assertWrongTicketNumber("20171212.1");
77 assertWrongTicketNumber(ch + "20171212" + ch + ".1");
79 assertWrongTicketNumber(ch + "201721" + ch + "21.1");
83 public void testSetTicketNumberNumberpart() throws MalformedURLException, UnsupportedEncodingException, IOException {
84 char ch = getValidCharacter();
86 assertWrongTicketNumber(ch + "20171212.");
88 assertWrongTicketNumber(ch + "20171212");
90 assertWrongTicketNumber(ch + "20171212.1" + ch);
94 private char getValidCharacter() {
95 Random rnd = new Random();
96 return SupportEnterTicketForm.TICKET_PREFIX.charAt(rnd.nextInt(SupportEnterTicketForm.TICKET_PREFIX.length()));
99 private void assertWrongTicketNumber(String ticket) throws IOException {
100 String res = IOUtils.readURL(post(SupportEnterTicketPage.PATH, "ticketno=" + ticket + "&setTicket=action"));
101 assertThat(res, containsString("Ticket format malformed"));
105 public void testPWLogin() throws MalformedURLException, UnsupportedEncodingException, IOException {
106 String cookiePW = login(email, TEST_PASSWORD);
107 loginCertificate = null;
108 assertEquals(403, get(cookiePW, SupportEnterTicketPage.PATH).getResponseCode());
109 assertEquals(403, get(cookiePW, FindUserByEmailPage.PATH).getResponseCode());
110 assertEquals(403, get(cookiePW, FindUserByDomainPage.PATH).getResponseCode());
111 assertEquals(403, get(cookiePW, FindCertPage.PATH).getResponseCode());