X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=tests%2Forg%2Fcacert%2Fgigi%2FtestUtils%2FTestEmailReciever.java;h=b47133b7da2039f1ff8e9b852ec4112f9248c51e;hb=b406570c20c8950cb3955c0bb90516ea1d54a723;hp=a68b1847e0c5cdf10881d86b2e543b20c570b074;hpb=e87392fd58e9152531a8d1cb34cb46e370062108;p=gigi.git diff --git a/tests/org/cacert/gigi/testUtils/TestEmailReciever.java b/tests/org/cacert/gigi/testUtils/TestEmailReciever.java index a68b1847..b47133b7 100644 --- a/tests/org/cacert/gigi/testUtils/TestEmailReciever.java +++ b/tests/org/cacert/gigi/testUtils/TestEmailReciever.java @@ -5,6 +5,8 @@ import java.io.DataOutputStream; import java.io.IOException; import java.net.Socket; import java.net.SocketAddress; +import java.net.URL; +import java.net.URLConnection; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.TimeUnit; import java.util.regex.Matcher; @@ -61,6 +63,22 @@ public class TestEmailReciever extends EmailProvider implements Runnable { return m.group(0); } + public void verify() throws IOException { + String[] parts = extractLink().split("\\?"); + URL u = new URL("https://" + ManagedTest.getServerName() + "/verify?" + parts[1]); + + URLConnection csrfConn = u.openConnection(); + String csrf = ManagedTest.getCSRF(csrfConn, 0); + + u = new URL("https://" + ManagedTest.getServerName() + "/verify"); + URLConnection uc = u.openConnection(); + ManagedTest.cookie(uc, ManagedTest.stripCookie(csrfConn.getHeaderField("Set-Cookie"))); + uc.setDoOutput(true); + uc.getOutputStream().write((parts[1] + "&csrf=" + csrf).getBytes("UTF-8")); + uc.connect(); + uc.getInputStream().close(); + } + } private Socket s; @@ -76,14 +94,18 @@ public class TestEmailReciever extends EmailProvider implements Runnable { s.setSoTimeout(1000 * 60 * 60); dis = new DataInputStream(s.getInputStream()); dos = new DataOutputStream(s.getOutputStream()); - new Thread(this).start(); setInstance(this); } + public void start() { + new Thread(this, "Mail reciever").start(); + } + LinkedBlockingQueue mails = new LinkedBlockingQueue(); public TestMail recieve() throws InterruptedException { - return mails.poll(5, TimeUnit.SECONDS); + TestMail poll = mails.poll(5, TimeUnit.SECONDS); + return poll; } @Override