From 285506739b7109f16dbff1c24a45e0728e8c1b98 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Felix=20D=C3=B6rre?= Date: Sun, 1 Mar 2015 00:43:56 +0100 Subject: [PATCH] Fix: consolidate TestEmailReveiver interface when can null be returned, when can't null be returned. --- tests/org/cacert/gigi/LoginTest.java | 2 +- .../gigi/pages/main/RegisterPageTest.java | 8 +--- tests/org/cacert/gigi/ping/TestDNS.java | 4 +- tests/org/cacert/gigi/ping/TestHTTP.java | 4 +- tests/org/cacert/gigi/ping/TestSSL.java | 4 +- .../cacert/gigi/testUtils/ManagedTest.java | 22 +---------- .../gigi/testUtils/TestEmailReciever.java | 39 ++++++++++++++++++- 7 files changed, 45 insertions(+), 38 deletions(-) diff --git a/tests/org/cacert/gigi/LoginTest.java b/tests/org/cacert/gigi/LoginTest.java index d6c6fc49..f02f0ad0 100644 --- a/tests/org/cacert/gigi/LoginTest.java +++ b/tests/org/cacert/gigi/LoginTest.java @@ -14,7 +14,7 @@ public class LoginTest extends ManagedTest { public void testLoginUnverified() throws IOException { String email = createUniqueName() + "@testmail.org"; registerUser("an", "bn", email, TEST_PASSWORD); - waitForMail(); + getMailReciever().receive(); assertFalse(isLoggedin(login(email, TEST_PASSWORD))); } diff --git a/tests/org/cacert/gigi/pages/main/RegisterPageTest.java b/tests/org/cacert/gigi/pages/main/RegisterPageTest.java index c6b2a67b..695598ae 100644 --- a/tests/org/cacert/gigi/pages/main/RegisterPageTest.java +++ b/tests/org/cacert/gigi/pages/main/RegisterPageTest.java @@ -10,8 +10,6 @@ import java.util.regex.Pattern; import org.cacert.gigi.testUtils.InitTruststore; import org.cacert.gigi.testUtils.ManagedTest; -import org.cacert.gigi.testUtils.TestEmailReciever.TestMail; -import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -44,14 +42,12 @@ public class RegisterPageTest extends ManagedTest { data = fetchStartErrorMessage(runRegister(query)); assertNotNull(data); - assertNull(getMailReciever().recieve()); + assertNull(getMailReciever().poll()); } private void assertSuccessfullRegMail() { - TestMail tm = waitForMail(); - Assert.assertNotNull(tm); - String link = tm.extractLink(); + String link = getMailReciever().receive().extractLink(); assertTrue(link, link.startsWith("https://")); } diff --git a/tests/org/cacert/gigi/ping/TestDNS.java b/tests/org/cacert/gigi/ping/TestDNS.java index 021012a1..829299e1 100644 --- a/tests/org/cacert/gigi/ping/TestDNS.java +++ b/tests/org/cacert/gigi/ping/TestDNS.java @@ -18,7 +18,6 @@ import org.cacert.gigi.testUtils.PingTest; import org.cacert.gigi.testUtils.TestEmailReciever.TestMail; import org.cacert.gigi.util.DNSUtil; import org.cacert.gigi.util.RandomToken; -import org.junit.Assert; import org.junit.Test; public class TestDNS extends PingTest { @@ -77,9 +76,8 @@ public class TestDNS extends PingTest { "&adddomain&csrf=" + csrf; URL u2 = sendDomainForm(u, content); - TestMail mail = getMailReciever().recieve(); + TestMail mail = getMailReciever().receive(); if (emailVariant == 0) { - Assert.assertNotNull(mail); mail.verify(); } diff --git a/tests/org/cacert/gigi/ping/TestHTTP.java b/tests/org/cacert/gigi/ping/TestHTTP.java index 4daa0d7e..3618532e 100644 --- a/tests/org/cacert/gigi/ping/TestHTTP.java +++ b/tests/org/cacert/gigi/ping/TestHTTP.java @@ -23,7 +23,6 @@ import org.cacert.gigi.testUtils.IOUtils; import org.cacert.gigi.testUtils.PingTest; import org.cacert.gigi.testUtils.TestEmailReciever.TestMail; import org.cacert.gigi.util.RandomToken; -import org.junit.Assert; import org.junit.Test; public class TestHTTP extends PingTest { @@ -72,9 +71,8 @@ public class TestHTTP extends PingTest { "&adddomain&csrf=" + csrf; URL u2 = sendDomainForm(u, content); - TestMail mail = getMailReciever().recieve(); + TestMail mail = getMailReciever().receive(); if (emailVariant == 0) { - Assert.assertNotNull(mail); mail.verify(); } waitForPings(2); diff --git a/tests/org/cacert/gigi/ping/TestSSL.java b/tests/org/cacert/gigi/ping/TestSSL.java index a9aa73b1..52fca8e6 100644 --- a/tests/org/cacert/gigi/ping/TestSSL.java +++ b/tests/org/cacert/gigi/ping/TestSSL.java @@ -37,7 +37,6 @@ import org.cacert.gigi.pages.account.domain.DomainOverview; import org.cacert.gigi.testUtils.IOUtils; import org.cacert.gigi.testUtils.PingTest; import org.cacert.gigi.testUtils.TestEmailReciever.TestMail; -import org.junit.Assert; import org.junit.Test; public class TestSSL extends PingTest { @@ -120,9 +119,8 @@ public class TestSSL extends PingTest { boolean secondsSucceeds = sslVariant != 0; assertTrue(secondsSucceeds ^ acceptSSLServer(sss2)); - TestMail mail = getMailReciever().recieve(); + TestMail mail = getMailReciever().receive(); if (emailVariant == 0) { - Assert.assertNotNull(mail); mail.verify(); } waitForPings(3); diff --git a/tests/org/cacert/gigi/testUtils/ManagedTest.java b/tests/org/cacert/gigi/testUtils/ManagedTest.java index f5354eb9..9ce1f893 100644 --- a/tests/org/cacert/gigi/testUtils/ManagedTest.java +++ b/tests/org/cacert/gigi/testUtils/ManagedTest.java @@ -53,7 +53,6 @@ import org.cacert.gigi.util.ServerConstants; import org.cacert.gigi.util.SimpleSigner; import org.junit.After; import org.junit.AfterClass; -import org.junit.Assert; import org.junit.BeforeClass; /** @@ -222,18 +221,6 @@ public class ManagedTest extends ConfiguredTest { ManagedTest.setAcceptLanguage(null); } - public TestMail waitForMail() { - TestMail mail = null; - while (null == mail) { - try { - mail = ter.recieve(); - } catch (InterruptedException e) { - throw new Error(e); - } - } - return mail; - } - public static TestEmailReciever getMailReciever() { return ter; } @@ -283,9 +270,7 @@ public class ManagedTest extends ConfiguredTest { public static int createVerifiedUser(String firstName, String lastName, String email, String password) { registerUser(firstName, lastName, email, password); try { - TestMail tm = ter.recieve(); - Assert.assertNotNull(tm); - tm.verify(); + ter.receive().verify(); GigiPreparedStatement ps = DatabaseConnection.getInstance().prepare("SELECT id FROM users where email=?"); ps.setString(1, email); @@ -297,8 +282,6 @@ public class ManagedTest extends ConfiguredTest { } throw new Error(); - } catch (InterruptedException e) { - throw new Error(e); } catch (IOException e) { throw new Error(e); } @@ -482,8 +465,7 @@ public class ManagedTest extends ConfiguredTest { public static EmailAddress createVerifiedEmail(User u) throws InterruptedException, GigiApiException { EmailAddress adrr = new EmailAddress(u, createUniqueName() + "test@test.tld"); adrr.insert(Language.getInstance(Locale.ENGLISH)); - TestMail testMail = getMailReciever().recieve(); - Assert.assertNotNull(testMail); + TestMail testMail = getMailReciever().receive(); assertEquals(adrr.getAddress(), testMail.getTo()); String hash = testMail.extractLink().substring(testMail.extractLink().lastIndexOf('=') + 1); adrr.verify(hash); diff --git a/tests/org/cacert/gigi/testUtils/TestEmailReciever.java b/tests/org/cacert/gigi/testUtils/TestEmailReciever.java index dc90acde..099bbf1a 100644 --- a/tests/org/cacert/gigi/testUtils/TestEmailReciever.java +++ b/tests/org/cacert/gigi/testUtils/TestEmailReciever.java @@ -103,11 +103,46 @@ public final class TestEmailReciever extends EmailProvider implements Runnable { LinkedBlockingQueue mails = new LinkedBlockingQueue(); - public TestMail recieve() throws InterruptedException { - TestMail poll = mails.poll(5, TimeUnit.SECONDS); + /** + * Retrieves an outgoing mail from the system. The method will return a + * {@link TestMail} or fail. + * + * @return The intercepted {@link TestMail} + * @see #poll() + */ + public TestMail receive() { + TestMail poll; + + try { + poll = mails.poll(60, TimeUnit.SECONDS); + + } catch (InterruptedException e) { + throw new AssertionError("Interrupted while recieving mails"); + } + if (poll == null) { + throw new AssertionError("Mail recieving timed out"); + } + return poll; } + /** + * Retrieves an outgoing mail from the system or returns null + * if there was no mail sent in 30 seconds. + * + * @return The intercepted {@link TestMail} or null if no mail + * has been sent. + * @see #receive() + */ + public TestMail poll() { + try { + return mails.poll(60, TimeUnit.SECONDS); + + } catch (InterruptedException e) { + throw new AssertionError("Interrupted while recieving mails"); + } + } + @Override public void run() { try { -- 2.39.2