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