]> WPIA git - gigi.git/blobdiff - tests/org/cacert/gigi/pages/account/TestMailManagement.java
add: test cases for domain/email case-sensitivity #15
[gigi.git] / tests / org / cacert / gigi / pages / account / TestMailManagement.java
index 412e2d78a1e98da97839fbd081b659b3777d50a2..5fd14212ca9773b8a393c04eebd545d56e80ee40 100644 (file)
@@ -21,6 +21,7 @@ public class TestMailManagement extends ClientTest {
     private String path = MailOverview.DEFAULT_PATH;
 
     public TestMailManagement() throws IOException {
+        clearCaches(); // and reset rate limits
         cookie = login(u.getEmail(), TEST_PASSWORD);
         assertTrue(isLoggedin(cookie));
     }
@@ -43,26 +44,46 @@ public class TestMailManagement extends ClientTest {
     @Test
     public void testMailAddWeb() throws MalformedURLException, UnsupportedEncodingException, IOException {
         String newMail = createUniqueName() + "uni@example.org";
-        assertNull(executeBasicWebInteraction(cookie, path, "addmail&newemail=" + URLEncoder.encode(newMail, "UTF-8"), 1));
-        EmailAddress[] addrs = u.getEmails();
-        for (int i = 0; i < addrs.length; i++) {
-            if (addrs[i].getAddress().equals(newMail)) {
-                return;
-            }
-        }
-        fail();
+        assertNull(addMail(newMail));
+        assertTrue(existsEmail(newMail));
     }
 
     @Test
     public void testMailAddWebFaulty() throws MalformedURLException, UnsupportedEncodingException, IOException {
         String newMail = createUniqueName() + "uniexample.org";
-        assertNotNull(executeBasicWebInteraction(cookie, path, "addmail&newemail=" + URLEncoder.encode(newMail, "UTF-8"), 1));
+        assertNotNull(addMail(newMail));
+        assertFalse(existsEmail(newMail));
+    }
+
+    @Test
+    public void testMailAddWebMultiple() throws MalformedURLException, UnsupportedEncodingException, IOException {
+        String u = createUniqueName();
+        String newMail = u + "uni@eXample.org";
+        assertNull(addMail(newMail));
+        assertTrue(existsEmail(newMail.toLowerCase()));
+
+        String newMail2 = u + "uni@eXamPlE.org";
+        assertNotNull(addMail(newMail2));
+        assertTrue(existsEmail(newMail2.toLowerCase()));
+
+        String newMail3 = u + "-buni@eXamPlE.org";
+        assertNull(addMail(newMail3));
+        assertTrue(existsEmail(newMail.toLowerCase()));
+        assertTrue(existsEmail(newMail3.toLowerCase()));
+    }
+
+    private String addMail(String newMail) throws IOException, MalformedURLException, UnsupportedEncodingException {
+        return executeBasicWebInteraction(cookie, path, "addmail&newemail=" + URLEncoder.encode(newMail, "UTF-8"), 1);
+    }
+
+    private boolean existsEmail(String newMail) {
         EmailAddress[] addrs = u.getEmails();
         for (int i = 0; i < addrs.length; i++) {
             if (addrs[i].getAddress().equals(newMail)) {
-                fail();
+                return true;
             }
         }
+        return false;
     }
 
     @Test