# HG changeset patch # User Jaroslav Tulach # Date 1460949311 -7200 # Node ID 789849cabcc74dac755365480589a17e091c9f62 # Parent dc9613d000ade911344139ea348f7a307e3e6af4 Include the unit test initialization script in generated bck2brwsr.js rather than embedding it in the harness.html page diff -r dc9613d000ad -r 789849cabcc7 launcher/fx/src/main/java/org/apidesign/bck2brwsr/launcher/BaseHTTPLauncher.java --- a/launcher/fx/src/main/java/org/apidesign/bck2brwsr/launcher/BaseHTTPLauncher.java Mon Apr 18 05:12:29 2016 +0200 +++ b/launcher/fx/src/main/java/org/apidesign/bck2brwsr/launcher/BaseHTTPLauncher.java Mon Apr 18 05:15:11 2016 +0200 @@ -122,7 +122,7 @@ if (!startpage.startsWith("/")) { startpage = "/" + startpage; } - HttpServer s = initServer(".", true, ""); + HttpServer s = initServer(".", true, "", false); int last = startpage.lastIndexOf('/'); String prefix = startpage.substring(0, last); String simpleName = startpage.substring(last); @@ -146,7 +146,7 @@ prefix = startpage.substring(0, last); } } - HttpServer s = initServer(dir.getPath(), addClasses, prefix); + HttpServer s = initServer(dir.getPath(), addClasses, prefix, false); try { launchServerAndBrwsr(s, startpage); } catch (Exception ex) { @@ -173,7 +173,7 @@ } } - private HttpServer initServer(String path, boolean addClasses, String vmPrefix) throws IOException { + private HttpServer initServer(String path, boolean addClasses, String vmPrefix, boolean unitTests) throws IOException { HttpServer s = HttpServer.createSimpleServer(null, new PortRange(8080, 65535)); /* ThreadPoolConfig fewThreads = ThreadPoolConfig.defaultConfig().copy(). @@ -190,7 +190,7 @@ } */ final ServerConfiguration conf = s.getServerConfiguration(); - VMAndPages vm = new VMAndPages(); + VMAndPages vm = new VMAndPages(unitTests); conf.addHttpHandler(vm, "/"); if (vmPrefix != null) { vm.registerVM(vmPrefix + "/bck2brwsr.js"); @@ -217,7 +217,7 @@ private static int resourcesCount; private void executeInBrowser() throws InterruptedException, URISyntaxException, IOException { wait = new CountDownLatch(1); - server = initServer(".", true, ""); + server = initServer(".", true, "", true); final ServerConfiguration conf = server.getServerConfiguration(); class DynamicResourceHandler extends HttpHandler { @@ -626,7 +626,7 @@ } } - abstract void generateBck2BrwsrJS(StringBuilder sb, Res loader) throws IOException; + abstract void generateBck2BrwsrJS(StringBuilder sb, Res loader, String url, boolean unitTestMode) throws IOException; abstract String harnessResource(); Object compileJar(URL jar, URL precompiled) throws IOException { return null; @@ -840,10 +840,12 @@ } private class VMAndPages extends StaticHttpHandler { + private final boolean unitTestMode; private String vmResource; - public VMAndPages() { + public VMAndPages(boolean unitTestMode) { super((String[]) null); + this.unitTestMode = unitTestMode; } @Override @@ -856,7 +858,7 @@ response.setCharacterEncoding("UTF-8"); response.setContentType("text/javascript"); StringBuilder sb = new StringBuilder(); - generateBck2BrwsrJS(sb, BaseHTTPLauncher.this.resources); + generateBck2BrwsrJS(sb, BaseHTTPLauncher.this.resources, request.getRequestURL().toString(), unitTestMode); response.getWriter().write(sb.toString()); } else { super.service(request, response); diff -r dc9613d000ad -r 789849cabcc7 launcher/fx/src/main/java/org/apidesign/bck2brwsr/launcher/FXBrwsrLauncher.java --- a/launcher/fx/src/main/java/org/apidesign/bck2brwsr/launcher/FXBrwsrLauncher.java Mon Apr 18 05:12:29 2016 +0200 +++ b/launcher/fx/src/main/java/org/apidesign/bck2brwsr/launcher/FXBrwsrLauncher.java Mon Apr 18 05:15:11 2016 +0200 @@ -97,12 +97,27 @@ } @Override - void generateBck2BrwsrJS(StringBuilder sb, Res loader) throws IOException { + void generateBck2BrwsrJS(StringBuilder sb, Res loader, String url, boolean unitTestMode) throws IOException { sb.append("(function() {\n" + " var impl = this.bck2brwsr;\n" + " this.bck2brwsr = function() { return impl; };\n"); sb.append("})(window);\n"); JVMBridge.onBck2BrwsrLoad(); + if (unitTestMode) { + sb.append("var vm = bck2brwsr();\n"); + sb.append("try {\n"); + sb.append(" (function() {\n"); + sb.append(" var cls = vm.loadClass('org.apidesign.bck2brwsr.launcher.fximpl.Console');\n"); + sb.append(" // fxbrwsr mangling\n"); + sb.append(" var inst = cls.newInstance();\n"); + int last = url.lastIndexOf('/'); + url = url.substring(0, last + 1); + sb.append(" inst.harness('").append(url).append("/data');\n"); + sb.append(" })();\n"); + sb.append("} catch (err) {\n"); + sb.append(" alert('Error executing harness: ' + err);\n"); + sb.append("}\n"); + } } @Override @@ -112,7 +127,7 @@ } String harnessResource() { - return "org/apidesign/bck2brwsr/launcher/fximpl/harness.xhtml"; + return "org/apidesign/bck2brwsr/launcher/fximpl/harness.html"; } public static void main(String... args) throws IOException { diff -r dc9613d000ad -r 789849cabcc7 launcher/fx/src/main/resources/org/apidesign/bck2brwsr/launcher/fximpl/harness.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/launcher/fx/src/main/resources/org/apidesign/bck2brwsr/launcher/fximpl/harness.html Mon Apr 18 05:15:11 2016 +0200 @@ -0,0 +1,35 @@ + + + + + Bck2Brwsr Harness + + + +

Bck2Brwsr Execution Harness

+ + + +
+ + + diff -r dc9613d000ad -r 789849cabcc7 launcher/fx/src/main/resources/org/apidesign/bck2brwsr/launcher/fximpl/harness.xhtml --- a/launcher/fx/src/main/resources/org/apidesign/bck2brwsr/launcher/fximpl/harness.xhtml Mon Apr 18 05:12:29 2016 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ - - - - - - Bck2Brwsr Harness - - - - - -

Bck2Brwsr Execution Harness

- - - -
- - - - diff -r dc9613d000ad -r 789849cabcc7 launcher/http/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java --- a/launcher/http/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java Mon Apr 18 05:12:29 2016 +0200 +++ b/launcher/http/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java Mon Apr 18 05:15:11 2016 +0200 @@ -77,7 +77,7 @@ } @Override - void generateBck2BrwsrJS(StringBuilder sb, final Res loader) throws IOException { + void generateBck2BrwsrJS(StringBuilder sb, final Res loader, String url, boolean unitTestMode) throws IOException { String b2b = System.getProperty("bck2brwsr.js"); if (b2b != null) { LOG.log(Level.INFO, "Serving bck2brwsr.js from {0}", b2b); @@ -139,6 +139,15 @@ + " global.bck2brwsr.register = prevvm.register;\n" + "})(this);\n" ); + + if (unitTestMode) { + sb.append("var vm = bck2brwsr();\n"); + sb.append("var cnsl = vm.loadClass('org.apidesign.bck2brwsr.launcher.impl.Console');\n"); + int last = url.lastIndexOf('/'); + url = url.substring(0, last + 1); + sb.append("var res = cnsl.invoke('harness', '").append(url).append("/data');"); + } + LOG.log(Level.INFO, "Serving bck2brwsr.js", b2b); } diff -r dc9613d000ad -r 789849cabcc7 launcher/http/src/main/resources/org/apidesign/bck2brwsr/launcher/harness.html --- a/launcher/http/src/main/resources/org/apidesign/bck2brwsr/launcher/harness.html Mon Apr 18 05:12:29 2016 +0200 +++ b/launcher/http/src/main/resources/org/apidesign/bck2brwsr/launcher/harness.html Mon Apr 18 05:15:11 2016 +0200 @@ -23,21 +23,12 @@ Bck2Brwsr Harness - - -

Bck2Brwsr Execution Harness

- + -
- - +
+