+ 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;
+ }
+
+ 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'")) {
+ ps1.setInt(1, uid);
+ ps1.setInt(2, CATSType.ASSURER_CHALLENGE.getId());
+ ps1.execute();
+ }
+
+ try (GigiPreparedStatement ps2 = new GigiPreparedStatement("INSERT INTO `notary` SET `from`=?, `to`=?, points='100'")) {
+ ps2.setInt(1, uid);
+ ps2.setInt(2, uid);
+ ps2.execute();
+ }
+ }
+
+ public MailReceiver getMailReceiver() {
+ throw new Error("Feature requires Business or ManagedTest.");
+ }
+
+ public void verify(Domain d) {
+ try {
+ d.addPing(DomainPingType.EMAIL, "admin");
+ TestMail testMail = getMailReceiver().receive();
+ testMail.verify();
+ assertTrue(d.isVerified());
+ } catch (GigiApiException e) {
+ throw new Error(e);
+ } catch (IOException e) {
+ throw new Error(e);
+ }
+ }
+
+ public static void purgeOnlyDB() throws SQLException, IOException {
+ System.out.println("... 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")
+ }, ImportType.TRUNCATE);
+ } catch (ClassNotFoundException e) {
+ e.printStackTrace();
+ }
+ System.out.println("Database reset complete in " + (System.currentTimeMillis() - ms) + " ms.");
+ }