X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=tests%2Forg%2Fcacert%2Fgigi%2FtestUtils%2FTestEmailReciever.java;h=dc90acde7ca02bd9f354e17c3fb333c334375732;hb=87c6ea794b343732e32514cba17d047c6fc196a4;hp=40b4e0312eebd5f57f8c282e8917770ef4971e2d;hpb=943d8e7ed0ea5a9d56e7e694a3cbd849c52bad16;p=gigi.git diff --git a/tests/org/cacert/gigi/testUtils/TestEmailReciever.java b/tests/org/cacert/gigi/testUtils/TestEmailReciever.java index 40b4e031..dc90acde 100644 --- a/tests/org/cacert/gigi/testUtils/TestEmailReciever.java +++ b/tests/org/cacert/gigi/testUtils/TestEmailReciever.java @@ -3,8 +3,10 @@ package org.cacert.gigi.testUtils; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; -import java.net.SocketAddress; 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; @@ -12,7 +14,7 @@ import java.util.regex.Pattern; import org.cacert.gigi.email.EmailProvider; -public class TestEmailReciever extends EmailProvider implements Runnable { +public final class TestEmailReciever extends EmailProvider implements Runnable { public class TestMail { @@ -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