From: Felix Dörre Date: Fri, 27 Jun 2014 13:02:49 +0000 (+0200) Subject: Add a testcase for the assurance page checks. X-Git-Url: https://code.wpia.club/?p=gigi.git;a=commitdiff_plain;h=858fd22ca396d71ae7e26cf36f87212d83436c96 Add a testcase for the assurance page checks. --- diff --git a/tests/org/cacert/gigi/pages/wot/TestAssurance.java b/tests/org/cacert/gigi/pages/wot/TestAssurance.java new file mode 100644 index 00000000..73d60cad --- /dev/null +++ b/tests/org/cacert/gigi/pages/wot/TestAssurance.java @@ -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("")); + } + @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("")); + } + @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("")); + error = getError("date=2000-01-01&location=&certify=1&rules=1&CCAAgreed=1&assertion=1"); + assertTrue(error, !error.startsWith("")); + } + + @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("")); + error = getError("date=&location=testcase&certify=1&rules=1&CCAAgreed=1&assertion=1"); + assertTrue(error, !error.startsWith("")); + } + @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("")); + error = getError("date=2000-01-01&location=testcase&certify=1&rules=&CCAAgreed=1&assertion=1"); + assertTrue(error, !error.startsWith("")); + error = getError("date=2000-01-01&location=testcase&certify=1&rules=1&CCAAgreed=a&assertion=1"); + assertTrue(error, !error.startsWith("")); + error = getError("date=2000-01-01&location=testcase&certify=1&rules=1&CCAAgreed=1&assertion=z"); + assertTrue(error, !error.startsWith("")); + } + 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; + } + +}