X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=tests%2Forg%2Fcacert%2Fgigi%2FtestUtils%2FTestEmailReceiver.java;h=cdbf9321f46d33c8739d5e156365daa0da2465c4;hb=bafe96665aa27ee01a09853941fcd7c46573eb5c;hp=789d6bc3fcc4682504603c37105fbcbe903fa935;hpb=cd0c67fc376ea0ab65cfcb195efcf095f9942d89;p=gigi.git diff --git a/tests/org/cacert/gigi/testUtils/TestEmailReceiver.java b/tests/org/cacert/gigi/testUtils/TestEmailReceiver.java index 789d6bc3..cdbf9321 100644 --- a/tests/org/cacert/gigi/testUtils/TestEmailReceiver.java +++ b/tests/org/cacert/gigi/testUtils/TestEmailReceiver.java @@ -13,9 +13,19 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import org.cacert.gigi.email.EmailProvider; - +import org.cacert.gigi.email.TestEmailProvider; + +/** + * This class reveives emails from the current system under test. It is the + * counterpart to the {@link TestEmailProvider} who is loaded into the system to + * intercept the emails. This class resides in the VM that executes the + * testcases and supplies the intercepted emails to the current test case. + */ public final class TestEmailReceiver extends EmailProvider implements Runnable { + /** + * An email that has been intercepted. + */ public class TestMail { String to; @@ -64,7 +74,8 @@ public final class TestEmailReceiver extends EmailProvider implements Runnable { } public void verify() throws IOException { - String[] parts = extractLink().split("\\?"); + String link = extractLink(); + String[] parts = link.split("\\?"); URL u = new URL("https://" + ManagedTest.getServerName() + "/verify?" + parts[1]); URLConnection csrfConn = u.openConnection(); @@ -87,6 +98,16 @@ public final class TestEmailReceiver extends EmailProvider implements Runnable { private DataOutputStream dos; + /** + * Creates a new TestEmailReceiver based on the address where the + * {@link TestEmailProvider} is listening. This class is only ready after + * {@link #start()} has been called. + * + * @param target + * the address where the {@link TestEmailProvider} is listening. + * @throws IOException + * if the connection cannot be opened + */ public TestEmailReceiver(SocketAddress target) throws IOException { s = new Socket(); s.connect(target); @@ -97,11 +118,16 @@ public final class TestEmailReceiver extends EmailProvider implements Runnable { setInstance(this); } + /** + * Spawns a new {@link Thread} that reads incoming {@link TestMail}s. + * + * @see #destroy() + */ public void start() { new Thread(this, "Mail reciever").start(); } - LinkedBlockingQueue mails = new LinkedBlockingQueue(); + private LinkedBlockingQueue mails = new LinkedBlockingQueue(); /** * Retrieves an outgoing mail from the system. The method will return a @@ -135,12 +161,7 @@ public final class TestEmailReceiver extends EmailProvider implements Runnable { * @see #receive() */ public TestMail poll() { - try { - return mails.poll(60, TimeUnit.SECONDS); - - } catch (InterruptedException e) { - throw new AssertionError("Interrupted while recieving mails"); - } + return mails.poll(); } @Override @@ -182,28 +203,59 @@ public final class TestEmailReceiver extends EmailProvider implements Runnable { String error = "FAIL"; + /** + * Sets the error that will be sent back to incoming "fast mail checks" that + * only check for the availability of a mailbox. + * + * @param error + * the error Massage to return in + * {@link EmailProvider#checkEmailServer(int, String)} + */ public void setEmailCheckError(String error) { this.error = error; } - Pattern approveRegex = Pattern.compile(".*"); + private Pattern approveRegex = Pattern.compile(".*"); + /** + * Specifies a pattern that will be used for incoming + * {@link EmailProvider#checkEmailServer(int, String)} calls to determine + * whether the mailbox should exist. + * + * @param approveRegex + * the regex that will perform the check + */ public void setApproveRegex(Pattern approveRegex) { this.approveRegex = approveRegex; } + /** + * Removes all queued mails. + */ public void clearMails() { mails.clear(); } + /** + * Resets this class to its initial state + * + * @see #clearMails() + * @see #setApproveRegex(Pattern) + * @see #setEmailCheckError(String) + */ public void reset() { clearMails(); error = "FAIL"; approveRegex = Pattern.compile(".*"); } - boolean closed = false; + private boolean closed = false; + /** + * stops reading for incoming messages + * + * @see #start() + */ public void destroy() { try { closed = true;