# HG changeset patch # User Jaroslav Tulach # Date 1360608466 -3600 # Node ID 722c51330e75ef2af471b52d30e718167a909e48 # Parent 59d5596a9c6ca48d2a0cbc8987ea20de35f8890c Support relaunching of test cases. Just reload the initial browser page and the test cases will be executed again. Useful when setting breakpoints. diff -r 59d5596a9c6c -r 722c51330e75 launcher/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java --- a/launcher/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java Mon Feb 11 12:46:43 2013 +0100 +++ b/launcher/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java Mon Feb 11 19:47:46 2013 +0100 @@ -191,10 +191,26 @@ String id = request.getParameter("request"); String value = request.getParameter("result"); + + InvocationContext mi = null; + int caseNmbr = -1; + if (id != null && value != null) { LOG.log(Level.INFO, "Received result for case {0} = {1}", new Object[]{id, value}); value = decodeURL(value); - cases.get(Integer.parseInt(id)).result(value, null); + int indx = Integer.parseInt(id); + cases.get(indx).result(value, null); + if (++indx < cases.size()) { + mi = cases.get(indx); + LOG.log(Level.INFO, "Re-executing case {0}", indx); + caseNmbr = indx; + } + } else { + if (!cases.isEmpty()) { + LOG.info("Re-executing test cases"); + mi = cases.get(0); + caseNmbr = 0; + } } if (prev != null) { @@ -202,7 +218,10 @@ prev = null; } - InvocationContext mi = methods.take(); + if (mi == null) { + mi = methods.take(); + caseNmbr = cnt++; + } if (mi == END) { response.getWriter().write(""); wait.countDown(); @@ -218,11 +237,11 @@ cases.add(mi); final String cn = mi.clazz.getName(); final String mn = mi.methodName; - LOG.log(Level.INFO, "Request for {0} case. Sending {1}.{2}", new Object[]{cnt, cn, mn}); + LOG.log(Level.INFO, "Request for {0} case. Sending {1}.{2}", new Object[]{caseNmbr, cn, mn}); response.getWriter().write("{" + "className: '" + cn + "', " + "methodName: '" + mn + "', " - + "request: " + cnt + + "request: " + caseNmbr ); if (mi.html != null) { response.getWriter().write(", html: '"); @@ -230,7 +249,6 @@ response.getWriter().write("'"); } response.getWriter().write("}"); - cnt++; } }, "/data");