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.dbObjects.User;
10 import org.cacert.gigi.testUtils.ManagedTest;
11 import org.junit.Test;
13 public class TestChangePassword extends ManagedTest {
15 User u = User.getById(createVerifiedUser("fn", "ln", createUniqueName() + "uni@example.org", TEST_PASSWORD));
19 String path = ChangePasswordPage.PATH;
21 public TestChangePassword() throws IOException {
22 cookie = login(u.getEmail(), TEST_PASSWORD);
23 assertTrue(isLoggedin(cookie));
27 public void testChangePasswordInternal() throws IOException, GigiApiException {
29 u.changePassword(TEST_PASSWORD + "wrong", TEST_PASSWORD + "v2");
30 fail("Password change must not succeed if old password is wrong.");
31 } catch (GigiApiException e) {
35 assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD)));
36 u.changePassword(TEST_PASSWORD, TEST_PASSWORD + "v2");
37 assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2")));
41 public void testChangePasswordWeb() throws IOException {
42 String error = executeBasicWebInteraction(cookie, path, "oldpassword=" + URLEncoder.encode(TEST_PASSWORD, "UTF-8") //
43 + "&pword1=" + URLEncoder.encode(TEST_PASSWORD + "v2", "UTF-8")//
44 + "&pword2=" + URLEncoder.encode(TEST_PASSWORD + "v2", "UTF-8"));
46 assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2")));
47 assertFalse(isLoggedin(login(u.getEmail(), TEST_PASSWORD)));
52 public void testChangePasswordWebOldWrong() throws IOException {
53 String error = executeBasicWebInteraction(cookie, path, "oldpassword=a" + URLEncoder.encode(TEST_PASSWORD, "UTF-8") //
54 + "&pword1=" + URLEncoder.encode(TEST_PASSWORD + "v2", "UTF-8")//
55 + "&pword2=" + URLEncoder.encode(TEST_PASSWORD + "v2", "UTF-8"));
57 assertFalse(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2")));
58 assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD)));
63 public void testChangePasswordWebNewWrong() throws IOException {
64 String error = executeBasicWebInteraction(cookie, path, "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, "oldpassword=" + URLEncoder.encode(TEST_PASSWORD, "UTF-8") //
76 + "&pword1=a&pword2=a");
78 assertFalse(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2")));
79 assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD)));
84 public void testChangePasswordWebMissingFields() throws IOException {
85 String np = URLEncoder.encode(TEST_PASSWORD + "v2", "UTF-8");
86 assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD)));
87 String error = executeBasicWebInteraction(cookie, path, "oldpassword=" + URLEncoder.encode(TEST_PASSWORD, "UTF-8") //
90 assertFalse(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2")));
91 assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD)));
93 error = executeBasicWebInteraction(cookie, path, "oldpassword=" + URLEncoder.encode(TEST_PASSWORD, "UTF-8") //
96 assertFalse(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2")));
97 assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD)));
99 error = executeBasicWebInteraction(cookie, path, "pword1=" + np + "&pword2=" + np);
100 assertNotNull(error);
101 assertFalse(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2")));
102 assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD)));