From: Felix Dörre Date: Sat, 6 Sep 2014 19:37:15 +0000 (+0200) Subject: Fix Cache punging for local tests. X-Git-Url: https://code.wpia.club/?p=gigi.git;a=commitdiff_plain;h=6fe8f289fa30293ca22eea16bfdd34046297eb02 Fix Cache punging for local tests. --- diff --git a/src/org/cacert/gigi/DevelLauncher.java b/src/org/cacert/gigi/DevelLauncher.java index e83ae414..44a949c8 100644 --- a/src/org/cacert/gigi/DevelLauncher.java +++ b/src/org/cacert/gigi/DevelLauncher.java @@ -10,10 +10,17 @@ import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; +import java.lang.reflect.Field; import java.nio.file.Files; import java.nio.file.Paths; +import java.util.HashMap; import java.util.Properties; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.cacert.gigi.dbObjects.ObjectCache; +import org.cacert.gigi.pages.Page; import org.kamranzafar.jtar.TarEntry; import org.kamranzafar.jtar.TarHeader; import org.kamranzafar.jtar.TarOutputStream; @@ -42,6 +49,7 @@ public class DevelLauncher { InputStream oldin = System.in; System.setIn(new ByteArrayInputStream(chunkConfig.toByteArray())); Launcher.main(args); + addDevelPage(); System.setIn(oldin); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Cacert-gigi system sucessfully started."); @@ -50,6 +58,34 @@ public class DevelLauncher { System.exit(0); } + private static void addDevelPage() { + try { + Field instF = Gigi.class.getDeclaredField("instance"); + Field pageF = Gigi.class.getDeclaredField("pages"); + instF.setAccessible(true); + pageF.setAccessible(true); + Object gigi = instF.get(null); + HashMap pages = (HashMap) pageF.get(gigi); + pages.put("/manage", new Page("Page-manger") { + + @Override + public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { + ObjectCache.clearAllCaches(); + resp.getWriter().println("All caches cleared."); + System.out.println("Caches cleared."); + + } + + @Override + public boolean needsLogin() { + return false; + } + }); + } catch (ReflectiveOperationException e) { + e.printStackTrace(); + } + } + public static void writeGigiConfig(OutputStream target, byte[] keystorepw, byte[] truststorepw, Properties mainprop, byte[] cacerts, byte[] keystore) throws IOException { TarOutputStream tos = new TarOutputStream(target); ByteArrayOutputStream baos = new ByteArrayOutputStream(); diff --git a/src/org/cacert/gigi/dbObjects/ObjectCache.java b/src/org/cacert/gigi/dbObjects/ObjectCache.java index e06f84f8..2a5d297b 100644 --- a/src/org/cacert/gigi/dbObjects/ObjectCache.java +++ b/src/org/cacert/gigi/dbObjects/ObjectCache.java @@ -26,7 +26,7 @@ public class ObjectCache { return null; } - public static void clearAllCashes() { + public static void clearAllCaches() { for (ObjectCache objectCache : caches) { objectCache.hashmap.clear(); } diff --git a/tests/org/cacert/gigi/pages/account/TestMailManagement.java b/tests/org/cacert/gigi/pages/account/TestMailManagement.java index 5ad75a60..9c8ce391 100644 --- a/tests/org/cacert/gigi/pages/account/TestMailManagement.java +++ b/tests/org/cacert/gigi/pages/account/TestMailManagement.java @@ -71,9 +71,9 @@ public class TestMailManagement extends ManagedTest { @Test public void testMailSetDefaultWeb() throws MalformedURLException, UnsupportedEncodingException, IOException, InterruptedException, GigiApiException { - ObjectCache.clearAllCashes(); EmailAddress adrr = createVerifiedEmail(u); assertNull(executeBasicWebInteraction(cookie, path, "makedefault&emailid=" + adrr.getId())); + ObjectCache.clearAllCaches(); assertEquals(User.getById(u.getId()).getEmail(), adrr.getAddress()); } diff --git a/tests/org/cacert/gigi/testUtils/ManagedTest.java b/tests/org/cacert/gigi/testUtils/ManagedTest.java index 0c81e370..6cccdae1 100644 --- a/tests/org/cacert/gigi/testUtils/ManagedTest.java +++ b/tests/org/cacert/gigi/testUtils/ManagedTest.java @@ -48,6 +48,7 @@ import org.cacert.gigi.DevelLauncher; import org.cacert.gigi.GigiApiException; import org.cacert.gigi.database.DatabaseConnection; import org.cacert.gigi.dbObjects.EmailAddress; +import org.cacert.gigi.dbObjects.ObjectCache; import org.cacert.gigi.dbObjects.User; import org.cacert.gigi.localisation.Language; import org.cacert.gigi.pages.account.MyDetails; @@ -171,6 +172,12 @@ public class ManagedTest { e.printStackTrace(); } System.out.println(" in " + (System.currentTimeMillis() - ms) + " ms"); + String type = testProps.getProperty("type"); + ObjectCache.clearAllCaches(); + if (type.equals("local")) { + URL u = new URL("https://" + getServerName() + "/manage"); + u.openConnection().getHeaderField("Location"); + } } private static Properties generateMainProps() {