X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=tests%2Forg%2Fcacert%2Fgigi%2Fping%2FTestHTTP.java;h=31fecd942bb53e2ba4055aad9a182d77b953cbff;hp=dffab08f2413a05bfbe8fdc4f44934cf2f124e5b;hb=d7be034f96e06985f57d86d2779c434276b5bd4d;hpb=1513e7223708e0f8a04b2e0ceebf27b3469a6bec diff --git a/tests/org/cacert/gigi/ping/TestHTTP.java b/tests/org/cacert/gigi/ping/TestHTTP.java index dffab08f..31fecd94 100644 --- a/tests/org/cacert/gigi/ping/TestHTTP.java +++ b/tests/org/cacert/gigi/ping/TestHTTP.java @@ -1,5 +1,6 @@ package org.cacert.gigi.ping; +import static org.hamcrest.CoreMatchers.*; import static org.junit.Assert.*; import static org.junit.Assume.*; @@ -13,10 +14,13 @@ import java.util.regex.Pattern; import javax.naming.NamingException; -import org.cacert.gigi.pages.account.domain.DomainOverview; +import org.cacert.gigi.GigiApiException; +import org.cacert.gigi.dbObjects.Domain; +import org.cacert.gigi.dbObjects.DomainPingConfiguration; +import org.cacert.gigi.dbObjects.DomainPingType; import org.cacert.gigi.testUtils.IOUtils; import org.cacert.gigi.testUtils.PingTest; -import org.cacert.gigi.testUtils.TestEmailReciever.TestMail; +import org.cacert.gigi.testUtils.TestEmailReceiver.TestMail; import org.cacert.gigi.util.RandomToken; import org.junit.Test; @@ -34,27 +38,26 @@ public class TestHTTP extends PingTest { } @Test - public void httpAndMailSuccess() throws IOException, InterruptedException, SQLException { + public void httpAndMailSuccess() throws Exception { testEmailAndHTTP(0, 0, true, true); } @Test - public void httpFailKeyAndMailSuccess() throws IOException, InterruptedException, SQLException { + public void httpFailKeyAndMailSuccess() throws Exception { testEmailAndHTTP(1, 0, false, true); } @Test - public void httpFailValAndMailFail() throws IOException, InterruptedException, SQLException { + public void httpFailValAndMailFail() throws Exception { testEmailAndHTTP(2, 1, false, false); } - public void testEmailAndHTTP(int httpVariant, int emailVariant, boolean successHTTP, boolean successMail) throws IOException, InterruptedException, SQLException { + public void testEmailAndHTTP(int httpVariant, int emailVariant, boolean successHTTP, boolean successMail) throws IOException, InterruptedException, SQLException, GigiApiException { String test = getTestProps().getProperty("domain.http"); assumeNotNull(test); - URL u = new URL("https://" + getServerName() + DomainOverview.PATH); - Matcher m = initailizeDomainForm(u); + Matcher m = initailizeDomainForm(); updateService(m.group(1) + (httpVariant == 1 ? "a" : ""), m.group(2) + (httpVariant == 2 ? "a" : ""), "http"); String content = "newdomain=" + URLEncoder.encode(test, "UTF-8") + // @@ -64,27 +67,43 @@ public class TestHTTP extends PingTest { "&ssl-type-2=direct&ssl-port-2=" + // "&ssl-type-3=direct&ssl-port-3=" + // "&adddomain&csrf=" + csrf; - URL u2 = sendDomainForm(u, content); + String p2 = sendDomainForm(content); - TestMail mail = getMailReciever().recieve(); + TestMail mail = getMailReciever().receive(); if (emailVariant == 0) { - String link = mail.extractLink(); - new URL(link).openConnection().getHeaderField(""); + mail.verify(); } waitForPings(2); - String newcontent = IOUtils.readURL(cookie(u2.openConnection(), cookie)); + String newcontent = IOUtils.readURL(get(p2)); Pattern pat = Pattern.compile("http\\s*success"); assertTrue(newcontent, !successHTTP ^ pat.matcher(newcontent).find()); pat = Pattern.compile("email\\s*success"); assertTrue(newcontent, !successMail ^ pat.matcher(newcontent).find()); + + if (successHTTP) { // give it a second try + int id = Integer.parseInt(p2.replaceFirst("^.*/([0-9]+)$", "$1")); + Domain d = Domain.getById(id); + DomainPingConfiguration dpc = null; + for (DomainPingConfiguration conf : d.getConfiguredPings()) { + if (conf.getType() == DomainPingType.HTTP) { + dpc = conf; + break; + } + } + if (dpc == null) { + fail("Http config not found"); + } + String res = executeBasicWebInteraction(cookie, p2, "configId=" + dpc.getId()); + assertThat(res, containsString("only allowed after")); + } } private String readHTTP(String token) throws IOException { String httpDom = getTestProps().getProperty("domain.http"); assumeNotNull(httpDom); URL u = new URL("http://" + httpDom + "/cacert-" + token + ".txt"); - return IOUtils.readURL(new InputStreamReader(u.openStream())).trim(); + return IOUtils.readURL(new InputStreamReader(u.openStream(), "UTF-8")).trim(); } }