]> WPIA git - gigi.git/commitdiff
UPD: Abstracted web interactions
authorJanis Streib <janis@dogcraft.de>
Thu, 24 Jul 2014 22:12:54 +0000 (00:12 +0200)
committerFelix Dörre <felix@dogcraft.de>
Thu, 24 Jul 2014 23:44:46 +0000 (01:44 +0200)
tests/org/cacert/gigi/pages/account/TestChangePassword.java
tests/org/cacert/gigi/testUtils/ManagedTest.java

index 5f095575f78bedda73aa133fac6bcc7705526389..4b9e48d7711ab50b82aedbe369dd8986b23e8e8d 100644 (file)
@@ -3,22 +3,17 @@ 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.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;
+       String path = ChangePasswordPage.PATH;
 
        public TestChangePassword() throws IOException {
                cookie = login(u.getEmail(), TEST_PASSWORD);
@@ -41,9 +36,10 @@ public class TestChangePassword extends ManagedTest {
 
        @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"));
+               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)));
@@ -52,9 +48,10 @@ public class TestChangePassword extends ManagedTest {
 
        @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"));
+               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)));
@@ -63,9 +60,10 @@ public class TestChangePassword extends ManagedTest {
 
        @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"));
+               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)));
@@ -74,8 +72,9 @@ public class TestChangePassword extends ManagedTest {
 
        @Test
        public void testChangePasswordWebNewEasy() throws IOException {
-               String error = executeChangePassword("oldpassword=" + URLEncoder.encode(TEST_PASSWORD, "UTF-8") //
-                       + "&pword1=a&pword2=a");
+               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)));
@@ -86,41 +85,24 @@ public class TestChangePassword extends ManagedTest {
        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);
+               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 = executeChangePassword("oldpassword=" + URLEncoder.encode(TEST_PASSWORD, "UTF-8") //
+               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 = executeChangePassword("pword1=" + np + "&pword2=" + np);
+               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)));
 
        }
 
-       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;
-       }
-
 }
index 20318a7f03eb35a46fcba5abad8bb7d714644ed0..d7a5fcac9dba458d5ce7b09a966b2f1c47e88dfe 100644 (file)
@@ -1,7 +1,6 @@
 package org.cacert.gigi.testUtils;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.*;
 
 import java.io.BufferedReader;
 import java.io.DataOutputStream;
@@ -389,4 +388,22 @@ public class ManagedTest {
                return parts;
        }
 
+       public String executeBasicWebInteraction(String cookie, String path, String query) throws IOException,
+               MalformedURLException, UnsupportedEncodingException {
+               URLConnection uc = new URL("https://" + getServerName() + path).openConnection();
+               uc.addRequestProperty("Cookie", cookie);
+               String csrf = getCSRF(uc);
+
+               uc = new URL("https://" + getServerName() + 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;
+       }
+
 }