import java.security.KeyPairGenerator;
import java.security.Signature;
import java.util.Properties;
+import java.util.TimeZone;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
import org.cacert.gigi.database.DatabaseConnection;
+import org.cacert.gigi.database.DatabaseConnection.Link;
+import org.cacert.gigi.util.DomainAssessment;
import org.cacert.gigi.util.PEM;
import org.junit.BeforeClass;
import sun.security.pkcs10.PKCS10Attributes;
import sun.security.x509.X500Name;
-public class ConfiguredTest {
+/**
+ * Base class for a Testsuite that makes use of the config variables that define
+ * the environment.
+ */
+public abstract class ConfiguredTest {
static Properties testProps = new Properties();
private static boolean envInited = false;
@BeforeClass
- public static void initEnvironment() throws IOException {
+ public static void initEnvironmentHook() throws IOException {
+ initEnvironment();
+ }
+
+ public static Properties initEnvironment() throws IOException {
+ TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
+ Properties props = generateProps();
if (envInited) {
- return;
+ return props;
}
envInited = true;
- testProps.load(new FileInputStream("config/test.properties"));
+ DomainAssessment.init(props);
+ try (FileInputStream inStream = new FileInputStream("config/test.properties")) {
+ testProps.load(inStream);
+ }
if ( !DatabaseConnection.isInited()) {
DatabaseConnection.init(testProps);
+ try {
+ l = DatabaseConnection.newLink(false);
+ } catch (InterruptedException e) {
+ throw new Error(e);
+ }
}
+ return props;
+
+ }
+
+ private static Properties generateProps() throws Error {
+ Properties mainProps = new Properties();
+ File out = new File("financial.dat");
+ if ( !out.exists()) {
+ try (FileOutputStream fos = new FileOutputStream(out)) {
+ fos.write("google.com\ntwitter.com\n".getBytes("UTF-8"));
+ } catch (IOException e) {
+ throw new Error(e);
+ }
+ }
+ mainProps.setProperty("highFinancialValue", out.getAbsolutePath());
+ return mainProps;
}
public static KeyPair generateKeypair() throws GeneralSecurityException {
static int count = 0;
+ private static Link l;
+
public static String createUniqueName() {
return "test" + System.currentTimeMillis() + "a" + (count++) + "u";
}
+ public static int countRegex(String text, String pattern) {
+ Pattern p = Pattern.compile(pattern);
+ Matcher m = p.matcher(text);
+ int i = 0;
+ while (m.find()) {
+ i++;
+ }
+ return i;
+ }
}