X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=tests%2Forg%2Fcacert%2Fgigi%2Fpages%2Faccount%2FTestChangePassword.java;h=21be9c15113f343171ad17b457fc914b72d35ac9;hp=5f095575f78bedda73aa133fac6bcc7705526389;hb=e409ba881965634f63f0b67824bc93dda4ec4327;hpb=9b8c6af2b684cee31142449955b83ae66cb9ab34 diff --git a/tests/org/cacert/gigi/pages/account/TestChangePassword.java b/tests/org/cacert/gigi/pages/account/TestChangePassword.java index 5f095575..21be9c15 100644 --- a/tests/org/cacert/gigi/pages/account/TestChangePassword.java +++ b/tests/org/cacert/gigi/pages/account/TestChangePassword.java @@ -3,124 +3,104 @@ package org.cacert.gigi.pages.account; import static org.junit.Assert.*; import java.io.IOException; -import java.io.OutputStream; -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; -import java.net.URLConnection; import java.net.URLEncoder; import org.cacert.gigi.GigiApiException; -import org.cacert.gigi.User; -import org.cacert.gigi.testUtils.IOUtils; +import org.cacert.gigi.dbObjects.User; import org.cacert.gigi.testUtils.ManagedTest; import org.junit.Test; public class TestChangePassword extends ManagedTest { - User u = User.getById(createVerifiedUser("fn", "ln", createUniqueName() + "uni@example.org", TEST_PASSWORD)); - String cookie; - - public TestChangePassword() throws IOException { - cookie = login(u.getEmail(), TEST_PASSWORD); - assertTrue(isLoggedin(cookie)); - } - - @Test - public void testChangePasswordInternal() throws IOException, GigiApiException { - try { - u.changePassword(TEST_PASSWORD + "wrong", TEST_PASSWORD + "v2"); - fail("Password change must not succeed if old password is wrong."); - } catch (GigiApiException e) { - // expected - } - ; - assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD))); - u.changePassword(TEST_PASSWORD, TEST_PASSWORD + "v2"); - assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2"))); - } - - @Test - public void testChangePasswordWeb() throws IOException { - String error = executeChangePassword("oldpassword=" + URLEncoder.encode(TEST_PASSWORD, "UTF-8") // - + "&pword1=" + URLEncoder.encode(TEST_PASSWORD + "v2", "UTF-8")// - + "&pword2=" + URLEncoder.encode(TEST_PASSWORD + "v2", "UTF-8")); - assertNull(error); - assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2"))); - assertFalse(isLoggedin(login(u.getEmail(), TEST_PASSWORD))); - - } - - @Test - public void testChangePasswordWebOldWrong() throws IOException { - String error = executeChangePassword("oldpassword=a" + URLEncoder.encode(TEST_PASSWORD, "UTF-8") // - + "&pword1=" + URLEncoder.encode(TEST_PASSWORD + "v2", "UTF-8")// - + "&pword2=" + URLEncoder.encode(TEST_PASSWORD + "v2", "UTF-8")); - assertNotNull(error); - assertFalse(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2"))); - assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD))); - - } - - @Test - public void testChangePasswordWebNewWrong() throws IOException { - String error = executeChangePassword("oldpassword=" + URLEncoder.encode(TEST_PASSWORD, "UTF-8") // - + "&pword1=" + URLEncoder.encode(TEST_PASSWORD + "v2", "UTF-8")// - + "&pword2=a" + URLEncoder.encode(TEST_PASSWORD + "v2", "UTF-8")); - assertNotNull(error); - assertFalse(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2"))); - assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD))); - - } - - @Test - public void testChangePasswordWebNewEasy() throws IOException { - String error = executeChangePassword("oldpassword=" + URLEncoder.encode(TEST_PASSWORD, "UTF-8") // - + "&pword1=a&pword2=a"); - assertNotNull(error); - assertFalse(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2"))); - assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD))); - - } - - @Test - public void testChangePasswordWebMissingFields() throws IOException { - String np = URLEncoder.encode(TEST_PASSWORD + "v2", "UTF-8"); - assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD))); - String error = executeChangePassword("oldpassword=" + URLEncoder.encode(TEST_PASSWORD, "UTF-8") // - + "&pword1=" + np); - assertNotNull(error); - assertFalse(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2"))); - assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD))); - - error = executeChangePassword("oldpassword=" + URLEncoder.encode(TEST_PASSWORD, "UTF-8") // - + "&pword2=" + np); - assertNotNull(error); - assertFalse(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2"))); - assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD))); - - error = executeChangePassword("pword1=" + np + "&pword2=" + np); - assertNotNull(error); - assertFalse(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2"))); - assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD))); - - } - - private String executeChangePassword(String query) throws IOException, MalformedURLException, - UnsupportedEncodingException { - URLConnection uc = new URL("https://" + getServerName() + ChangePasswordPage.PATH).openConnection(); - uc.addRequestProperty("Cookie", cookie); - String csrf = getCSRF(uc); - - uc = new URL("https://" + getServerName() + ChangePasswordPage.PATH).openConnection(); - uc.addRequestProperty("Cookie", cookie); - uc.setDoOutput(true); - OutputStream os = uc.getOutputStream(); - os.write(("csrf=" + URLEncoder.encode(csrf, "UTF-8") + "&" // - + query// - ).getBytes()); - os.flush(); - String error = fetchStartErrorMessage(IOUtils.readURL(uc)); - return error; - } + + User u = User.getById(createVerifiedUser("fn", "ln", createUniqueName() + "uni@example.org", TEST_PASSWORD)); + + String cookie; + + String path = ChangePasswordPage.PATH; + + public TestChangePassword() throws IOException { + cookie = login(u.getEmail(), TEST_PASSWORD); + assertTrue(isLoggedin(cookie)); + } + + @Test + public void testChangePasswordInternal() throws IOException, GigiApiException { + try { + u.changePassword(TEST_PASSWORD + "wrong", TEST_PASSWORD + "v2"); + fail("Password change must not succeed if old password is wrong."); + } catch (GigiApiException e) { + // expected + } + ; + assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD))); + u.changePassword(TEST_PASSWORD, TEST_PASSWORD + "v2"); + assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2"))); + } + + @Test + public void testChangePasswordWeb() throws IOException { + String error = executeBasicWebInteraction(cookie, path, "oldpassword=" + URLEncoder.encode(TEST_PASSWORD, "UTF-8") // + + "&pword1=" + URLEncoder.encode(TEST_PASSWORD + "v2", "UTF-8")// + + "&pword2=" + URLEncoder.encode(TEST_PASSWORD + "v2", "UTF-8")); + assertNull(error); + assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2"))); + assertFalse(isLoggedin(login(u.getEmail(), TEST_PASSWORD))); + + } + + @Test + public void testChangePasswordWebOldWrong() throws IOException { + String error = executeBasicWebInteraction(cookie, path, "oldpassword=a" + URLEncoder.encode(TEST_PASSWORD, "UTF-8") // + + "&pword1=" + URLEncoder.encode(TEST_PASSWORD + "v2", "UTF-8")// + + "&pword2=" + URLEncoder.encode(TEST_PASSWORD + "v2", "UTF-8")); + assertNotNull(error); + assertFalse(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2"))); + assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD))); + + } + + @Test + public void testChangePasswordWebNewWrong() throws IOException { + String error = executeBasicWebInteraction(cookie, path, "oldpassword=" + URLEncoder.encode(TEST_PASSWORD, "UTF-8") // + + "&pword1=" + URLEncoder.encode(TEST_PASSWORD + "v2", "UTF-8")// + + "&pword2=a" + URLEncoder.encode(TEST_PASSWORD + "v2", "UTF-8")); + assertNotNull(error); + assertFalse(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2"))); + assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD))); + + } + + @Test + public void testChangePasswordWebNewEasy() throws IOException { + String error = executeBasicWebInteraction(cookie, path, "oldpassword=" + URLEncoder.encode(TEST_PASSWORD, "UTF-8") // + + "&pword1=a&pword2=a"); + assertNotNull(error); + assertFalse(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2"))); + assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD))); + + } + + @Test + public void testChangePasswordWebMissingFields() throws IOException { + String np = URLEncoder.encode(TEST_PASSWORD + "v2", "UTF-8"); + assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD))); + String error = executeBasicWebInteraction(cookie, path, "oldpassword=" + URLEncoder.encode(TEST_PASSWORD, "UTF-8") // + + "&pword1=" + np); + assertNotNull(error); + assertFalse(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2"))); + assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD))); + + error = executeBasicWebInteraction(cookie, path, "oldpassword=" + URLEncoder.encode(TEST_PASSWORD, "UTF-8") // + + "&pword2=" + np); + assertNotNull(error); + assertFalse(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2"))); + assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD))); + + error = executeBasicWebInteraction(cookie, path, "pword1=" + np + "&pword2=" + np); + assertNotNull(error); + assertFalse(isLoggedin(login(u.getEmail(), TEST_PASSWORD + "v2"))); + assertTrue(isLoggedin(login(u.getEmail(), TEST_PASSWORD))); + + } }