X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=tests%2Forg%2Fcacert%2Fgigi%2FtestUtils%2FManagedTest.java;h=6cccdae1132d80364bd83c346969f3956b6f0be5;hb=6fe8f289fa30293ca22eea16bfdd34046297eb02;hp=637b272aaed9dcba7e3681e10b1e8eab80f6607b;hpb=7f7a599fb3855b7056f0a79bfb73c393f8b21c12;p=gigi.git diff --git a/tests/org/cacert/gigi/testUtils/ManagedTest.java b/tests/org/cacert/gigi/testUtils/ManagedTest.java index 637b272a..6cccdae1 100644 --- a/tests/org/cacert/gigi/testUtils/ManagedTest.java +++ b/tests/org/cacert/gigi/testUtils/ManagedTest.java @@ -4,9 +4,13 @@ import static org.junit.Assert.*; import java.io.BufferedReader; import java.io.DataOutputStream; +import java.io.File; import java.io.FileInputStream; +import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; import java.io.OutputStream; import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; @@ -30,6 +34,7 @@ import java.security.cert.X509Certificate; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.Locale; import java.util.Properties; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -40,10 +45,11 @@ import javax.net.ssl.SSLContext; import javax.net.ssl.X509KeyManager; import org.cacert.gigi.DevelLauncher; -import org.cacert.gigi.EmailAddress; import org.cacert.gigi.GigiApiException; -import org.cacert.gigi.User; import org.cacert.gigi.database.DatabaseConnection; +import org.cacert.gigi.dbObjects.EmailAddress; +import org.cacert.gigi.dbObjects.ObjectCache; +import org.cacert.gigi.dbObjects.User; import org.cacert.gigi.localisation.Language; import org.cacert.gigi.pages.account.MyDetails; import org.cacert.gigi.pages.main.RegisterPage; @@ -73,6 +79,12 @@ public class ManagedTest { private static String url = "localhost:4443"; + private static String acceptLanguage = null; + + public static void setAcceptLanguage(String acceptLanguage) { + ManagedTest.acceptLanguage = acceptLanguage; + } + public static String getServerName() { return url; } @@ -150,16 +162,22 @@ public class ManagedTest { } public static void purgeDatabase() throws SQLException, IOException { - System.out.print("... purging Database"); + System.out.print("... resetting Database"); long ms = System.currentTimeMillis(); try { DatabaseManager.run(new String[] { testProps.getProperty("sql.driver"), testProps.getProperty("sql.url"), testProps.getProperty("sql.user"), testProps.getProperty("sql.password") - }); + }, true); } catch (ClassNotFoundException e) { e.printStackTrace(); } System.out.println(" in " + (System.currentTimeMillis() - ms) + " ms"); + String type = testProps.getProperty("type"); + ObjectCache.clearAllCaches(); + if (type.equals("local")) { + URL u = new URL("https://" + getServerName() + "/manage"); + u.openConnection().getHeaderField("Location"); + } } private static Properties generateMainProps() { @@ -202,6 +220,11 @@ public class ManagedTest { ter.reset(); } + @After + public void clearAcceptLanguage() { + acceptLanguage = null; + } + public TestMail waitForMail() { try { return ter.recieve(); @@ -218,6 +241,10 @@ public class ManagedTest { URL regist = new URL("https://" + getServerName() + RegisterPage.PATH); HttpURLConnection uc = (HttpURLConnection) regist.openConnection(); HttpURLConnection csrfConn = (HttpURLConnection) regist.openConnection(); + if (acceptLanguage != null) { + csrfConn.setRequestProperty("Accept-Language", acceptLanguage); + uc.setRequestProperty("Accept-Language", acceptLanguage); + } String headerField = csrfConn.getHeaderField("Set-Cookie"); headerField = stripCookie(headerField); @@ -426,7 +453,26 @@ public class ManagedTest { public static KeyPair generateKeypair() throws GeneralSecurityException { KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA"); kpg.initialize(4096); - return kpg.generateKeyPair(); + KeyPair keyPair = null; + File f = new File("testKeypair"); + if (f.exists()) { + try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(f))) { + keyPair = (KeyPair) ois.readObject(); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + } else { + keyPair = kpg.generateKeyPair(); + try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(f))) { + oos.writeObject(keyPair); + oos.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + return keyPair; } public static String generatePEMCSR(KeyPair kp, String dn) throws GeneralSecurityException, IOException { @@ -467,10 +513,10 @@ public class ManagedTest { } public static EmailAddress createVerifiedEmail(User u) throws InterruptedException, GigiApiException { - EmailAddress adrr = new EmailAddress(createUniqueName() + "test@test.tld", u); - adrr.insert(Language.getInstance("en")); + EmailAddress adrr = new EmailAddress(u, createUniqueName() + "test@test.tld"); + adrr.insert(Language.getInstance(Locale.ENGLISH)); TestMail testMail = getMailReciever().recieve(); - assertTrue(adrr.getAddress().equals(testMail.getTo())); + assertEquals(adrr.getAddress(), testMail.getTo()); String hash = testMail.extractLink().substring(testMail.extractLink().lastIndexOf('=') + 1); adrr.verify(hash); getMailReciever().clearMails();