]> WPIA git - gigi.git/blobdiff - tests/org/cacert/gigi/pages/wot/TestAssurance.java
add: external test for password reset
[gigi.git] / tests / org / cacert / gigi / pages / wot / TestAssurance.java
index f519fb4e4744c4cbab15a775200efc3d3228f0d0..58a791f372fcc0066a83b00244ffd44e0b9e3884 100644 (file)
@@ -12,6 +12,7 @@ import java.net.URLConnection;
 import java.net.URLEncoder;
 import java.sql.SQLException;
 import java.text.SimpleDateFormat;
+import java.util.Calendar;
 import java.util.Date;
 import java.util.regex.Pattern;
 
@@ -27,20 +28,17 @@ public class TestAssurance extends ManagedTest {
 
     private String assureeM;
 
-    private int assurer;
-
-    private int assuree;
-
     private String cookie;
 
     @Before
     public void setup() throws IOException {
         assurerM = createUniqueName() + "@cacert-test.org";
         assureeM = createUniqueName() + "@cacert-test.org";
-        assurer = createAssuranceUser("a", "b", assurerM, TEST_PASSWORD);
-        assuree = createVerifiedUser("a", "c", assureeM, TEST_PASSWORD);
-        cookie = login(assurerM, TEST_PASSWORD);
 
+        createAssuranceUser("a", "b", assurerM, TEST_PASSWORD);
+        createVerifiedUser("a", "c", assureeM, TEST_PASSWORD);
+
+        cookie = login(assurerM, TEST_PASSWORD);
     }
 
     @Test
@@ -70,7 +68,7 @@ public class TestAssurance extends ManagedTest {
         URLConnection uc = u.openConnection();
         uc.setDoOutput(true);
         uc.addRequestProperty("Cookie", cookie);
-        uc.getOutputStream().write(("search&" + query).getBytes());
+        uc.getOutputStream().write(("search&" + query).getBytes("UTF-8"));
         uc.getOutputStream().flush();
 
         return IOUtils.readURL(uc);
@@ -82,11 +80,21 @@ public class TestAssurance extends ManagedTest {
         assertNull(error);
     }
 
+    @Test
+    public void testAssureFormContanisData() throws IOException {
+        URLConnection uc = buildupAssureFormConnection(true);
+        uc.getOutputStream().write(("date=2000-01-01&location=testcase&rules=1&CCAAgreed=1&assertion=1&points=10").getBytes("UTF-8"));
+        uc.getOutputStream().flush();
+        String data = IOUtils.readURL(uc);
+        assertThat(data, containsString("2000-01-01"));
+        assertThat(data, containsString("testcase"));
+    }
+
     @Test
     public void testAssureFormNoCSRF() throws IOException {
         // override csrf
         HttpURLConnection uc = (HttpURLConnection) buildupAssureFormConnection(false);
-        uc.getOutputStream().write(("date=2000-01-01&location=testcase&certify=1&rules=1&CCAAgreed=1&assertion=1&points=10").getBytes());
+        uc.getOutputStream().write(("date=2000-01-01&location=testcase&certify=1&rules=1&CCAAgreed=1&assertion=1&points=10").getBytes("UTF-8"));
         uc.getOutputStream().flush();
         assertEquals(500, uc.getResponseCode());
     }
@@ -95,7 +103,7 @@ public class TestAssurance extends ManagedTest {
     public void testAssureFormWrongCSRF() throws IOException {
         // override csrf
         HttpURLConnection uc = (HttpURLConnection) buildupAssureFormConnection(false);
-        uc.getOutputStream().write(("date=2000-01-01&location=testcase&certify=1&rules=1&CCAAgreed=1&assertion=1&points=10&csrf=aragc").getBytes());
+        uc.getOutputStream().write(("date=2000-01-01&location=testcase&certify=1&rules=1&CCAAgreed=1&assertion=1&points=10&csrf=aragc").getBytes("UTF-8"));
         uc.getOutputStream().flush();
         assertEquals(500, uc.getResponseCode());
     }
@@ -119,7 +127,7 @@ public class TestAssurance extends ManagedTest {
 
         assertNull(executeBasicWebInteraction(assureeCookie, MyDetails.PATH, newName + "&" + newDob + "&processDetails", 0));
 
-        uc.getOutputStream().write(("date=2000-01-01&location=testcase&certify=1&rules=1&CCAAgreed=1&assertion=1&points=10").getBytes());
+        uc.getOutputStream().write(("date=2000-01-01&location=testcase&certify=1&rules=1&CCAAgreed=1&assertion=1&points=10").getBytes("UTF-8"));
         uc.getOutputStream().flush();
         String error = fetchStartErrorMessage(IOUtils.readURL(uc));
         assertTrue(error, !error.startsWith("</div>"));
@@ -133,6 +141,17 @@ public class TestAssurance extends ManagedTest {
         assertTrue(error, !error.startsWith("</div>"));
     }
 
+    @Test
+    public void testAssureFormFutureOK() throws IOException {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        Calendar c = Calendar.getInstance();
+        c.setTimeInMillis(System.currentTimeMillis());
+        c.add(Calendar.HOUR_OF_DAY, 12);
+
+        String error = getError("date=" + sdf.format(new Date(c.getTimeInMillis())) + "&location=testcase&certify=1&rules=1&CCAAgreed=1&assertion=1&points=10");
+        assertNull(error);
+    }
+
     @Test
     public void testAssureFormNoLoc() throws IOException {
         String error = getError("date=2000-01-01&location=a&certify=1&rules=1&CCAAgreed=1&assertion=1&points=10");
@@ -189,25 +208,29 @@ public class TestAssurance extends ManagedTest {
 
     private String getError(String query) throws MalformedURLException, IOException {
         URLConnection uc = buildupAssureFormConnection(true);
-        uc.getOutputStream().write((query).getBytes());
+        uc.getOutputStream().write((query).getBytes("UTF-8"));
         uc.getOutputStream().flush();
         String error = fetchStartErrorMessage(IOUtils.readURL(uc));
         return error;
     }
 
     private URLConnection buildupAssureFormConnection(boolean doCSRF) throws MalformedURLException, IOException {
+        return buildupAssureFormConnection(cookie, assureeM, doCSRF);
+    }
+
+    public static URLConnection buildupAssureFormConnection(String cookie, String email, boolean doCSRF) throws MalformedURLException, IOException {
         URL u = new URL("https://" + getServerName() + AssurePage.PATH);
         URLConnection uc = u.openConnection();
         uc.addRequestProperty("Cookie", cookie);
         uc.setDoOutput(true);
-        uc.getOutputStream().write(("email=" + URLEncoder.encode(assureeM, "UTF-8") + "&day=1&month=1&year=1910&search").getBytes());
+        uc.getOutputStream().write(("email=" + URLEncoder.encode(email, "UTF-8") + "&day=1&month=1&year=1910&search").getBytes("UTF-8"));
 
         String csrf = getCSRF(uc);
         uc = u.openConnection();
         uc.addRequestProperty("Cookie", cookie);
         uc.setDoOutput(true);
         if (doCSRF) {
-            uc.getOutputStream().write(("csrf=" + csrf + "&").getBytes());
+            uc.getOutputStream().write(("csrf=" + csrf + "&").getBytes("UTF-8"));
         }
         return uc;
     }