when can null be returned, when can't null be returned.
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)));
}
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;
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://"));
}
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 {
"&adddomain&csrf=" + csrf;
URL u2 = sendDomainForm(u, content);
- TestMail mail = getMailReciever().recieve();
+ TestMail mail = getMailReciever().receive();
if (emailVariant == 0) {
- Assert.assertNotNull(mail);
mail.verify();
}
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 {
"&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);
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 {
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);
import org.cacert.gigi.util.SimpleSigner;
import org.junit.After;
import org.junit.AfterClass;
-import org.junit.Assert;
import org.junit.BeforeClass;
/**
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;
}
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);
}
throw new Error();
- } catch (InterruptedException e) {
- throw new Error(e);
} catch (IOException e) {
throw new Error(e);
}
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);
LinkedBlockingQueue<TestMail> mails = new LinkedBlockingQueue<TestEmailReciever.TestMail>();
- 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 <code>null</code>
+ * if there was no mail sent in 30 seconds.
+ *
+ * @return The intercepted {@link TestMail} or <code>null</code> 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 {