X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=tests%2Forg%2Fcacert%2Fgigi%2FtestUtils%2FManagedTest.java;h=da55f6848f450afac81837d00bc4cd2fc95097bc;hb=cc1ae4eeb5b0b2093161dbebded9daf3fce0721c;hp=a0228f161180b27d231887ebaea05bec063e2966;hpb=ab9818f784c71e0f75c1c1dd621da8a3a88cffa4;p=gigi.git diff --git a/tests/org/cacert/gigi/testUtils/ManagedTest.java b/tests/org/cacert/gigi/testUtils/ManagedTest.java index a0228f16..da55f684 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; @@ -75,7 +74,11 @@ public class ManagedTest extends ConfiguredTest { } public static String getServerName() { - return url; + return url.replaceFirst(":443$", ""); + } + + public static String getSecureServerName() { + return getServerName().replaceAll("^www\\.", "secure."); } static { @@ -235,6 +238,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; } @@ -289,11 +295,9 @@ 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(); } /** @@ -349,15 +353,18 @@ public class ManagedTest extends ConfiguredTest { if (headerField == null) { return ""; } + if (huc.getResponseCode() != 302) { + fail(fetchStartErrorMessage(IOUtils.readURL(huc))); + } return stripCookie(headerField); } public static String login(final PrivateKey pk, final X509Certificate ce) throws NoSuchAlgorithmException, KeyManagementException, IOException, MalformedURLException { - HttpURLConnection connection = (HttpURLConnection) new URL("https://" + getServerName().replaceFirst("^www.", "secure.") + "/login").openConnection(); + HttpURLConnection connection = (HttpURLConnection) new URL("https://" + getSecureServerName() + "/login").openConnection(); authenticateClientCert(pk, ce, connection); if (connection.getResponseCode() == 302) { - assertEquals("https://" + getServerName().replaceFirst("^www.", "secure.").replaceFirst(":443$", "") + "/", connection.getHeaderField("Location").replaceFirst(":443$", "")); + assertEquals("https://" + getSecureServerName() + "/", connection.getHeaderField("Location").replaceFirst(":443$", "")); return stripCookie(connection.getHeaderField("Set-Cookie")); } else { return null; @@ -440,7 +447,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; } @@ -486,4 +496,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; + } }