]> WPIA git - gigi.git/blobdiff - tests/org/cacert/gigi/pages/account/TestMailManagement.java
add: allow manually triggered email reping. (addresses #5)
[gigi.git] / tests / org / cacert / gigi / pages / account / TestMailManagement.java
index 42786d48213c6c754df86889f6d08d2899bb7e35..412e2d78a1e98da97839fbd081b659b3777d50a2 100644 (file)
@@ -6,70 +6,134 @@ import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.net.MalformedURLException;
 import java.net.URLEncoder;
+import java.util.Locale;
 
-import org.cacert.gigi.EmailAddress;
 import org.cacert.gigi.GigiApiException;
-import org.cacert.gigi.Language;
-import org.cacert.gigi.User;
-import org.cacert.gigi.testUtils.ManagedTest;
-import org.cacert.gigi.testUtils.TestEmailReciever.TestMail;
+import org.cacert.gigi.dbObjects.EmailAddress;
+import org.cacert.gigi.dbObjects.ObjectCache;
+import org.cacert.gigi.dbObjects.User;
+import org.cacert.gigi.pages.account.mail.MailOverview;
+import org.cacert.gigi.testUtils.ClientTest;
 import org.junit.Test;
 
-public class TestMailManagement extends ManagedTest {
-       private User u = User
-               .getById(createVerifiedUser("fn", "ln", createUniqueName() + "uni@example.org", TEST_PASSWORD));
-       private String cookie;
-       private String path = MailOverview.DEFAULT_PATH;
-
-       public TestMailManagement() throws IOException {
-               cookie = login(u.getEmail(), TEST_PASSWORD);
-               assertTrue(isLoggedin(cookie));
-       }
-
-       @Test
-       public void testMailAddInternal() throws InterruptedException, GigiApiException {
-               EmailAddress adrr = new EmailAddress("test@test.tld", u);
-               adrr.insert(Language.getInstance("en"));
-               TestMail testMail = getMailReciever().recieve();
-               assertTrue(adrr.getAddress().equals(testMail.getTo()));
-               String hash = testMail.extractLink().substring(testMail.extractLink().lastIndexOf('=') + 1);
-               adrr.verify(hash);
-       }
-
-       @Test
-       public void testMailAddInternalFaulty() {
-               try {
-                       new EmailAddress("kurti ", u);
-                       fail();
-               } catch (IllegalArgumentException e) {
-                       // Intended.
-               }
-       }
-
-       @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();
-       }
-
-       @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));
-               EmailAddress[] addrs = u.getEmails();
-               for (int i = 0; i < addrs.length; i++) {
-                       if (addrs[i].getAddress().equals(newMail)) {
-                               fail();
-                       }
-               }
-       }
+public class TestMailManagement extends ClientTest {
+
+    private String path = MailOverview.DEFAULT_PATH;
+
+    public TestMailManagement() throws IOException {
+        cookie = login(u.getEmail(), TEST_PASSWORD);
+        assertTrue(isLoggedin(cookie));
+    }
+
+    @Test
+    public void testMailAddInternal() throws InterruptedException, GigiApiException {
+        createVerifiedEmail(u);
+    }
+
+    @Test
+    public void testMailAddInternalFaulty() throws GigiApiException {
+        try {
+            new EmailAddress(u, "kurti ", Locale.ENGLISH);
+            fail();
+        } catch (IllegalArgumentException e) {
+            // Intended.
+        }
+    }
+
+    @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();
+    }
+
+    @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));
+        EmailAddress[] addrs = u.getEmails();
+        for (int i = 0; i < addrs.length; i++) {
+            if (addrs[i].getAddress().equals(newMail)) {
+                fail();
+            }
+        }
+    }
+
+    @Test
+    public void testMailSetDefaultWeb() throws MalformedURLException, UnsupportedEncodingException, IOException, InterruptedException, GigiApiException {
+        EmailAddress addr = createVerifiedEmail(u);
+        assertNull(executeBasicWebInteraction(cookie, path, "default:" + addr.getId()));
+        ObjectCache.clearAllCaches();
+        assertEquals(User.getById(u.getId()).getEmail(), addr.getAddress());
+    }
+
+    @Test
+    public void testMailSetDefaultWebUnverified() throws MalformedURLException, UnsupportedEncodingException, IOException, InterruptedException, GigiApiException {
+        EmailAddress addr = new EmailAddress(u, createUniqueName() + "test@test.tld", Locale.ENGLISH);
+        assertNotNull(executeBasicWebInteraction(cookie, path, "default:" + addr.getId()));
+        assertNotEquals(User.getById(u.getId()).getEmail(), addr.getAddress());
+        getMailReciever().clearMails();
+    }
+
+    @Test
+    public void testMailSetDefaultWebInvalidID() throws MalformedURLException, UnsupportedEncodingException, IOException, InterruptedException, GigiApiException {
+        User u2 = User.getById(createVerifiedUser("fn", "ln", createUniqueName() + "uni@example.org", TEST_PASSWORD));
+        int id = -1;
+        EmailAddress[] emails = u2.getEmails();
+        for (int i = 0; i < emails.length; i++) {
+            if (emails[i].getAddress().equals(u2.getEmail())) {
+                id = emails[i].getId();
+            }
+        }
+        assertNotEquals(id, -1);
+        assertNotNull(executeBasicWebInteraction(cookie, path, "default:" + id));
+        assertNotEquals(User.getById(u.getId()).getEmail(), u2.getEmail());
+        getMailReciever().clearMails();
+    }
+
+    @Test
+    public void testMailDeleteWeb() throws InterruptedException, GigiApiException, MalformedURLException, UnsupportedEncodingException, IOException {
+        EmailAddress addr = createVerifiedEmail(u);
+        assertNull(executeBasicWebInteraction(cookie, path, "delete:" + addr.getId(), 0));
+        User u = User.getById(this.u.getId());
+        EmailAddress[] addresses = u.getEmails();
+        for (int i = 0; i < addresses.length; i++) {
+            assertNotEquals(addresses[i].getAddress(), addr.getAddress());
+        }
+    }
+
+    @Test
+    public void testMailDeleteWebMulti() throws InterruptedException, GigiApiException, MalformedURLException, UnsupportedEncodingException, IOException {
+        EmailAddress[] addr = new EmailAddress[] {
+                createVerifiedEmail(u), createVerifiedEmail(u)
+        };
+        assertNull(executeBasicWebInteraction(cookie, path, "delete:" + addr[0].getId() + "&delete:" + addr[1].getId(), 0));
+        User u = User.getById(this.u.getId());
+        EmailAddress[] addresses = u.getEmails();
+        for (int i = 0; i < addresses.length; i++) {
+            assertNotEquals(addresses[i].getAddress(), addr[0].getAddress());
+            assertNotEquals(addresses[i].getAddress(), addr[1].getAddress());
+        }
+    }
+
+    @Test
+    public void testMailDeleteWebFaulty() throws MalformedURLException, UnsupportedEncodingException, IOException {
+        User u2 = User.getById(createVerifiedUser("fn", "ln", createUniqueName() + "uni@test.tld", TEST_PASSWORD));
+        EmailAddress em = u2.getEmails()[0];
+        assertNotNull(executeBasicWebInteraction(cookie, path, "delete:" + em.getId(), 0));
+        u2 = User.getById(u2.getId());
+        assertNotEquals(u2.getEmails().length, 0);
+    }
+
+    @Test
+    public void testMailDeleteWebPrimary() throws MalformedURLException, UnsupportedEncodingException, IOException {
+        assertNotNull(executeBasicWebInteraction(cookie, path, "delete:" + u.getEmails()[0].getId(), 0));
+        assertNotEquals(u.getEmails().length, 0);
+    }
 }