]> WPIA git - gigi.git/blobdiff - tests/org/cacert/gigi/testUtils/ConfiguredTest.java
add: high financial value assessment
[gigi.git] / tests / org / cacert / gigi / testUtils / ConfiguredTest.java
index a6bbed85be7c6684a6dfabeaaa3370f952aecd96..9010a5975ef802619338311cc7073dc2bbd59e30 100644 (file)
@@ -11,8 +11,13 @@ import java.security.KeyPair;
 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;
 
@@ -20,7 +25,11 @@ import sun.security.pkcs10.PKCS10;
 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();
 
@@ -31,15 +40,45 @@ public class ConfiguredTest {
     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 {
@@ -85,8 +124,19 @@ public class ConfiguredTest {
 
     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;
+    }
 }