1 package org.cacert.gigi;
3 import static org.junit.Assert.*;
5 import java.io.IOException;
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;
12 public class TestPasswordReset extends ClientTest {
14 String pub = RandomToken.generateToken(32);
16 String priv = RandomToken.generateToken(32);
18 int id = u.generatePasswordResetTicket(u, pub, priv);
21 public void testInternal() throws IOException, GigiApiException {
22 User u2 = User.getResetWithToken(id, pub);
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 + "'"));
31 public void testDoubleUse() throws IOException, GigiApiException {
32 User u2 = User.getResetWithToken(id, pub);
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 + "'"));
39 u2.consumePasswordResetTicket(id, priv, TEST_PASSWORD + "''");
40 fail("Exception expected.");
41 } catch (GigiApiException e) {
44 assertNotNull(login(u.getEmail(), TEST_PASSWORD + "'"));
48 public void testInternalWrongTk() throws IOException, GigiApiException {
49 User u2 = User.getResetWithToken(id, pub + "'");
54 public void testInternalWrongId() throws IOException, GigiApiException {
55 User u2 = User.getResetWithToken(id + 1, pub);
59 @Test(expected = GigiApiException.class)
60 public void testInternalWeak() throws IOException, GigiApiException {
61 u.consumePasswordResetTicket(id, priv, "");
64 @Test(expected = GigiApiException.class)
65 public void testInternalWrongPriv() throws IOException, GigiApiException {
66 u.consumePasswordResetTicket(id, priv + "'", TEST_PASSWORD);
69 @Test(expected = GigiApiException.class)
70 public void testInternalWrongIdSetting() throws IOException, GigiApiException {
71 u.consumePasswordResetTicket(id + 1, priv, TEST_PASSWORD);