X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=tests%2Forg%2Fcacert%2Fgigi%2FtestUtils%2FTestEmailReciever.java;fp=tests%2Forg%2Fcacert%2Fgigi%2FtestUtils%2FTestEmailReciever.java;h=40b4e0312eebd5f57f8c282e8917770ef4971e2d;hp=93cd7e4540f17e0d3024b6216117cd3fa42530b7;hb=943d8e7ed0ea5a9d56e7e694a3cbd849c52bad16;hpb=05e8bb67c3407cbecbb528db16b1608d8534907e diff --git a/tests/org/cacert/gigi/testUtils/TestEmailReciever.java b/tests/org/cacert/gigi/testUtils/TestEmailReciever.java index 93cd7e45..40b4e031 100644 --- a/tests/org/cacert/gigi/testUtils/TestEmailReciever.java +++ b/tests/org/cacert/gigi/testUtils/TestEmailReciever.java @@ -13,150 +13,157 @@ import java.util.regex.Pattern; 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) { - 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()); - m.find(); - return m.group(0); - } - - } - - private Socket s; - private DataInputStream dis; - private DataOutputStream dos; - - public TestEmailReciever(SocketAddress target) throws IOException { - s = new Socket(); - s.connect(target); - s.setKeepAlive(true); - s.setSoTimeout(1000 * 60 * 60); - 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 { - while (true) { - String type = dis.readUTF(); - if (type.equals("mail")) { - String to = dis.readUTF(); - String subject = dis.readUTF(); - String message = dis.readUTF(); - String from = dis.readUTF(); - String replyto = dis.readUTF(); - mails.add(new TestMail(to, subject, message, from, replyto)); - } else if (type.equals("challengeAddrBox")) { - String email = dis.readUTF(); - dos.writeUTF(quickEmailCheck(email)); - dos.flush(); - } else if (type.equals("ping")) { - } else { - System.err.println("Unknown type: " + type); - } - } - } catch (IOException e) { - 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; - } - - 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)); - } + + 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) { + 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()); + m.find(); + return m.group(0); + } + + } + + private Socket s; + + private DataInputStream dis; + + private DataOutputStream dos; + + public TestEmailReciever(SocketAddress target) throws IOException { + s = new Socket(); + s.connect(target); + s.setKeepAlive(true); + s.setSoTimeout(1000 * 60 * 60); + 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 { + while (true) { + String type = dis.readUTF(); + if (type.equals("mail")) { + String to = dis.readUTF(); + String subject = dis.readUTF(); + String message = dis.readUTF(); + String from = dis.readUTF(); + String replyto = dis.readUTF(); + mails.add(new TestMail(to, subject, message, from, replyto)); + } else if (type.equals("challengeAddrBox")) { + String email = dis.readUTF(); + dos.writeUTF(quickEmailCheck(email)); + dos.flush(); + } else if (type.equals("ping")) { + } else { + System.err.println("Unknown type: " + type); + } + } + } catch (IOException e) { + 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; + } + + 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)); + } }