]> WPIA git - gigi.git/commitdiff
Add a testcase for the assurance page checks.
authorFelix Dörre <felix@dogcraft.de>
Fri, 27 Jun 2014 13:02:49 +0000 (15:02 +0200)
committerFelix Dörre <felix@dogcraft.de>
Fri, 27 Jun 2014 13:04:48 +0000 (15:04 +0200)
tests/org/cacert/gigi/pages/wot/TestAssurance.java [new file with mode: 0644]

diff --git a/tests/org/cacert/gigi/pages/wot/TestAssurance.java b/tests/org/cacert/gigi/pages/wot/TestAssurance.java
new file mode 100644 (file)
index 0000000..73d60ca
--- /dev/null
@@ -0,0 +1,133 @@
+package org.cacert.gigi.pages.wot;
+
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.net.URLEncoder;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import org.cacert.gigi.IOUtils;
+import org.cacert.gigi.testUtils.ManagedTest;
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+public class TestAssurance extends ManagedTest {
+       private String assurerM;
+       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, "xvXV.1");
+               assuree = createAssuranceUser("a", "c", assureeM, "xvXV.1");
+               cookie = login(assurerM, "xvXV.1");
+
+       }
+       @Test
+       public void testAssureSearch() throws IOException {
+               String loc = search("email=" + URLEncoder.encode(assureeM, "UTF-8")
+                               + "&day=1&month=1&year=1910");
+               assertTrue(loc, loc.endsWith(AssurePage.PATH + "/" + assuree));
+       }
+
+       @Test
+       public void testAssureSearchEmail() throws IOException {
+               String loc = search("email=1" + URLEncoder.encode(assureeM, "UTF-8")
+                               + "&day=1&month=1&year=1910");
+               assertNull(loc);
+       }
+       @Test
+       public void testAssureSearchDob() throws IOException {
+               String loc = search("email=" + URLEncoder.encode(assureeM, "UTF-8")
+                               + "&day=2&month=1&year=1910");
+               assertNull(loc);
+               loc = search("email=" + URLEncoder.encode(assureeM, "UTF-8")
+                               + "&day=1&month=2&year=1910");
+               assertNull(loc);
+               loc = search("email=" + URLEncoder.encode(assureeM, "UTF-8")
+                               + "&day=1&month=1&year=1911");
+               assertNull(loc);
+       }
+       private String search(String query) throws MalformedURLException,
+                       IOException, UnsupportedEncodingException {
+               URL u = new URL("https://" + getServerName() + AssurePage.PATH);
+               URLConnection uc = u.openConnection();
+               uc.setDoOutput(true);
+               uc.addRequestProperty("Cookie", cookie);
+               uc.getOutputStream().write((query).getBytes());
+               uc.getOutputStream().flush();
+
+               String loc = uc.getHeaderField("Location");
+               return loc;
+       }
+       @Test
+       public void testAssureForm() throws IOException {
+               String error = getError("date=2000-01-01&location=testcase&certify=1&rules=1&CCAAgreed=1&assertion=1");
+               assertTrue(error, error.startsWith("</div>"));
+       }
+       @Test
+       public void testAssureFormFufure() throws IOException {
+               SimpleDateFormat sdf = new SimpleDateFormat("YYYY");
+               int year = Integer.parseInt(sdf.format(new Date(System
+                               .currentTimeMillis()))) + 2;
+               String error = getError("date="
+                               + year
+                               + "-01-01&location=testcase&certify=1&rules=1&CCAAgreed=1&assertion=1");
+               assertTrue(error, !error.startsWith("</div>"));
+       }
+       @Test
+       public void testAssureFormNoLoc() throws IOException {
+               String error = getError("date=2000-01-01&location=a&certify=1&rules=1&CCAAgreed=1&assertion=1");
+               assertTrue(error, !error.startsWith("</div>"));
+               error = getError("date=2000-01-01&location=&certify=1&rules=1&CCAAgreed=1&assertion=1");
+               assertTrue(error, !error.startsWith("</div>"));
+       }
+
+       @Test
+       public void testAssureFormInvalDate() throws IOException {
+               String error = getError("date=20000101&location=testcase&certify=1&rules=1&CCAAgreed=1&assertion=1");
+               assertTrue(error, !error.startsWith("</div>"));
+               error = getError("date=&location=testcase&certify=1&rules=1&CCAAgreed=1&assertion=1");
+               assertTrue(error, !error.startsWith("</div>"));
+       }
+       @Test
+       public void testAssureFormBoxes() throws IOException {
+               String error = getError("date=2000-01-01&location=testcase&certify=0&rules=1&CCAAgreed=1&assertion=1");
+               assertTrue(error, !error.startsWith("</div>"));
+               error = getError("date=2000-01-01&location=testcase&certify=1&rules=&CCAAgreed=1&assertion=1");
+               assertTrue(error, !error.startsWith("</div>"));
+               error = getError("date=2000-01-01&location=testcase&certify=1&rules=1&CCAAgreed=a&assertion=1");
+               assertTrue(error, !error.startsWith("</div>"));
+               error = getError("date=2000-01-01&location=testcase&certify=1&rules=1&CCAAgreed=1&assertion=z");
+               assertTrue(error, !error.startsWith("</div>"));
+       }
+       private String getError(String query) throws MalformedURLException,
+                       IOException {
+               URLConnection uc = buildupAssureFormConnection();
+               uc.getOutputStream().write((query).getBytes());
+               uc.getOutputStream().flush();
+               String error = fetchStartErrorMessage(IOUtils.readURL(uc));
+               return error;
+       }
+       private URLConnection buildupAssureFormConnection()
+                       throws MalformedURLException, IOException {
+               URL u = new URL("https://" + getServerName() + AssurePage.PATH + "/"
+                               + assuree);
+               URLConnection uc = u.openConnection();
+               uc.addRequestProperty("Cookie", cookie);
+               uc.getInputStream();// request form
+               uc = u.openConnection();
+               uc.addRequestProperty("Cookie", cookie);
+               uc.setDoOutput(true);
+               return uc;
+       }
+
+}