X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=tests%2Forg%2Fcacert%2Fgigi%2Fpages%2Fwot%2FTestAssurance.java;h=0af859ccc979ad664a0cc47a682ae9365ce25bba;hp=136ca610e5b6af7fdff1aaabcd3d7e29266aea8d;hb=ccac61faa88e98f12aaa3b5c5e64d26f3fc003c9;hpb=f96b3da29921ef8ca10b07b1abbd0b964d3c6826 diff --git a/tests/org/cacert/gigi/pages/wot/TestAssurance.java b/tests/org/cacert/gigi/pages/wot/TestAssurance.java index 136ca610..0af859cc 100644 --- a/tests/org/cacert/gigi/pages/wot/TestAssurance.java +++ b/tests/org/cacert/gigi/pages/wot/TestAssurance.java @@ -16,11 +16,15 @@ import java.util.Calendar; import java.util.Date; import java.util.regex.Pattern; +import org.cacert.gigi.GigiApiException; import org.cacert.gigi.database.GigiPreparedStatement; +import org.cacert.gigi.dbObjects.Country; +import org.cacert.gigi.dbObjects.Group; import org.cacert.gigi.dbObjects.User; import org.cacert.gigi.pages.account.MyDetails; import org.cacert.gigi.testUtils.IOUtils; import org.cacert.gigi.testUtils.ManagedTest; +import org.cacert.gigi.testUtils.TestEmailReceiver.TestMail; import org.cacert.gigi.util.DayDate; import org.cacert.gigi.util.Notary; import org.hamcrest.Matcher; @@ -93,13 +97,13 @@ public class TestAssurance extends ManagedTest { @Test public void testAssureForm() throws IOException { - executeSuccess("date=" + validVerificationDateString() + "&location=testcase&certify=1&rules=1&assertion=1&points=10"); + executeSuccess("date=" + validVerificationDateString() + "&location=testcase&countryCode=DE&certify=1&rules=1&assertion=1&points=10"); } @Test public void testAssureFormEmpty() throws IOException { URLConnection uc = buildupAssureFormConnection(true); - uc.getOutputStream().write(("date=" + validVerificationDateString() + "&location=testcase&rules=1&assertion=1&points=10").getBytes("UTF-8")); + uc.getOutputStream().write(("date=" + validVerificationDateString() + "&location=testcase&countryCode=DE&rules=1&assertion=1&points=10").getBytes("UTF-8")); uc.getOutputStream().flush(); String data = IOUtils.readURL(uc); assertThat(data, hasError()); @@ -108,7 +112,7 @@ public class TestAssurance extends ManagedTest { @Test public void testAssureFormContanisData() throws IOException { URLConnection uc = buildupAssureFormConnection(true); - uc.getOutputStream().write(("assuredName=" + assureeName + "&date=" + validVerificationDateString() + "&location=testcase&rules=1&assertion=1&points=10").getBytes("UTF-8")); + uc.getOutputStream().write(("assuredName=" + assureeName + "&date=" + validVerificationDateString() + "&location=testcase&countryCode=DE&rules=1&assertion=1&points=10").getBytes("UTF-8")); uc.getOutputStream().flush(); String data = IOUtils.readURL(uc); assertThat(data, containsString(validVerificationDateString())); @@ -119,7 +123,7 @@ public class TestAssurance extends ManagedTest { public void testAssureFormNoCSRF() throws IOException { // override csrf HttpURLConnection uc = (HttpURLConnection) buildupAssureFormConnection(false); - uc.getOutputStream().write(("date=" + validVerificationDateString() + "&location=testcase&certify=1&rules=1&assertion=1&points=10").getBytes("UTF-8")); + uc.getOutputStream().write(("date=" + validVerificationDateString() + "&location=testcase&countryCode=DE&certify=1&rules=1&assertion=1&points=10").getBytes("UTF-8")); uc.getOutputStream().flush(); assertEquals(500, uc.getResponseCode()); } @@ -128,7 +132,7 @@ public class TestAssurance extends ManagedTest { public void testAssureFormWrongCSRF() throws IOException { // override csrf HttpURLConnection uc = (HttpURLConnection) buildupAssureFormConnection(false); - uc.getOutputStream().write(("date=" + validVerificationDateString() + "&location=testcase&certify=1&rules=1&assertion=1&points=10&csrf=aragc").getBytes("UTF-8")); + uc.getOutputStream().write(("date=" + validVerificationDateString() + "&location=testcase&countryCode=DE&certify=1&rules=1&assertion=1&points=10&csrf=aragc").getBytes("UTF-8")); uc.getOutputStream().flush(); assertEquals(500, uc.getResponseCode()); } @@ -151,7 +155,7 @@ public class TestAssurance extends ManagedTest { assertNull(executeBasicWebInteraction(assureeCookie, MyDetails.PATH, newDob + "&action=updateDoB", 0)); - uc.getOutputStream().write(("assuredName=" + assureeName + "&date=" + validVerificationDateString() + "&location=testcase&certify=1&rules=1&assertion=1&points=10").getBytes("UTF-8")); + uc.getOutputStream().write(("assuredName=" + assureeName + "&date=" + validVerificationDateString() + "&location=testcase&countryCode=DE&certify=1&rules=1&assertion=1&points=10").getBytes("UTF-8")); uc.getOutputStream().flush(); String error = fetchStartErrorMessage(IOUtils.readURL(uc)); if (succeed) { @@ -166,7 +170,7 @@ public class TestAssurance extends ManagedTest { public void testAssureFormFuture() throws IOException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy"); int year = Integer.parseInt(sdf.format(new Date(System.currentTimeMillis()))) + 2; - executeFails("date=" + year + "-01-01&location=testcase&certify=1&rules=1&assertion=1&points=10"); + executeFails("date=" + year + "-01-01&location=testcase&countryCode=DE&certify=1&rules=1&assertion=1&points=10"); } @Test @@ -176,12 +180,12 @@ public class TestAssurance extends ManagedTest { c.setTimeInMillis(System.currentTimeMillis()); c.add(Calendar.HOUR_OF_DAY, 12); - executeSuccess("date=" + sdf.format(new Date(c.getTimeInMillis())) + "&location=testcase&certify=1&rules=1&assertion=1&points=10"); + executeSuccess("date=" + sdf.format(new Date(c.getTimeInMillis())) + "&location=testcase&countryCode=DE&certify=1&rules=1&assertion=1&points=10"); } @Test public void testAssureFormPastInRange() throws IOException { - executeSuccess("date=" + validVerificationDateString() + "&location=testcase&certify=1&rules=1&assertion=1&points=10"); + executeSuccess("date=" + validVerificationDateString() + "&location=testcase&countryCode=DE&certify=1&rules=1&assertion=1&points=10"); } @Test @@ -192,7 +196,7 @@ public class TestAssurance extends ManagedTest { c.add(Calendar.MONTH, -Notary.LIMIT_MAX_MONTHS_VERIFICATION); c.add(Calendar.DAY_OF_MONTH, 1); - executeSuccess("date=" + sdf.format(new Date(c.getTimeInMillis())) + "&location=testcase&certify=1&rules=1&assertion=1&points=10"); + executeSuccess("date=" + sdf.format(new Date(c.getTimeInMillis())) + "&location=testcase&countryCode=DE&certify=1&rules=1&assertion=1&points=10"); } @Test @@ -202,49 +206,51 @@ public class TestAssurance extends ManagedTest { c.setTimeInMillis(System.currentTimeMillis()); c.add(Calendar.MONTH, -Notary.LIMIT_MAX_MONTHS_VERIFICATION); - executeFails("date=" + sdf.format(new Date(c.getTimeInMillis())) + "&location=testcase&certify=1&rules=1&assertion=1&points=10"); + executeFails("date=" + sdf.format(new Date(c.getTimeInMillis())) + "&location=testcase&countryCode=DE&certify=1&rules=1&assertion=1&points=10"); } @Test public void testAssureFormNoLoc() throws IOException { - executeFails("date=" + validVerificationDateString() + "&location=a&certify=1&rules=1&assertion=1&points=10"); - executeFails("date=" + validVerificationDateString() + "&location=&certify=1&rules=1&assertion=1&points=10"); + executeFails("date=" + validVerificationDateString() + "&location=a&countryCode=DE&certify=1&rules=1&assertion=1&points=10"); + executeFails("date=" + validVerificationDateString() + "&location=&countryCode=DE&certify=1&rules=1&assertion=1&points=10"); } @Test public void testAssureFormInvalDate() throws IOException { - executeFails("date=20000101&location=testcase&certify=1&rules=1&assertion=1&points=10"); - executeFails("date=&location=testcase&certify=1&rules=1&assertion=1&points=10"); + executeFails("date=20000101&location=testcase&countryCode=DE&certify=1&rules=1&assertion=1&points=10"); + executeFails("date=&location=testcase&countryCode=DE&certify=1&rules=1&assertion=1&points=10"); } @Test public void testAssureFormBoxes() throws IOException { - executeFails("date=" + validVerificationDateString() + "&location=testcase&certify=0&rules=1&assertion=1&points=10"); - executeFails("date=" + validVerificationDateString() + "&location=testcase&certify=1&rules=&assertion=1&points=10"); - executeFails("date=" + validVerificationDateString() + "&location=testcase&certify=1&rules=1&assertion=z&points=10"); + executeFails("date=" + validVerificationDateString() + "&location=testcase&countryCode=DE&certify=0&rules=1&assertion=1&points=10"); + executeFails("date=" + validVerificationDateString() + "&location=testcase&countryCode=DE&certify=1&rules=&assertion=1&points=10"); + executeFails("date=" + validVerificationDateString() + "&location=testcase&countryCode=DE&certify=1&rules=1&assertion=z&points=10"); } @Test - public void testAssureListingValid() throws IOException { + public void testAssureListingValid() throws IOException, GigiApiException { String uniqueLoc = createUniqueName(); - execute("date=" + validVerificationDateString() + "&location=" + uniqueLoc + "&certify=1&rules=1&assertion=1&points=10"); + execute("date=" + validVerificationDateString() + "&location=" + uniqueLoc + "&countryCode=DE&certify=1&rules=1&assertion=1&points=10"); String cookie = login(assureeM, TEST_PASSWORD); URLConnection url = get(cookie, Points.PATH); String resp = IOUtils.readURL(url); resp = resp.split(Pattern.quote(""))[1]; assertThat(resp, containsString(uniqueLoc)); + assertThat(resp, containsString(Country.getCountryByCode("DE", Country.CountryCodeType.CODE_2_CHARS).getName())); } @Test - public void testAssurerListingValid() throws IOException { + public void testAssurerListingValid() throws IOException, GigiApiException { String uniqueLoc = createUniqueName(); - executeSuccess("date=" + validVerificationDateString() + "&location=" + uniqueLoc + "&certify=1&rules=1&assertion=1&points=10"); + executeSuccess("date=" + validVerificationDateString() + "&location=" + uniqueLoc + "&countryCode=DE&certify=1&rules=1&assertion=1&points=10"); String cookie = login(assurerM, TEST_PASSWORD); URLConnection url = get(cookie, Points.PATH); String resp = IOUtils.readURL(url); resp = resp.split(Pattern.quote(""))[2]; assertThat(resp, containsString(uniqueLoc)); + assertThat(resp, containsString(Country.getCountryByCode("DE", Country.CountryCodeType.CODE_2_CHARS).getName())); } private void executeFails(String query) throws MalformedURLException, IOException { @@ -304,7 +310,7 @@ public class TestAssurance extends ManagedTest { // enter second entry String uniqueLoc = createUniqueName(); - executeSuccess("date=" + validVerificationDateString() + "&location=" + uniqueLoc + "&certify=1&rules=1&assertion=1&points=10"); + executeSuccess("date=" + validVerificationDateString() + "&location=" + uniqueLoc + "&countryCode=DE&certify=1&rules=1&assertion=1&points=10"); // enter third entry on the same day URLConnection uc = get(cookie, AssurePage.PATH); @@ -313,4 +319,58 @@ public class TestAssurance extends ManagedTest { assertThat(IOUtils.readURL(uc), hasError()); } + + @Test + public void testAssureFormNoCountry() throws IOException { + executeFails("date=" + validVerificationDateString() + "&location=testcase&countryCode=&certify=1&rules=1&assertion=1&points=10"); + } + + @Test + public void testRANotificationSet() throws IOException, GigiApiException { + getMailReceiver().clearMails(); + + User users[] = User.findByEmail(assurerM); + assertTrue("user RA Agent not found", users != null && users.length > 0); + + User u = users[0]; + u.grantGroup(u, Group.VERIFY_NOTIFICATION); + clearCaches(); + cookie = login(assurerM, TEST_PASSWORD); + + String targetMail = u.getEmail(); + + // enter verification + String uniqueLoc = createUniqueName(); + executeSuccess("date=" + validVerificationDateString() + "&location=" + uniqueLoc + "&countryCode=DE&certify=1&rules=1&assertion=1&points=10"); + TestMail tm; + + do { + tm = getMailReceiver().receive(); + } while ( !tm.getTo().equals(targetMail)); + assertThat(tm.getMessage(), containsString("You entered a verification for the account with email address " + assureeM)); + + } + + @Test + public void testRANotificationNotSet() throws IOException, GigiApiException { + getMailReceiver().clearMails(); + + User users[] = User.findByEmail(assurerM); + assertTrue("user RA Agent not found", users != null && users.length > 0); + + User u = users[0]; + u.revokeGroup(u, Group.VERIFY_NOTIFICATION); + clearCaches(); + cookie = login(assurerM, TEST_PASSWORD); + + // enter verification + String uniqueLoc = createUniqueName(); + executeSuccess("date=" + validVerificationDateString() + "&location=" + uniqueLoc + "&countryCode=DE&certify=1&rules=1&assertion=1&points=10"); + + TestMail tm; + + tm = getMailReceiver().receive(); + assertThat(tm.getMessage(), not(containsString("You entered a verification for the account with email address " + assureeM))); + + } }