]> WPIA git - gigi.git/blob - tests/org/cacert/gigi/TestPasswordReset.java
add: internal api for password reset (with assurance)
[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 testInternalWrongTk() throws IOException, GigiApiException {
32         User u2 = User.getResetWithToken(id, pub + "'");
33         assertNull(u2);
34     }
35
36     @Test
37     public void testInternalWrongId() throws IOException, GigiApiException {
38         User u2 = User.getResetWithToken(id + 1, pub);
39         assertNull(u2);
40     }
41
42     @Test(expected = GigiApiException.class)
43     public void testInternalWeak() throws IOException, GigiApiException {
44         u.consumePasswordResetTicket(id, priv, "");
45     }
46
47     @Test(expected = GigiApiException.class)
48     public void testInternalWrongPriv() throws IOException, GigiApiException {
49         u.consumePasswordResetTicket(id, priv + "'", TEST_PASSWORD);
50     }
51
52     @Test(expected = GigiApiException.class)
53     public void testInternalWrongIdSetting() throws IOException, GigiApiException {
54         u.consumePasswordResetTicket(id + 1, priv, TEST_PASSWORD);
55     }
56 }