X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;ds=sidebyside;f=tests%2Forg%2Fcacert%2Fgigi%2Fpages%2Fmain%2FRegisterPageTest.java;h=dd53ec50248b9f06104a51b160d9087221188d0e;hb=dd40a6d5a2eef7b82839596f541f040a539b9ea5;hp=97e6f8182fdb7e1cd6287c2d4ae5231b7d962446;hpb=d4892aa6c2fff51ce1a8edde2643cca46b8f0d29;p=gigi.git diff --git a/tests/org/cacert/gigi/pages/main/RegisterPageTest.java b/tests/org/cacert/gigi/pages/main/RegisterPageTest.java index 97e6f818..dd53ec50 100644 --- a/tests/org/cacert/gigi/pages/main/RegisterPageTest.java +++ b/tests/org/cacert/gigi/pages/main/RegisterPageTest.java @@ -3,28 +3,18 @@ package org.cacert.gigi.pages.main; import static org.junit.Assert.*; import java.io.IOException; -import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; -import java.net.MalformedURLException; -import java.net.URL; import java.net.URLEncoder; +import java.util.regex.Pattern; -import org.cacert.gigi.IOUtils; -import org.cacert.gigi.InitTruststore; +import org.cacert.gigi.testUtils.InitTruststore; +import org.cacert.gigi.testUtils.ManagedTest; +import org.cacert.gigi.testUtils.TestEmailReciever.TestMail; import org.junit.Before; -import org.junit.Ignore; import org.junit.Test; -public class RegisterPageTest { - private static final URL registerService; +public class RegisterPageTest extends ManagedTest { static { - URL u = null; - try { - u = new URL("https://localhost/register"); - } catch (MalformedURLException e) { - e.printStackTrace(); - } - registerService = u; InitTruststore.run(); HttpURLConnection.setFollowRedirects(false); } @@ -32,20 +22,51 @@ public class RegisterPageTest { @Before public void setUp() throws Exception { } + @Test - public void testSuccess() throws IOException { - String startError = fetchStartErrorMessage("fname=a&lname=b&email=e&pword1=ap&pword2=ap&day=1&month=1&year=1910&cca_agree=1"); - assertTrue(startError, startError.startsWith("")); + public void testSuccess() throws IOException, InterruptedException { + long uniq = System.currentTimeMillis(); + registerUser("ab", "b", "correct" + uniq + "@email.de", TEST_PASSWORD); + assertSuccessfullRegMail(); + + String defaultSignup = "fname=" + URLEncoder.encode("ab", "UTF-8") + "&lname=" + + URLEncoder.encode("b", "UTF-8") + "&pword1=" + URLEncoder.encode(TEST_PASSWORD, "UTF-8") + "&pword2=" + + URLEncoder.encode(TEST_PASSWORD, "UTF-8") + + "&day=1&month=1&year=1910&cca_agree=1&mname=mn&suffix=sf&email="; + + String query = defaultSignup + URLEncoder.encode("correct3_" + uniq + "@email.de", "UTF-8") + + "&general=1&country=1®ional=1&radius=1"; + String data = fetchStartErrorMessage(runRegister(query)); + assertTrue(data, data.startsWith("")); + assertSuccessfullRegMail(); + + getMailReciever().setEmailCheckError("400 Greylisted"); + getMailReciever().setApproveRegex(Pattern.compile("a")); + query = defaultSignup + URLEncoder.encode("correct4_" + uniq + "@email.de", "UTF-8") + + "&general=1&country=1®ional=1&radius=1"; + data = fetchStartErrorMessage(runRegister(query)); + assertFalse(data, data.startsWith("")); + + assertNull(getMailReciever().recieve()); + + } + + private void assertSuccessfullRegMail() { + TestMail tm = waitForMail(); + String link = tm.extractLink(); + assertTrue(link, link.startsWith("https://")); } @Test public void testNoFname() throws IOException { testFailedForm("lname=b&email=e&pword1=ap&pword2=ap&day=1&month=1&year=1910&cca_agree=1"); } + @Test public void testNoLname() throws IOException { testFailedForm("fname=a&email=e&pword1=ap&pword2=ap&day=1&month=1&year=1910&cca_agree=1"); } + @Test public void testNoEmail() throws IOException { testFailedForm("fname=a&lname=b&pword1=ap&pword2=ap&day=1&month=1&year=1910&cca_agree=1"); @@ -65,20 +86,24 @@ public class RegisterPageTest { public void testNoDay() throws IOException { testFailedForm("fname=a&lname=b&email=e&pword1=ap&pword2=ap&month=1&year=1910&cca_agree=1"); } + @Test public void testNoMonth() throws IOException { testFailedForm("fname=a&lname=b&email=e&pword1=ap&pword2=ap&day=1&year=1910&cca_agree=1"); } + @Test public void testNoYear() throws IOException { testFailedForm("fname=a&lname=b&email=e&pword1=ap&pword2=ap&day=1&month=1&cca_agree=1"); } + @Test public void testInvDay() throws IOException { testFailedForm("fname=a&lname=b&email=e&pword1=ap&pword2=ap&day=40&month=1&year=1910&cca_agree=1"); testFailedForm("fname=a&lname=b&email=e&pword1=ap&pword2=ap&day=0&month=1&year=1910&cca_agree=1"); testFailedForm("fname=a&lname=b&email=e&pword1=ap&pword2=ap&day=a&month=1&year=1910&cca_agree=1"); } + @Test public void testInvMonth() throws IOException { testFailedForm("fname=a&lname=b&email=e&pword1=ap&pword2=ap&day=1&month=20&year=1910&cca_agree=1"); @@ -86,6 +111,7 @@ public class RegisterPageTest { testFailedForm("fname=a&lname=b&email=e&pword1=ap&pword2=ap&day=1&month=-1&year=1910&cca_agree=1"); testFailedForm("fname=a&lname=b&email=e&pword1=ap&pword2=ap&day=1&month=a&year=1910&cca_agree=1"); } + @Test public void testInvYear() throws IOException { testFailedForm("fname=a&lname=b&email=e&pword1=ap&pword2=ap&day=1&month=1&year=0&cca_agree=1"); @@ -93,6 +119,7 @@ public class RegisterPageTest { testFailedForm("fname=a&lname=b&email=e&pword1=ap&pword2=ap&day=1&month=1&year=a&cca_agree=1"); testFailedForm("fname=a&lname=b&email=e&pword1=ap&pword2=ap&day=1&month=1&year=-1&cca_agree=1"); } + @Test public void testNoAgree() throws IOException { testFailedForm("fname=a&lname=b&email=e&pword1=ap&pword2=ap&day=1&month=1&year=1910&cca_agree=a"); @@ -101,9 +128,8 @@ public class RegisterPageTest { @Test public void testDataStays() throws IOException { long uniq = System.currentTimeMillis(); - String run = runRegister("fname=fn" + uniq + "&lname=ln" + uniq - + "&email=ma" + uniq + "@cacert.org&pword1=pas" + uniq - + "&pword2=pas2" + uniq + "&day=1&month=1&year=0"); + String run = runRegister("fname=fn" + uniq + "&lname=ln" + uniq + "&email=ma" + uniq + "@cacert.org&pword1=pas" + + uniq + "&pword2=pas2" + uniq + "&day=1&month=1&year=0"); assertTrue(run.contains("fn" + uniq)); assertTrue(run.contains("ln" + uniq)); assertTrue(run.contains("ma" + uniq + "@cacert.org")); @@ -115,75 +141,44 @@ public class RegisterPageTest { @Test public void testCheckboxesStay() throws IOException { String run2 = runRegister("general=1&country=a®ional=1&radius=0"); - assertTrue(run2 - .contains("name=\"general\" value=\"1\" checked=\"checked\">")); + assertTrue(run2.contains("name=\"general\" value=\"1\" checked=\"checked\">")); assertTrue(run2.contains("name=\"country\" value=\"1\">")); - assertTrue(run2 - .contains("name=\"regional\" value=\"1\" checked=\"checked\">")); + assertTrue(run2.contains("name=\"regional\" value=\"1\" checked=\"checked\">")); assertTrue(run2.contains("name=\"radius\" value=\"1\">")); run2 = runRegister("general=0&country=1&radius=1"); assertTrue(run2.contains("name=\"general\" value=\"1\">")); - assertTrue(run2 - .contains("name=\"country\" value=\"1\" checked=\"checked\">")); + assertTrue(run2.contains("name=\"country\" value=\"1\" checked=\"checked\">")); assertTrue(run2.contains("name=\"regional\" value=\"1\">")); - assertTrue(run2 - .contains("name=\"radius\" value=\"1\" checked=\"checked\">")); + assertTrue(run2.contains("name=\"radius\" value=\"1\" checked=\"checked\">")); } - @Ignore @Test public void testDoubleMail() throws IOException { long uniq = System.currentTimeMillis(); - registerUser("RegisterTest", "User", "testmail" + uniq + "@cacert.org", - "registerPW"); + registerUser("RegisterTest", "User", "testmail" + uniq + "@cacert.org", TEST_PASSWORD); try { - registerUser("RegisterTest", "User", "testmail" + uniq - + "@cacert.org", "registerPW"); - throw new Error( - "Registering a user with the same email needs to fail."); + registerUser("RegisterTest", "User", "testmail" + uniq + "@cacert.org", TEST_PASSWORD); + throw new Error("Registering a user with the same email needs to fail."); } catch (AssertionError e) { } } - private static void testFailedForm(String query) throws IOException { - String startError = fetchStartErrorMessage(query); - assertTrue(startError, !startError.startsWith("")); - } - private static String fetchStartErrorMessage(String query) - throws IOException { - String d = runRegister(query); - String formFail = "
"; - int idx = d.indexOf(formFail); - assertNotEquals(-1, idx); - String startError = d.substring(idx + formFail.length(), idx + 100) - .trim(); - return startError; - } - - public static void registerUser(String firstName, String lastName, - String email, String password) { + @Test + public void testInvalidMailbox() { + getMailReciever().setApproveRegex(Pattern.compile("a")); + long uniq = System.currentTimeMillis(); try { - String query = "fname=" + URLEncoder.encode(firstName, "UTF-8") - + "&lname=" + URLEncoder.encode(lastName, "UTF-8") - + "&email=" + URLEncoder.encode(email, "UTF-8") - + "&pword1=" + URLEncoder.encode(password, "UTF-8") - + "&pword2=" + URLEncoder.encode(password, "UTF-8") - + "&day=1&month=1&year=1910&cca_agree=1"; - String data = fetchStartErrorMessage(query); - assertTrue(data, data.startsWith("
")); - } catch (UnsupportedEncodingException e) { - throw new Error(e); - } catch (IOException e) { - throw new Error(e); + registerUser("RegisterTest", "User", "testInvalidMailbox" + uniq + "@cacert.org", TEST_PASSWORD); + throw new Error("Registering a user with invalid mailbox must fail."); + } catch (AssertionError e) { + } } - private static String runRegister(String param) throws IOException { - HttpURLConnection uc = (HttpURLConnection) registerService - .openConnection(); - uc.setDoOutput(true); - uc.getOutputStream().write(param.getBytes()); - String d = IOUtils.readURL(uc); - return d; + + private void testFailedForm(String query) throws IOException { + String startError = fetchStartErrorMessage(runRegister(query)); + assertTrue(startError, !startError.startsWith("")); } + }