]> WPIA git - gigi.git/blob - tests/club/wpia/gigi/TestPasswordReset.java
add: ensure that for Org Administrator actions certificate login is used
[gigi.git] / tests / club / wpia / gigi / TestPasswordReset.java
1 package club.wpia.gigi;
2
3 import static org.junit.Assert.*;
4
5 import java.io.IOException;
6
7 import org.junit.Test;
8
9 import club.wpia.gigi.dbObjects.User;
10 import club.wpia.gigi.testUtils.ClientTest;
11 import club.wpia.gigi.util.RandomToken;
12
13 public class TestPasswordReset extends ClientTest {
14
15     String pub = RandomToken.generateToken(32);
16
17     String priv = RandomToken.generateToken(32);
18
19     int id = u.generatePasswordResetTicket(u, pub, priv);
20
21     @Test
22     public void testInternal() throws IOException, GigiApiException {
23         User u2 = User.getResetWithToken(id, pub);
24         assertSame(u, u2);
25         assertNotNull(login(u.getEmail(), TEST_PASSWORD));
26         u2.consumePasswordResetTicket(id, priv, TEST_PASSWORD + "'");
27         assertEquals("", login(u.getEmail(), TEST_PASSWORD));
28         assertNotNull(login(u.getEmail(), TEST_PASSWORD + "'"));
29     }
30
31     @Test
32     public void testDoubleUse() throws IOException, GigiApiException {
33         User u2 = User.getResetWithToken(id, pub);
34         assertSame(u, u2);
35         assertNotNull(login(u.getEmail(), TEST_PASSWORD));
36         u2.consumePasswordResetTicket(id, priv, TEST_PASSWORD + "'");
37         assertEquals("", login(u.getEmail(), TEST_PASSWORD));
38         assertNotNull(login(u.getEmail(), TEST_PASSWORD + "'"));
39         try {
40             u2.consumePasswordResetTicket(id, priv, TEST_PASSWORD + "''");
41             fail("Exception expected.");
42         } catch (GigiApiException e) {
43             // expected
44         }
45         assertNotNull(login(u.getEmail(), TEST_PASSWORD + "'"));
46     }
47
48     @Test
49     public void testInternalWrongTk() throws IOException, GigiApiException {
50         User u2 = User.getResetWithToken(id, pub + "'");
51         assertNull(u2);
52     }
53
54     @Test
55     public void testInternalWrongId() throws IOException, GigiApiException {
56         User u2 = User.getResetWithToken(id + 1, pub);
57         assertNull(u2);
58     }
59
60     @Test(expected = GigiApiException.class)
61     public void testInternalWeak() throws IOException, GigiApiException {
62         u.consumePasswordResetTicket(id, priv, "");
63     }
64
65     @Test(expected = GigiApiException.class)
66     public void testInternalWrongPriv() throws IOException, GigiApiException {
67         u.consumePasswordResetTicket(id, priv + "'", TEST_PASSWORD);
68     }
69
70     @Test(expected = GigiApiException.class)
71     public void testInternalWrongIdSetting() throws IOException, GigiApiException {
72         u.consumePasswordResetTicket(id + 1, priv, TEST_PASSWORD);
73     }
74 }