1 package club.wpia.gigi.pages.account;
3 import static org.junit.Assert.*;
5 import java.io.IOException;
6 import java.net.URLEncoder;
8 import org.hamcrest.CoreMatchers;
11 import club.wpia.gigi.GigiApiException;
12 import club.wpia.gigi.testUtils.ArrayContains;
13 import club.wpia.gigi.testUtils.ClientTest;
15 public class TestChangePassword extends ClientTest {
17 String path = ChangePasswordPage.PATH;
19 public TestChangePassword() throws IOException {
20 cookie = login(u.getEmail(), TEST_PASSWORD);
21 assertTrue(isLoggedin(cookie));
25 public void testChangePasswordInternal() throws IOException, GigiApiException {
27 u.changePassword(TEST_PASSWORD + "wrong", TEST_PASSWORD + "v2");
28 fail("Password change must not succeed if old password is wrong.");
29 } catch (GigiApiException e) {
33 assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD)));
34 u.changePassword(TEST_PASSWORD, TEST_PASSWORD + "v2");
35 assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2")));
39 public void testChangePasswordWeb() throws IOException {
40 String error = executeBasicWebInteraction(cookie, path,
41 "oldpassword=" + URLEncoder.encode(TEST_PASSWORD, "UTF-8") //
42 + "&pword1=" + URLEncoder.encode(TEST_PASSWORD + "v2", "UTF-8")//
43 + "&pword2=" + URLEncoder.encode(TEST_PASSWORD + "v2", "UTF-8"));
45 assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2")));
46 assertFalse(isLoggedin(login(u.getEmail(), TEST_PASSWORD)));
48 String[] result = u.getAdminLog();
49 assertThat(result, ArrayContains.contains(CoreMatchers.equalTo("User triggered password reset")));
54 public void testChangePasswordWebOldWrong() throws IOException {
55 String error = executeBasicWebInteraction(cookie, path,
56 "oldpassword=a" + URLEncoder.encode(TEST_PASSWORD, "UTF-8") //
57 + "&pword1=" + URLEncoder.encode(TEST_PASSWORD + "v2", "UTF-8")//
58 + "&pword2=" + URLEncoder.encode(TEST_PASSWORD + "v2", "UTF-8"));
60 assertFalse(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2")));
61 assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD)));
66 public void testChangePasswordWebNewWrong() throws IOException {
67 String error = executeBasicWebInteraction(cookie, path,
68 "oldpassword=" + URLEncoder.encode(TEST_PASSWORD, "UTF-8") //
69 + "&pword1=" + URLEncoder.encode(TEST_PASSWORD + "v2", "UTF-8")//
70 + "&pword2=a" + URLEncoder.encode(TEST_PASSWORD + "v2", "UTF-8"));
72 assertFalse(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2")));
73 assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD)));
78 public void testChangePasswordWebNewEasy() throws IOException {
79 String error = executeBasicWebInteraction(cookie, path, "oldpassword=" + URLEncoder.encode(TEST_PASSWORD, "UTF-8") //
80 + "&pword1=a&pword2=a");
82 assertFalse(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2")));
83 assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD)));
88 public void testChangePasswordWebMissingFields() throws IOException {
89 String np = URLEncoder.encode(TEST_PASSWORD + "v2", "UTF-8");
90 assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD)));
91 String error = executeBasicWebInteraction(cookie, path, "oldpassword=" + URLEncoder.encode(TEST_PASSWORD, "UTF-8") //
94 assertFalse(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2")));
95 assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD)));
97 error = executeBasicWebInteraction(cookie, path, "oldpassword=" + URLEncoder.encode(TEST_PASSWORD, "UTF-8") //
100 assertFalse(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2")));
101 assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD)));
103 error = executeBasicWebInteraction(cookie, path, "pword1=" + np + "&pword2=" + np);
104 assertNotNull(error);
105 assertFalse(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2")));
106 assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD)));