From: Felix Dörre Date: Wed, 27 Aug 2014 17:26:25 +0000 (+0200) Subject: Test more error cases for DNS ping. X-Git-Url: https://code.wpia.club/?p=gigi.git;a=commitdiff_plain;h=a9e1e3275864b32c8d6a2f9ae0853f36d716b06f Test more error cases for DNS ping. --- diff --git a/tests/org/cacert/gigi/ping/TestDNS.java b/tests/org/cacert/gigi/ping/TestDNS.java index e6c53f16..4ee94743 100644 --- a/tests/org/cacert/gigi/ping/TestDNS.java +++ b/tests/org/cacert/gigi/ping/TestDNS.java @@ -23,6 +23,7 @@ import org.cacert.gigi.testUtils.ManagedTest; import org.cacert.gigi.testUtils.TestEmailReciever.TestMail; import org.cacert.gigi.util.DNSUtil; import org.cacert.gigi.util.RandomToken; +import org.junit.After; import org.junit.Test; public class TestDNS extends ManagedTest { @@ -39,9 +40,25 @@ public class TestDNS extends ManagedTest { } @Test - public void testEmailAndDNS() throws IOException, InterruptedException, SQLException, NamingException { + public void testEmailAndDNSSuccess() throws IOException, InterruptedException, SQLException, NamingException { + testEmailAndDNS(0, 0, true, true); + } + + @After + public void test() throws SQLException, IOException { + purgeDatabase(); + } + + @Test + public void testEmailAndDNSFail() throws IOException, InterruptedException, SQLException, NamingException { + testEmailAndDNS(1, 0, false, true); + purgeDatabase(); + testEmailAndDNS(2, 0, false, true); + } + + public void testEmailAndDNS(int dnsVariant, int emailVariant, boolean successDNS, boolean successMail) throws IOException, InterruptedException, SQLException, NamingException { String email = createUniqueName() + "@example.org"; - int uid = createVerifiedUser("a", "b", email, TEST_PASSWORD); + createVerifiedUser("a", "b", email, TEST_PASSWORD); String cookie = login(email, TEST_PASSWORD); String test = getTestProps().getProperty("domain.dnstest"); @@ -54,7 +71,7 @@ public class TestDNS extends ManagedTest { Pattern p = Pattern.compile("cacert-([A-Za-z0-9]+) IN TXT ([A-Za-z0-9]+)"); Matcher m = p.matcher(content1); m.find(); - updateDNS(m.group(1), m.group(2)); + updateDNS(m.group(1) + (dnsVariant == 1 ? "a" : ""), m.group(2) + (dnsVariant == 2 ? "a" : "")); String content = "newdomain=" + URLEncoder.encode(test, "UTF-8") + // "&emailType=y&email=2&DNSType=y" + // @@ -91,9 +108,9 @@ public class TestDNS extends ManagedTest { newcontent = IOUtils.readURL(cookie(u2.openConnection(), cookie)); Pattern pat = Pattern.compile("dns\\s*success"); - assertTrue(newcontent, pat.matcher(newcontent).find()); + assertTrue(newcontent, !successDNS ^ pat.matcher(newcontent).find()); pat = Pattern.compile("email\\s*success"); - assertTrue(newcontent, pat.matcher(newcontent).find()); + assertTrue(newcontent, !successMail ^ pat.matcher(newcontent).find()); } private String updateDNS(String token, String value) throws IOException, MalformedURLException, NamingException { diff --git a/tests/org/cacert/gigi/testUtils/ManagedTest.java b/tests/org/cacert/gigi/testUtils/ManagedTest.java index f20ed763..77822f52 100644 --- a/tests/org/cacert/gigi/testUtils/ManagedTest.java +++ b/tests/org/cacert/gigi/testUtils/ManagedTest.java @@ -95,10 +95,7 @@ public class ManagedTest { if ( !DatabaseConnection.isInited()) { DatabaseConnection.init(testProps); } - System.out.println("... purging Database"); - DatabaseManager.run(new String[] { - testProps.getProperty("sql.driver"), testProps.getProperty("sql.url"), testProps.getProperty("sql.user"), testProps.getProperty("sql.password") - }); + purgeDatabase(); String type = testProps.getProperty("type"); Properties mainProps = generateMainProps(); ServerConstants.init(mainProps); @@ -144,8 +141,6 @@ public class ManagedTest { SimpleSigner.runSigner(); } catch (IOException e) { throw new Error(e); - } catch (ClassNotFoundException e1) { - e1.printStackTrace(); } catch (SQLException e1) { e1.printStackTrace(); } catch (InterruptedException e) { @@ -154,6 +149,17 @@ public class ManagedTest { } + public static void purgeDatabase() throws SQLException, IOException { + System.out.println("... purging Database"); + try { + DatabaseManager.run(new String[] { + testProps.getProperty("sql.driver"), testProps.getProperty("sql.url"), testProps.getProperty("sql.user"), testProps.getProperty("sql.password") + }); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + } + } + private static Properties generateMainProps() { Properties mainProps = new Properties(); mainProps.setProperty("host", "127.0.0.1");