X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=tests%2Forg%2Fcacert%2Fgigi%2FtestUtils%2FManagedTest.java;h=0c7aced4cae714482f96eb11bca77c4f910bfaf7;hp=326cd975ab22e656c28c5fdd1344d1c98eeba937;hb=abff88a2bf173198fe55c35ead97c9c7cdb5924c;hpb=53d9194f480a4351e6b80551fc2aa537e7d5b039 diff --git a/tests/org/cacert/gigi/testUtils/ManagedTest.java b/tests/org/cacert/gigi/testUtils/ManagedTest.java index 326cd975..0c7aced4 100644 --- a/tests/org/cacert/gigi/testUtils/ManagedTest.java +++ b/tests/org/cacert/gigi/testUtils/ManagedTest.java @@ -42,7 +42,6 @@ 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; import org.cacert.gigi.pages.account.MyDetails; import org.cacert.gigi.pages.main.RegisterPage; import org.cacert.gigi.testUtils.TestEmailReceiver.TestMail; @@ -157,7 +156,7 @@ public class ManagedTest extends ConfiguredTest { } - protected void await(Job j) throws InterruptedException { + protected static void await(Job j) throws InterruptedException { SimpleSigner.ping(); j.waitFor(5000); } @@ -235,6 +234,9 @@ public class ManagedTest extends ConfiguredTest { uc.addRequestProperty("Cookie", headerField); uc.setDoOutput(true); uc.getOutputStream().write((param + "&csrf=" + csrf).getBytes("UTF-8")); + if (uc.getResponseCode() == 302) { + return ""; + } String d = IOUtils.readURL(uc); return d; } @@ -259,7 +261,7 @@ public class ManagedTest extends ConfiguredTest { public static void registerUser(String firstName, String lastName, String email, String password) { try { - String query = "fname=" + URLEncoder.encode(firstName, "UTF-8") + "&lname=" + URLEncoder.encode(lastName, "UTF-8") + "&email=" + URLEncoder.encode(email, "UTF-8") + "&pword1=" + URLEncoder.encode(password, "UTF-8") + "&pword2=" + URLEncoder.encode(password, "UTF-8") + "&day=1&month=1&year=1910&tos_agree=1"; + String query = "name-type=western&fname=" + URLEncoder.encode(firstName, "UTF-8") + "&lname=" + URLEncoder.encode(lastName, "UTF-8") + "&email=" + URLEncoder.encode(email, "UTF-8") + "&pword1=" + URLEncoder.encode(password, "UTF-8") + "&pword2=" + URLEncoder.encode(password, "UTF-8") + "&day=1&month=1&year=1910&tos_agree=1"; String data = fetchStartErrorMessage(runRegister(query)); assertNull(data); } catch (UnsupportedEncodingException e) { @@ -289,16 +291,14 @@ public class ManagedTest extends ConfiguredTest { } } - public static void grant(String email, Group g) throws IOException { - HttpURLConnection huc = (HttpURLConnection) new URL("https://" + getServerName() + Manager.PATH).openConnection(); - huc.setDoOutput(true); - huc.getOutputStream().write(("addpriv=y&priv=" + URLEncoder.encode(g.getDatabaseName(), "UTF-8") + "&email=" + URLEncoder.encode(email, "UTF-8")).getBytes("UTF-8")); - assertEquals(200, huc.getResponseCode()); + public static void grant(User u, Group g) throws IOException, GigiApiException { + u.grantGroup(getSupporter(), g); + clearCaches(); } /** - * Creates a new user with 100 Assurance points given by an (invalid) - * assurance. + * Creates a new user with 100 Verification Points given by an (invalid) + * verification. * * @param firstName * the first name @@ -349,6 +349,9 @@ public class ManagedTest extends ConfiguredTest { if (headerField == null) { return ""; } + if (huc.getResponseCode() != 302) { + fail(fetchStartErrorMessage(IOUtils.readURL(huc))); + } return stripCookie(headerField); } @@ -440,7 +443,10 @@ public class ManagedTest extends ConfiguredTest { } public static String executeBasicWebInteraction(String cookie, String path, String query, int formIndex) throws IOException, MalformedURLException, UnsupportedEncodingException { - URLConnection uc = post(cookie, path, query, formIndex); + HttpURLConnection uc = post(cookie, path, query, formIndex); + if (uc.getResponseCode() == 302) { + return null; + } String error = fetchStartErrorMessage(IOUtils.readURL(uc)); return error; } @@ -468,13 +474,17 @@ public class ManagedTest extends ConfiguredTest { } public EmailAddress createVerifiedEmail(User u) throws InterruptedException, GigiApiException { - EmailAddress adrr = new EmailAddress(u, createUniqueName() + "test@test.tld", Locale.ENGLISH); + return createVerifiedEmail(u, createUniqueName() + "test@test.tld"); + } + + public EmailAddress createVerifiedEmail(User u, String email) throws InterruptedException, GigiApiException { + EmailAddress addr = new EmailAddress(u, email, Locale.ENGLISH); TestMail testMail = getMailReceiver().receive(); - assertEquals(adrr.getAddress(), testMail.getTo()); + assertEquals(addr.getAddress(), testMail.getTo()); String hash = testMail.extractLink().substring(testMail.extractLink().lastIndexOf('=') + 1); - adrr.verify(hash); + addr.verify(hash); getMailReceiver().clearMails(); - return adrr; + return addr; } public static URLConnection cookie(URLConnection openConnection, String cookie) { @@ -482,4 +492,21 @@ public class ManagedTest extends ConfiguredTest { return openConnection; } + private static User supporter; + + public static User getSupporter() throws GigiApiException, IOException { + if (supporter != null) { + return supporter; + } + int i = createVerifiedUser("fn", "ln", createUniqueName() + "@email.com", TEST_PASSWORD); + try (GigiPreparedStatement ps = new GigiPreparedStatement("INSERT INTO `user_groups` SET `user`=?, `permission`=?::`userGroup`, `grantedby`=?")) { + ps.setInt(1, i); + ps.setString(2, Group.SUPPORTER.getDBName()); + ps.setInt(3, i); + ps.execute(); + } + clearCaches(); + supporter = User.getById(i); + return supporter; + } }