]> WPIA git - gigi.git/blobdiff - tests/org/cacert/gigi/testUtils/ManagedTest.java
fix: make errors real bootstrap-alerts
[gigi.git] / tests / org / cacert / gigi / testUtils / ManagedTest.java
index 9f22edf1940493f53af1c3900122fc0a5426beeb..f3c0044bfa4213901ac4dbd241a8331ed06c4a57 100644 (file)
@@ -38,11 +38,12 @@ import org.cacert.gigi.GigiApiException;
 import org.cacert.gigi.database.GigiPreparedStatement;
 import org.cacert.gigi.database.GigiResultSet;
 import org.cacert.gigi.database.SQLFileManager.ImportType;
-import org.cacert.gigi.dbObjects.CATS;
+import org.cacert.gigi.dbObjects.CATS.CATSType;
 import org.cacert.gigi.dbObjects.Domain;
 import org.cacert.gigi.dbObjects.DomainPingType;
 import org.cacert.gigi.dbObjects.EmailAddress;
 import org.cacert.gigi.dbObjects.Group;
+import org.cacert.gigi.dbObjects.Job;
 import org.cacert.gigi.dbObjects.ObjectCache;
 import org.cacert.gigi.dbObjects.User;
 import org.cacert.gigi.pages.Manager;
@@ -52,6 +53,7 @@ import org.cacert.gigi.testUtils.TestEmailReceiver.TestMail;
 import org.cacert.gigi.util.DatabaseManager;
 import org.cacert.gigi.util.ServerConstants;
 import org.cacert.gigi.util.SimpleSigner;
+import org.hamcrest.CoreMatchers;
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
@@ -95,20 +97,32 @@ public class ManagedTest extends ConfiguredTest {
     }
 
     @BeforeClass
-    public static void initEnvironment() {
-        try {
-            ConfiguredTest.initEnvironment();
+    public static void initEnvironmentHook() {
+        initEnvironment();
+    }
 
+    private static boolean inited = false;
+
+    public static Properties initEnvironment() {
+        try {
+            Properties mainProps = ConfiguredTest.initEnvironment();
+            if (inited) {
+                return mainProps;
+            }
+            inited = true;
             purgeDatabase();
             String type = testProps.getProperty("type");
-            Properties mainProps = generateMainProps();
+            generateMainProps(mainProps);
             ServerConstants.init(mainProps);
             if (type.equals("local")) {
                 url = testProps.getProperty("name.www") + ":" + testProps.getProperty("serverPort.https");
                 String[] parts = testProps.getProperty("mail").split(":", 2);
                 ter = new TestEmailReceiver(new InetSocketAddress(parts[0], Integer.parseInt(parts[1])));
                 ter.start();
-                return;
+                if (testProps.getProperty("withSigner", "false").equals("true")) {
+                    SimpleSigner.runSigner();
+                }
+                return mainProps;
             }
             url = testProps.getProperty("name.www") + ":" + testProps.getProperty("serverPort.https");
             gigi = Runtime.getRuntime().exec(testProps.getProperty("java"));
@@ -146,16 +160,22 @@ public class ManagedTest extends ConfiguredTest {
             ter = new TestEmailReceiver(new InetSocketAddress("localhost", 8473));
             ter.start();
             SimpleSigner.runSigner();
+            return mainProps;
         } catch (IOException e) {
             throw new Error(e);
         } catch (SQLException e1) {
-            e1.printStackTrace();
+            throw new Error(e1);
         } catch (InterruptedException e) {
-            e.printStackTrace();
+            throw new Error(e);
         }
 
     }
 
+    protected void await(Job j) throws InterruptedException {
+        SimpleSigner.ping();
+        j.waitFor(5000);
+    }
+
     public static void purgeDatabase() throws SQLException, IOException {
         System.out.print("... resetting Database");
         long ms = System.currentTimeMillis();
@@ -177,8 +197,7 @@ public class ManagedTest extends ConfiguredTest {
         u.openConnection().getHeaderField("Location");
     }
 
-    private static Properties generateMainProps() {
-        Properties mainProps = new Properties();
+    private static void generateMainProps(Properties mainProps) {
         mainProps.setProperty("testrunner", "true");
         mainProps.setProperty("host", "127.0.0.1");
         mainProps.setProperty("name.secure", testProps.getProperty("name.secure"));
@@ -195,7 +214,6 @@ public class ManagedTest extends ConfiguredTest {
         mainProps.setProperty("sql.user", testProps.getProperty("sql.user"));
         mainProps.setProperty("sql.password", testProps.getProperty("sql.password"));
         mainProps.setProperty("testing", "true");
-        return mainProps;
     }
 
     @AfterClass
@@ -249,13 +267,21 @@ public class ManagedTest extends ConfiguredTest {
         return d;
     }
 
+    public static org.hamcrest.Matcher<String> hasError() {
+        return CoreMatchers.containsString("<div class='alert alert-danger error-msgs'>");
+    }
+
+    public static org.hamcrest.Matcher<String> hasNoError() {
+        return CoreMatchers.not(hasError());
+    }
+
     public static String fetchStartErrorMessage(String d) throws IOException {
-        String formFail = "<div class='formError'>";
+        String formFail = "<div class='alert alert-danger error-msgs'>";
         int idx = d.indexOf(formFail);
         if (idx == -1) {
             return null;
         }
-        String startError = d.substring(idx + formFail.length(), idx + 100).trim();
+        String startError = d.substring(idx + formFail.length(), idx + formFail.length() + 150).trim();
         return startError;
     }
 
@@ -321,9 +347,9 @@ public class ManagedTest extends ConfiguredTest {
     }
 
     public static void makeAssurer(int uid) {
-        try (GigiPreparedStatement ps1 = new GigiPreparedStatement("INSERT INTO `cats_passed` SET `user_id`=?, `variant_id`=?")) {
+        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, CATS.ASSURER_CHALLENGE_ID);
+            ps1.setInt(2, CATSType.ASSURER_CHALLENGE.getId());
             ps1.execute();
         }