X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=tests%2Forg%2Fcacert%2Fgigi%2FtestUtils%2FPingTest.java;h=20395878fb4411dc7251bd0166f8cfb2df0eef44;hp=9007ec25811b5d4044bf3220a6ad95fecc35a480;hb=9474df27407dd99134876f2c8a2a3b6e7d1fae6a;hpb=b1092da65fd373d945343e01dd8975ec3b84db0a diff --git a/tests/org/cacert/gigi/testUtils/PingTest.java b/tests/org/cacert/gigi/testUtils/PingTest.java index 9007ec25..20395878 100644 --- a/tests/org/cacert/gigi/testUtils/PingTest.java +++ b/tests/org/cacert/gigi/testUtils/PingTest.java @@ -1,35 +1,43 @@ package org.cacert.gigi.testUtils; import static org.junit.Assert.*; +import static org.junit.Assume.*; import java.io.IOException; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; -import java.sql.PreparedStatement; -import java.sql.ResultSet; import java.sql.SQLException; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.cacert.gigi.database.DatabaseConnection; +import org.cacert.gigi.database.GigiPreparedStatement; +import org.cacert.gigi.database.GigiResultSet; import org.cacert.gigi.pages.account.domain.DomainOverview; -import org.junit.Before; +import org.junit.After; +/** + * Base class for test suites that check extensively if the domain-ping + * functionality wroks as expected. + */ public abstract class PingTest extends ClientTest { + protected String csrf; + protected static void updateService(String token, String value, String action) throws IOException, MalformedURLException { String manage = getTestProps().getProperty("domain.manage"); + assumeNotNull(manage); String url = manage + "t1=" + token + "&t2=" + value + "&action=" + action; assertEquals(200, ((HttpURLConnection) new URL(url).openConnection()).getResponseCode()); } protected void waitForPings(int count) throws SQLException, InterruptedException { - PreparedStatement ps = DatabaseConnection.getInstance().prepare("SELECT COUNT(*) FROM domainPinglog"); + GigiPreparedStatement ps = DatabaseConnection.getInstance().prepare("SELECT COUNT(*) FROM domainPinglog"); long start = System.currentTimeMillis(); while (System.currentTimeMillis() - start < 10000) { - ResultSet rs = ps.executeQuery(); + GigiResultSet rs = ps.executeQuery(); rs.next(); if (rs.getInt(1) >= count) { break; @@ -42,13 +50,15 @@ public abstract class PingTest extends ClientTest { URLConnection openConnection = u.openConnection(); openConnection.setRequestProperty("Cookie", cookie); openConnection.setDoOutput(true); - openConnection.getOutputStream().write(content.getBytes()); + openConnection.getOutputStream().write(content.getBytes("UTF-8")); openConnection.getHeaderField("Location"); String newcontent = IOUtils.readURL(cookie(u.openConnection(), cookie)); Pattern dlink = Pattern.compile(DomainOverview.PATH + "([0-9]+)'>"); Matcher m1 = dlink.matcher(newcontent); - m1.find(); + if ( !m1.find()) { + throw new Error(newcontent); + } URL u2 = new URL(u.toString() + m1.group(1)); return u2; } @@ -65,14 +75,8 @@ public abstract class PingTest extends ClientTest { return m; } - private static boolean first = true; - - @Before + @After public void purgeDbAfterTest() throws SQLException, IOException { - if (first) { - first = false; - return; - } purgeDatabase(); }