X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;ds=sidebyside;f=tests%2Forg%2Fcacert%2Fgigi%2Fpages%2Fwot%2FTestAssurance.java;h=d626cee0a3e55c18a37c0efd39473df368cc07ae;hb=d23d7a6fa9dc38c6193fea70017e0bff11257be5;hp=b6396a17c900d188239f509ce01b0e1b8fd1643b;hpb=7c4d8d1effca280cbb6ac0cc8add1157e484e76b;p=gigi.git diff --git a/tests/org/cacert/gigi/pages/wot/TestAssurance.java b/tests/org/cacert/gigi/pages/wot/TestAssurance.java index b6396a17..d626cee0 100644 --- a/tests/org/cacert/gigi/pages/wot/TestAssurance.java +++ b/tests/org/cacert/gigi/pages/wot/TestAssurance.java @@ -7,7 +7,6 @@ import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; import java.net.MalformedURLException; -import java.net.URL; import java.net.URLConnection; import java.net.URLEncoder; import java.sql.SQLException; @@ -32,6 +31,7 @@ public class TestAssurance extends ManagedTest { @Before public void setup() throws IOException { + clearCaches(); assurerM = createUniqueName() + "@cacert-test.org"; assureeM = createUniqueName() + "@cacert-test.org"; @@ -44,30 +44,28 @@ public class TestAssurance extends ManagedTest { @Test public void testAssureSearch() throws IOException { String loc = search("email=" + URLEncoder.encode(assureeM, "UTF-8") + "&day=1&month=1&year=1910"); - assertTrue(loc, loc.contains("type=\"checkbox\" name=\"CCAAgreed\"")); + assertTrue(loc, loc.contains("type=\"checkbox\" name=\"tos_agree\"")); } @Test public void testAssureSearchEmail() throws IOException { String loc = search("email=1" + URLEncoder.encode(assureeM, "UTF-8") + "&day=1&month=1&year=1910"); - assertTrue(loc, !loc.contains("type=\"checkbox\" name=\"CCAAgreed\"")); + assertTrue(loc, !loc.contains("type=\"checkbox\" name=\"tos_agree\"")); } @Test public void testAssureSearchDob() throws IOException { String loc = search("email=" + URLEncoder.encode(assureeM, "UTF-8") + "&day=2&month=1&year=1910"); - assertTrue(loc, !loc.contains("type=\"checkbox\" name=\"CCAAgreed\"")); + assertTrue(loc, !loc.contains("type=\"checkbox\" name=\"tos_agree\"")); loc = search("email=" + URLEncoder.encode(assureeM, "UTF-8") + "&day=1&month=2&year=1910"); - assertTrue(loc, !loc.contains("type=\"checkbox\" name=\"CCAAgreed\"")); + assertTrue(loc, !loc.contains("type=\"checkbox\" name=\"tos_agree\"")); loc = search("email=" + URLEncoder.encode(assureeM, "UTF-8") + "&day=1&month=1&year=1911"); - assertTrue(loc, !loc.contains("type=\"checkbox\" name=\"CCAAgreed\"")); + assertTrue(loc, !loc.contains("type=\"checkbox\" name=\"tos_agree\"")); } private String search(String query) throws MalformedURLException, IOException, UnsupportedEncodingException { - URL u = new URL("https://" + getServerName() + AssurePage.PATH); - URLConnection uc = u.openConnection(); + URLConnection uc = get(cookie, AssurePage.PATH); uc.setDoOutput(true); - uc.addRequestProperty("Cookie", cookie); uc.getOutputStream().write(("search&" + query).getBytes("UTF-8")); uc.getOutputStream().flush(); @@ -76,14 +74,14 @@ public class TestAssurance extends ManagedTest { @Test public void testAssureForm() throws IOException { - String error = getError("date=2000-01-01&location=testcase&certify=1&rules=1&CCAAgreed=1&assertion=1&points=10"); + String error = getError("date=2000-01-01&location=testcase&certify=1&rules=1&tos_agree=1&assertion=1&points=10"); 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().write(("date=2000-01-01&location=testcase&rules=1&tos_agree=1&assertion=1&points=10").getBytes("UTF-8")); uc.getOutputStream().flush(); String data = IOUtils.readURL(uc); assertThat(data, containsString("2000-01-01")); @@ -94,7 +92,7 @@ public class TestAssurance extends ManagedTest { 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("UTF-8")); + uc.getOutputStream().write(("date=2000-01-01&location=testcase&certify=1&rules=1&tos_agree=1&assertion=1&points=10").getBytes("UTF-8")); uc.getOutputStream().flush(); assertEquals(500, uc.getResponseCode()); } @@ -103,41 +101,56 @@ 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("UTF-8")); + uc.getOutputStream().write(("date=2000-01-01&location=testcase&certify=1&rules=1&tos_agree=1&assertion=1&points=10&csrf=aragc").getBytes("UTF-8")); uc.getOutputStream().flush(); assertEquals(500, uc.getResponseCode()); } @Test public void testAssureFormRaceName() throws IOException, SQLException { - testAssureFormRace(true); + testAssureFormRace(true, false); } @Test public void testAssureFormRaceDoB() throws IOException, SQLException { - testAssureFormRace(false); + testAssureFormRace(false, false); } - public void testAssureFormRace(boolean name) throws IOException, SQLException { + @Test + public void testAssureFormRaceNameBlind() throws IOException, SQLException { + testAssureFormRace(true, true); + } + + @Test + public void testAssureFormRaceDoBBlind() throws IOException, SQLException { + testAssureFormRace(false, true); + } + + public void testAssureFormRace(boolean name, boolean succeed) throws IOException, SQLException { URLConnection uc = buildupAssureFormConnection(true); String assureeCookie = login(assureeM, TEST_PASSWORD); - String newName = "lname=" + (name ? "c" : "a") + "&fname=a&mname=&suffix="; - String newDob = "day=1&month=1&year=" + (name ? 1910 : 1911); + String newName = "lname=" + (name && !succeed ? "a" : "c") + "&fname=a&mname=&suffix="; + String newDob = "day=1&month=1&year=" + ( !name && !succeed ? 1911 : 1910); 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("UTF-8")); + uc.getOutputStream().write(("date=2000-01-01&location=testcase&certify=1&rules=1&tos_agree=1&assertion=1&points=10").getBytes("UTF-8")); uc.getOutputStream().flush(); String error = fetchStartErrorMessage(IOUtils.readURL(uc)); - assertTrue(error, !error.startsWith("")); + if (succeed) { + assertNull(error); + } else { + assertTrue(error, !error.startsWith("")); + assertThat(error, containsString("changed his personal details")); + } } @Test public void testAssureFormFuture() 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&points=10"); + String error = getError("date=" + year + "-01-01&location=testcase&certify=1&rules=1&tos_agree=1&assertion=1&points=10"); assertTrue(error, !error.startsWith("")); } @@ -148,46 +161,45 @@ public class TestAssurance extends ManagedTest { 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"); + String error = getError("date=" + sdf.format(new Date(c.getTimeInMillis())) + "&location=testcase&certify=1&rules=1&tos_agree=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"); + String error = getError("date=2000-01-01&location=a&certify=1&rules=1&tos_agree=1&assertion=1&points=10"); assertTrue(error, !error.startsWith("")); - error = getError("date=2000-01-01&location=&certify=1&rules=1&CCAAgreed=1&assertion=1&points=10"); + error = getError("date=2000-01-01&location=&certify=1&rules=1&tos_agree=1&assertion=1&points=10"); 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&points=10"); + String error = getError("date=20000101&location=testcase&certify=1&rules=1&tos_agree=1&assertion=1&points=10"); assertTrue(error, !error.startsWith("")); - error = getError("date=&location=testcase&certify=1&rules=1&CCAAgreed=1&assertion=1&points=10"); + error = getError("date=&location=testcase&certify=1&rules=1&tos_agree=1&assertion=1&points=10"); 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&points=10"); + String error = getError("date=2000-01-01&location=testcase&certify=0&rules=1&tos_agree=1&assertion=1&points=10"); assertTrue(error, !error.startsWith("")); - error = getError("date=2000-01-01&location=testcase&certify=1&rules=&CCAAgreed=1&assertion=1&points=10"); + error = getError("date=2000-01-01&location=testcase&certify=1&rules=&tos_agree=1&assertion=1&points=10"); assertTrue(error, !error.startsWith("")); - error = getError("date=2000-01-01&location=testcase&certify=1&rules=1&CCAAgreed=a&assertion=1&points=10"); + error = getError("date=2000-01-01&location=testcase&certify=1&rules=1&tos_agree=a&assertion=1&points=10"); assertTrue(error, !error.startsWith("")); - error = getError("date=2000-01-01&location=testcase&certify=1&rules=1&CCAAgreed=1&assertion=z&points=10"); + error = getError("date=2000-01-01&location=testcase&certify=1&rules=1&tos_agree=1&assertion=z&points=10"); assertTrue(error, !error.startsWith("")); } @Test public void testAssureListingValid() throws IOException { String uniqueLoc = createUniqueName(); - String error = getError("date=2000-01-01&location=" + uniqueLoc + "&certify=1&rules=1&CCAAgreed=1&assertion=1&points=10"); + String error = getError("date=2000-01-01&location=" + uniqueLoc + "&certify=1&rules=1&tos_agree=1&assertion=1&points=10"); assertNull(error); String cookie = login(assureeM, TEST_PASSWORD); - URLConnection url = new URL("https://" + getServerName() + MyPoints.PATH).openConnection(); - url.setRequestProperty("Cookie", cookie); + URLConnection url = get(cookie, MyPoints.PATH); String resp = IOUtils.readURL(url); resp = resp.split(Pattern.quote(""))[0]; assertThat(resp, containsString(uniqueLoc)); @@ -196,11 +208,10 @@ public class TestAssurance extends ManagedTest { @Test public void testAssurerListingValid() throws IOException { String uniqueLoc = createUniqueName(); - String error = getError("date=2000-01-01&location=" + uniqueLoc + "&certify=1&rules=1&CCAAgreed=1&assertion=1&points=10"); + String error = getError("date=2000-01-01&location=" + uniqueLoc + "&certify=1&rules=1&tos_agree=1&assertion=1&points=10"); assertNull(error); String cookie = login(assurerM, TEST_PASSWORD); - URLConnection url = new URL("https://" + getServerName() + MyPoints.PATH).openConnection(); - url.setRequestProperty("Cookie", cookie); + URLConnection url = get(cookie, MyPoints.PATH); String resp = IOUtils.readURL(url); resp = resp.split(Pattern.quote(""))[1]; assertThat(resp, containsString(uniqueLoc)); @@ -215,15 +226,16 @@ public class TestAssurance extends ManagedTest { } private URLConnection buildupAssureFormConnection(boolean doCSRF) throws MalformedURLException, IOException { - URL u = new URL("https://" + getServerName() + AssurePage.PATH); - URLConnection uc = u.openConnection(); - uc.addRequestProperty("Cookie", cookie); + return buildupAssureFormConnection(cookie, assureeM, doCSRF); + } + + public static URLConnection buildupAssureFormConnection(String cookie, String email, boolean doCSRF) throws MalformedURLException, IOException { + URLConnection uc = get(cookie, AssurePage.PATH); uc.setDoOutput(true); - uc.getOutputStream().write(("email=" + URLEncoder.encode(assureeM, "UTF-8") + "&day=1&month=1&year=1910&search").getBytes("UTF-8")); + 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 = get(cookie, AssurePage.PATH); uc.setDoOutput(true); if (doCSRF) { uc.getOutputStream().write(("csrf=" + csrf + "&").getBytes("UTF-8"));