]> WPIA git - gigi.git/blobdiff - tests/org/cacert/gigi/pages/main/RegisterPageTest.java
add: new test cases for handling of residence country in user account
[gigi.git] / tests / org / cacert / gigi / pages / main / RegisterPageTest.java
index 331aad38418c2ae012b3003fb11de8240deca262..eba981237f9fd2117a44063f1308ab93b5abb1d1 100644 (file)
@@ -32,7 +32,9 @@ public class RegisterPageTest extends ManagedTest {
     public static final String p;
 
     @Before
-    public void setUp() throws Exception {}
+    public void setUp() throws Exception {
+        clearCaches(); // We do many registers in this test suite.
+    }
 
     private static String createBase() {
         return createUniqueName() + "@email.de";
@@ -46,7 +48,7 @@ public class RegisterPageTest extends ManagedTest {
 
         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&tos_agree=1&mname=mn&suffix=sf&email=";
 
-        String query = defaultSignup + URLEncoder.encode("correct3_" + uniq + "@email.de", "UTF-8") + "&general=1&country=1&regional=1&radius=1";
+        String query = defaultSignup + URLEncoder.encode("correct3_" + uniq + "@email.de", "UTF-8") + "&general=1&country=1&regional=1&radius=1&name-type=western";
         String data = fetchStartErrorMessage(runRegister(query));
         assertNull(data);
         assertSuccessfullRegMail();
@@ -139,19 +141,32 @@ public class RegisterPageTest extends ManagedTest {
     public void testTooYoung() throws IOException {
         Calendar c = GregorianCalendar.getInstance();
         c.add(Calendar.YEAR, -User.MINIMUM_AGE + 2);
-        testFailedForm("fname=a&lname=b&email=" + createUniqueName() + "@email.de" + p + "&day=1&month=1&year=" + c.get(Calendar.YEAR) + "&tos_agree=1");
+        testFailedForm("fname=a&lname=b&email=" + createUniqueName() + "@email.de" + p + "&day=" + c.get(Calendar.DAY_OF_MONTH) + "&month=" + (c.get(Calendar.MONTH) + 1) + "&year=" + c.get(Calendar.YEAR) + "&tos_agree=1");
+    }
+
+    @Test
+    public void testTooOld() throws IOException {
+        Calendar c = GregorianCalendar.getInstance();
+        c.add(Calendar.YEAR, -User.MAXIMUM_PLAUSIBLE_AGE);
+        c.add(Calendar.DAY_OF_MONTH, -1);
+        testFailedForm("fname=a&lname=b&email=" + createUniqueName() + "@email.de" + p + "&day=" + c.get(Calendar.DAY_OF_MONTH) + "&month=" + (c.get(Calendar.MONTH) + 1) + "&year=" + c.get(Calendar.YEAR) + "&tos_agree=1");
     }
 
     @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=28&month=10&year=1950");
         assertThat(run, containsString("fn" + uniq));
         assertThat(run, containsString("ln" + uniq));
         assertThat(run, containsString("ma" + uniq + "@cacert.org"));
         assertThat(run, not(containsString("pas" + uniq)));
         assertThat(run, not(containsString("pas2" + uniq)));
-
+        // test year
+        assertThat(run, containsString("name=\"year\" value=\"1950\""));
+        // test month
+        assertThat(run, containsString("<option value='10' selected=\"selected\">O"));
+        // test day
+        assertThat(run, containsString("<option selected=\"selected\">28</option>"));
     }
 
     @Test
@@ -197,4 +212,31 @@ public class RegisterPageTest extends ManagedTest {
         assertTrue(startError, !startError.startsWith("</div>"));
     }
 
+    @Test
+    public void testRegisterWithCountry() throws IOException, InterruptedException {
+        long uniq = System.currentTimeMillis();
+        String email = "country" + uniq + "@email.de";
+
+        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&tos_agree=1&mname=mn&suffix=sf&email=";
+
+        String query = defaultSignup + URLEncoder.encode(email, "UTF-8") + "&general=1&country=1&regional=1&radius=1&name-type=western&residenceCountry=DE";
+        String data = fetchStartErrorMessage(runRegister(query));
+        assertNull(data);
+        User u = User.getByEmail(email);
+        assertEquals("DE", u.getResidenceCountry().getCountryCode());
+    }
+
+    @Test
+    public void testRegisterWithoutCountry() throws IOException, InterruptedException {
+        long uniq = System.currentTimeMillis();
+        String email = "countryno" + uniq + "@email.de";
+
+        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&tos_agree=1&mname=mn&suffix=sf&email=";
+
+        String query = defaultSignup + URLEncoder.encode(email, "UTF-8") + "&general=1&country=1&regional=1&radius=1&name-type=western&residenceCountry=invalid";
+        String data = fetchStartErrorMessage(runRegister(query));
+        assertNull(data);
+        User u = User.getByEmail(email);
+        assertEquals(null, u.getResidenceCountry());
+    }
 }