1 package club.wpia.gigi;
3 import static org.junit.Assert.*;
5 import java.io.IOException;
9 import club.wpia.gigi.dbObjects.User;
10 import club.wpia.gigi.testUtils.ClientTest;
11 import club.wpia.gigi.util.RandomToken;
13 public class TestPasswordReset extends ClientTest {
15 String pub = RandomToken.generateToken(32);
17 String priv = RandomToken.generateToken(32);
19 int id = u.generatePasswordResetTicket(u, pub, priv);
22 public void testInternal() throws IOException, GigiApiException {
23 User u2 = User.getResetWithToken(id, pub);
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 + "'"));
32 public void testDoubleUse() throws IOException, GigiApiException {
33 User u2 = User.getResetWithToken(id, pub);
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 + "'"));
40 u2.consumePasswordResetTicket(id, priv, TEST_PASSWORD + "''");
41 fail("Exception expected.");
42 } catch (GigiApiException e) {
45 assertNotNull(login(u.getEmail(), TEST_PASSWORD + "'"));
49 public void testInternalWrongTk() throws IOException, GigiApiException {
50 User u2 = User.getResetWithToken(id, pub + "'");
55 public void testInternalWrongId() throws IOException, GigiApiException {
56 User u2 = User.getResetWithToken(id + 1, pub);
60 @Test(expected = GigiApiException.class)
61 public void testInternalWeak() throws IOException, GigiApiException {
62 u.consumePasswordResetTicket(id, priv, "");
65 @Test(expected = GigiApiException.class)
66 public void testInternalWrongPriv() throws IOException, GigiApiException {
67 u.consumePasswordResetTicket(id, priv + "'", TEST_PASSWORD);
70 @Test(expected = GigiApiException.class)
71 public void testInternalWrongIdSetting() throws IOException, GigiApiException {
72 u.consumePasswordResetTicket(id + 1, priv, TEST_PASSWORD);