]> WPIA git - gigi.git/blob - tests/org/cacert/gigi/pages/account/TestChangePassword.java
Merge remote-tracking branch 'origin/emailMgmt'
[gigi.git] / tests / org / cacert / gigi / pages / account / TestChangePassword.java
1 package org.cacert.gigi.pages.account;
2
3 import static org.junit.Assert.*;
4
5 import java.io.IOException;
6 import java.net.URLEncoder;
7
8 import org.cacert.gigi.GigiApiException;
9 import org.cacert.gigi.User;
10 import org.cacert.gigi.testUtils.ManagedTest;
11 import org.junit.Test;
12
13 public class TestChangePassword extends ManagedTest {
14         User u = User.getById(createVerifiedUser("fn", "ln", createUniqueName() + "uni@example.org", TEST_PASSWORD));
15         String cookie;
16         String path = ChangePasswordPage.PATH;
17
18         public TestChangePassword() throws IOException {
19                 cookie = login(u.getEmail(), TEST_PASSWORD);
20                 assertTrue(isLoggedin(cookie));
21         }
22
23         @Test
24         public void testChangePasswordInternal() throws IOException, GigiApiException {
25                 try {
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) {
29                         // expected
30                 }
31                 ;
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")));
35         }
36
37         @Test
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"));
43                 assertNull(error);
44                 assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2")));
45                 assertFalse(isLoggedin(login(u.getEmail(), TEST_PASSWORD)));
46
47         }
48
49         @Test
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"));
55                 assertNotNull(error);
56                 assertFalse(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2")));
57                 assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD)));
58
59         }
60
61         @Test
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"));
67                 assertNotNull(error);
68                 assertFalse(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2")));
69                 assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD)));
70
71         }
72
73         @Test
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");
78                 assertNotNull(error);
79                 assertFalse(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2")));
80                 assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD)));
81
82         }
83
84         @Test
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") //
90                                 + "&pword1=" + np);
91                 assertNotNull(error);
92                 assertFalse(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2")));
93                 assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD)));
94
95                 error = executeBasicWebInteraction(cookie, path, "oldpassword=" + URLEncoder.encode(TEST_PASSWORD, "UTF-8") //
96                         + "&pword2=" + np);
97                 assertNotNull(error);
98                 assertFalse(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2")));
99                 assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD)));
100
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)));
105
106         }
107
108 }