X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=tests%2Forg%2Fcacert%2Fgigi%2FtestUtils%2FTestEmailReciever.java;h=93cd7e4540f17e0d3024b6216117cd3fa42530b7;hb=2233a655b4ef4c1122a406e83a0e6334b9fd49b6;hp=58b4b89ce6b441533f089d1164298384524a299f;hpb=759d6706a6953c58623061567ef15fcc42e2ecbc;p=gigi.git diff --git a/tests/org/cacert/gigi/testUtils/TestEmailReciever.java b/tests/org/cacert/gigi/testUtils/TestEmailReciever.java index 58b4b89c..93cd7e45 100644 --- a/tests/org/cacert/gigi/testUtils/TestEmailReciever.java +++ b/tests/org/cacert/gigi/testUtils/TestEmailReciever.java @@ -10,36 +10,44 @@ import java.util.concurrent.TimeUnit; import java.util.regex.Matcher; import java.util.regex.Pattern; -public class TestEmailReciever implements Runnable { +import org.cacert.gigi.email.EmailProvider; + +public class TestEmailReciever extends EmailProvider implements Runnable { public class TestMail { String to; String subject; String message; String from; String replyto; - public TestMail(String to, String subject, String message, String from, - String replyto) { + + public TestMail(String to, String subject, String message, String from, String replyto) { this.to = to; this.subject = subject; this.message = message; this.from = from; this.replyto = replyto; } + public String getTo() { return to; } + public String getSubject() { return subject; } + public String getMessage() { return message; } + public String getFrom() { return from; } + public String getReplyto() { return replyto; } + public String extractLink() { Pattern link = Pattern.compile("https?://[^\\s]+(?=\\s)"); Matcher m = link.matcher(getMessage()); @@ -48,6 +56,7 @@ public class TestEmailReciever implements Runnable { } } + private Socket s; private DataInputStream dis; private DataOutputStream dos; @@ -60,12 +69,15 @@ public class TestEmailReciever implements Runnable { dis = new DataInputStream(s.getInputStream()); dos = new DataOutputStream(s.getOutputStream()); new Thread(this).start(); + setInstance(this); } + LinkedBlockingQueue mails = new LinkedBlockingQueue(); public TestMail recieve() throws InterruptedException { return mails.poll(5, TimeUnit.SECONDS); } + @Override public void run() { try { @@ -80,11 +92,7 @@ public class TestEmailReciever implements Runnable { mails.add(new TestMail(to, subject, message, from, replyto)); } else if (type.equals("challengeAddrBox")) { String email = dis.readUTF(); - if (approveRegex.matcher(email).matches()) { - dos.writeUTF("OK"); - } else { - dos.writeUTF("FAIL"); - } + dos.writeUTF(quickEmailCheck(email)); dos.flush(); } else if (type.equals("ping")) { } else { @@ -92,11 +100,29 @@ public class TestEmailReciever implements Runnable { } } } catch (IOException e) { - e.printStackTrace(); + if (!closed) { + e.printStackTrace(); + } } } + + private String quickEmailCheck(String email) throws IOException { + if (approveRegex.matcher(email).matches()) { + return "OK"; + } else { + return error; + } + } + + String error = "FAIL"; + + public void setEmailCheckError(String error) { + this.error = error; + } + Pattern approveRegex = Pattern.compile(".*"); + public void setApproveRegex(Pattern approveRegex) { this.approveRegex = approveRegex; } @@ -104,9 +130,33 @@ public class TestEmailReciever implements Runnable { public void clearMails() { mails.clear(); } + public void reset() { clearMails(); + error = "FAIL"; approveRegex = Pattern.compile(".*"); } + boolean closed = false; + + public void destroy() { + try { + closed = true; + s.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + @Override + public String checkEmailServer(int forUid, String address) throws IOException { + return quickEmailCheck(address); + } + + @Override + public void sendmail(String to, String subject, String message, String from, String replyto, String toname, + String fromname, String errorsto, boolean extra) throws IOException { + mails.add(new TestMail(to, subject, message, from, replyto)); + } + }