# HG changeset patch # User Jaroslav Tulach # Date 1362143457 -3600 # Node ID 3661b82478e0c687eb628fbae1fdf76bcfa0dfb6 # Parent abb0830cb220739169e960f422e20659ce430d7f Allow execution in browser rather than Rhino. This should speed up our tests. Had to workaround Grizlly/Chrome misunderstanding about UTF-8 diff -r abb0830cb220 -r 3661b82478e0 rt/launcher/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java --- a/rt/launcher/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java Thu Feb 28 22:14:05 2013 +0100 +++ b/rt/launcher/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java Fri Mar 01 14:10:57 2013 +0100 @@ -23,6 +23,7 @@ import java.io.InputStream; import java.io.InterruptedIOException; import java.io.OutputStream; +import java.io.UnsupportedEncodingException; import java.io.Writer; import java.net.URI; import java.net.URISyntaxException; @@ -194,6 +195,9 @@ public void service(Request request, Response response) throws Exception { String id = request.getParameter("request"); String value = request.getParameter("result"); + if (value != null && value.indexOf((char)0xC5) != -1) { + value = toUTF8(value); + } InvocationContext mi = null; @@ -355,6 +359,13 @@ return new Object[] { process, null }; } } + private static String toUTF8(String value) throws UnsupportedEncodingException { + byte[] arr = new byte[value.length()]; + for (int i = 0; i < arr.length; i++) { + arr[i] = (byte)value.charAt(i); + } + return new String(arr, "UTF-8"); + } private static String decodeURL(String s) { for (;;) { diff -r abb0830cb220 -r 3661b82478e0 rt/launcher/src/main/java/org/apidesign/bck2brwsr/launcher/impl/Console.java --- a/rt/launcher/src/main/java/org/apidesign/bck2brwsr/launcher/impl/Console.java Thu Feb 28 22:14:05 2013 +0100 +++ b/rt/launcher/src/main/java/org/apidesign/bck2brwsr/launcher/impl/Console.java Fri Mar 01 14:10:57 2013 +0100 @@ -65,6 +65,7 @@ @JavaScriptBody(args = { "url", "callback", "arr" }, body = "" + "var request = new XMLHttpRequest();\n" + "request.open('GET', url, true);\n" + + "request.setRequestHeader('Content-Type', 'text/plain; charset=utf-8');\n" + "request.onreadystatechange = function() {\n" + " if (this.readyState!==4) return;\n" + " arr[0] = this.responseText;\n" diff -r abb0830cb220 -r 3661b82478e0 rt/vmtest/src/main/java/org/apidesign/bck2brwsr/vmtest/impl/LaunchSetup.java --- a/rt/vmtest/src/main/java/org/apidesign/bck2brwsr/vmtest/impl/LaunchSetup.java Thu Feb 28 22:14:05 2013 +0100 +++ b/rt/vmtest/src/main/java/org/apidesign/bck2brwsr/vmtest/impl/LaunchSetup.java Fri Mar 01 14:10:57 2013 +0100 @@ -42,7 +42,14 @@ } private synchronized Launcher js(boolean create) { if (js == null && create) { - js = Launcher.createJavaScript(); + final String p = System.getProperty("vmtest.default", "javax.script"); // NOI18N + switch (p) { + case "brwsr": js = Launcher.createBrowser(null); break; // NOI18N + case "javax.script": js = Launcher.createJavaScript(); break; // NOI18N + default: throw new IllegalArgumentException( + "Unknown value of vmtest.default property: " + p + ); + } } return js; }