1 package org.cacert.gigi.pages.account;
3 import static org.junit.Assert.*;
5 import java.io.IOException;
6 import java.net.URLEncoder;
8 import org.cacert.gigi.GigiApiException;
9 import org.cacert.gigi.User;
10 import org.cacert.gigi.testUtils.ManagedTest;
11 import org.junit.Test;
13 public class TestChangePassword extends ManagedTest {
14 User u = User.getById(createVerifiedUser("fn", "ln", createUniqueName() + "uni@example.org", TEST_PASSWORD));
16 String path = ChangePasswordPage.PATH;
18 public TestChangePassword() throws IOException {
19 cookie = login(u.getEmail(), TEST_PASSWORD);
20 assertTrue(isLoggedin(cookie));
24 public void testChangePasswordInternal() throws IOException, GigiApiException {
26 u.changePassword(TEST_PASSWORD + "wrong", TEST_PASSWORD + "v2");
27 fail("Password change must not succeed if old password is wrong.");
28 } catch (GigiApiException e) {
32 assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD)));
33 u.changePassword(TEST_PASSWORD, TEST_PASSWORD + "v2");
34 assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2")));
38 public void testChangePasswordWeb() throws IOException {
39 String error = executeBasicWebInteraction(cookie, path,
40 "oldpassword=" + URLEncoder.encode(TEST_PASSWORD, "UTF-8") //
41 + "&pword1=" + URLEncoder.encode(TEST_PASSWORD + "v2", "UTF-8")//
42 + "&pword2=" + URLEncoder.encode(TEST_PASSWORD + "v2", "UTF-8"));
44 assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2")));
45 assertFalse(isLoggedin(login(u.getEmail(), TEST_PASSWORD)));
50 public void testChangePasswordWebOldWrong() throws IOException {
51 String error = executeBasicWebInteraction(cookie, path,
52 "oldpassword=a" + URLEncoder.encode(TEST_PASSWORD, "UTF-8") //
53 + "&pword1=" + URLEncoder.encode(TEST_PASSWORD + "v2", "UTF-8")//
54 + "&pword2=" + URLEncoder.encode(TEST_PASSWORD + "v2", "UTF-8"));
56 assertFalse(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2")));
57 assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD)));
62 public void testChangePasswordWebNewWrong() throws IOException {
63 String error = executeBasicWebInteraction(cookie, path,
64 "oldpassword=" + URLEncoder.encode(TEST_PASSWORD, "UTF-8") //
65 + "&pword1=" + URLEncoder.encode(TEST_PASSWORD + "v2", "UTF-8")//
66 + "&pword2=a" + URLEncoder.encode(TEST_PASSWORD + "v2", "UTF-8"));
68 assertFalse(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2")));
69 assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD)));
74 public void testChangePasswordWebNewEasy() throws IOException {
75 String error = executeBasicWebInteraction(cookie, path,
76 "oldpassword=" + URLEncoder.encode(TEST_PASSWORD, "UTF-8") //
77 + "&pword1=a&pword2=a");
79 assertFalse(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2")));
80 assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD)));
85 public void testChangePasswordWebMissingFields() throws IOException {
86 String np = URLEncoder.encode(TEST_PASSWORD + "v2", "UTF-8");
87 assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD)));
88 String error = executeBasicWebInteraction(cookie, path,
89 "oldpassword=" + URLEncoder.encode(TEST_PASSWORD, "UTF-8") //
92 assertFalse(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2")));
93 assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD)));
95 error = executeBasicWebInteraction(cookie, path, "oldpassword=" + URLEncoder.encode(TEST_PASSWORD, "UTF-8") //
98 assertFalse(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2")));
99 assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD)));
101 error = executeBasicWebInteraction(cookie, path, "pword1=" + np + "&pword2=" + np);
102 assertNotNull(error);
103 assertFalse(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2")));
104 assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD)));