X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=tests%2Forg%2Fcacert%2Fgigi%2FtestUtils%2FConfiguredTest.java;h=1467f434145b6ab583b7f10d9246308a58fa3116;hb=8eaf45ee6a71969eff3e04b40e4435e0dd380824;hp=1e4d49aee70417caae6ae9f85cb2127b9a1aa355;hpb=53d9194f480a4351e6b80551fc2aa537e7d5b039;p=gigi.git diff --git a/tests/org/cacert/gigi/testUtils/ConfiguredTest.java b/tests/org/cacert/gigi/testUtils/ConfiguredTest.java index 1e4d49ae..1467f434 100644 --- a/tests/org/cacert/gigi/testUtils/ConfiguredTest.java +++ b/tests/org/cacert/gigi/testUtils/ConfiguredTest.java @@ -13,7 +13,11 @@ import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.Signature; import java.sql.SQLException; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; import java.util.Properties; +import java.util.Random; import java.util.TimeZone; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -24,13 +28,19 @@ import org.cacert.gigi.database.DatabaseConnection.Link; import org.cacert.gigi.database.GigiPreparedStatement; import org.cacert.gigi.database.SQLFileManager.ImportType; import org.cacert.gigi.dbObjects.CATS.CATSType; +import org.cacert.gigi.dbObjects.CertificateProfile; import org.cacert.gigi.dbObjects.Domain; import org.cacert.gigi.dbObjects.DomainPingType; +import org.cacert.gigi.dbObjects.User; import org.cacert.gigi.testUtils.TestEmailReceiver.TestMail; import org.cacert.gigi.util.DatabaseManager; import org.cacert.gigi.util.DomainAssessment; +import org.cacert.gigi.util.Notary; import org.cacert.gigi.util.PEM; +import org.cacert.gigi.util.PasswordHash; import org.cacert.gigi.util.ServerConstants; +import org.cacert.gigi.util.TimeConditions; +import org.junit.AfterClass; import org.junit.BeforeClass; import sun.security.pkcs10.PKCS10; @@ -63,6 +73,8 @@ public abstract class ConfiguredTest { initEnvironment(); } + private static Link l; + public static Properties initEnvironment() throws IOException { TimeZone.setDefault(TimeZone.getTimeZone("UTC")); if (envInited) { @@ -74,7 +86,9 @@ public abstract class ConfiguredTest { } Properties props = generateProps(); ServerConstants.init(props); + TimeConditions.init(props); DomainAssessment.init(props); + PasswordHash.init(props); if ( !DatabaseConnection.isInited()) { DatabaseConnection.init(testProps); @@ -84,8 +98,16 @@ public abstract class ConfiguredTest { throw new Error(e); } } + return props; + } + @AfterClass + public static void closeDBLink() { + if (l != null) { + l.close(); + l = null; + } } private static Properties generateProps() throws Error { @@ -107,6 +129,7 @@ public abstract class ConfiguredTest { } } mainProps.setProperty("highFinancialValue", out.getAbsolutePath()); + mainProps.setProperty("scrypt.params", "1;1;1"); return mainProps; } @@ -153,10 +176,27 @@ public abstract class ConfiguredTest { static int count = 0; - private static Link l; + public static String createRandomIDString() { + final char[] chars = "abcdefghijklmnopqrstuvwxyz0123456789".toCharArray(); + final int idStringLength = 16; - public static String createUniqueName() { - return "test" + System.currentTimeMillis() + "a" + (count++) + "u"; + Random sr; + sr = new Random(); + + StringBuilder sb = new StringBuilder(idStringLength); + for (int i = 0; i < idStringLength; i++) { + sb.append(chars[sr.nextInt(chars.length)]); + } + + return sb.toString(); + } + + public static synchronized String createUniqueName() { + return "test" + createRandomIDString() + "a" + (count++) + "u"; + } + + public static CertificateProfile getClientProfile() { + return CertificateProfile.getByName("client"); } public static int countRegex(String text, String pattern) { @@ -170,7 +210,7 @@ public abstract class ConfiguredTest { } public static void makeAssurer(int uid) { - try (GigiPreparedStatement ps1 = new GigiPreparedStatement("INSERT INTO cats_passed SET user_id=?, variant_id=?, language='en_EN', version=1")) { + try (GigiPreparedStatement ps1 = new GigiPreparedStatement("INSERT INTO cats_passed SET user_id=?, variant_id=?, language='en_EN', version='1'")) { ps1.setInt(1, uid); ps1.setInt(2, CATSType.ASSURER_CHALLENGE.getId()); ps1.execute(); @@ -178,7 +218,7 @@ public abstract class ConfiguredTest { try (GigiPreparedStatement ps2 = new GigiPreparedStatement("INSERT INTO `notary` SET `from`=?, `to`=?, points='100'")) { ps2.setInt(1, uid); - ps2.setInt(2, uid); + ps2.setInt(2, User.getById(uid).getPreferredName().getId()); ps2.execute(); } } @@ -201,7 +241,7 @@ public abstract class ConfiguredTest { } public static void purgeOnlyDB() throws SQLException, IOException { - System.out.print("... resetting Database"); + System.out.println("... resetting Database"); long ms = System.currentTimeMillis(); try { DatabaseManager.run(new String[] { @@ -210,6 +250,14 @@ public abstract class ConfiguredTest { } catch (ClassNotFoundException e) { e.printStackTrace(); } - System.out.println(" in " + (System.currentTimeMillis() - ms) + " ms"); + System.out.println("Database reset complete in " + (System.currentTimeMillis() - ms) + " ms."); + } + + public static String validVerificationDateString() { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + Calendar c = Calendar.getInstance(); + c.setTimeInMillis(System.currentTimeMillis()); + c.add(Calendar.MONTH, -Notary.LIMIT_MAX_MONTHS_VERIFICATION + 1); + return sdf.format(new Date(c.getTimeInMillis())); } }