Allow execution in browser rather than Rhino. This should speed up our tests. Had to workaround Grizlly/Chrome misunderstanding about UTF-8
1.1 --- a/rt/launcher/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java Thu Feb 28 22:14:05 2013 +0100
1.2 +++ b/rt/launcher/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java Fri Mar 01 14:10:57 2013 +0100
1.3 @@ -23,6 +23,7 @@
1.4 import java.io.InputStream;
1.5 import java.io.InterruptedIOException;
1.6 import java.io.OutputStream;
1.7 +import java.io.UnsupportedEncodingException;
1.8 import java.io.Writer;
1.9 import java.net.URI;
1.10 import java.net.URISyntaxException;
1.11 @@ -194,6 +195,9 @@
1.12 public void service(Request request, Response response) throws Exception {
1.13 String id = request.getParameter("request");
1.14 String value = request.getParameter("result");
1.15 + if (value != null && value.indexOf((char)0xC5) != -1) {
1.16 + value = toUTF8(value);
1.17 + }
1.18
1.19
1.20 InvocationContext mi = null;
1.21 @@ -355,6 +359,13 @@
1.22 return new Object[] { process, null };
1.23 }
1.24 }
1.25 + private static String toUTF8(String value) throws UnsupportedEncodingException {
1.26 + byte[] arr = new byte[value.length()];
1.27 + for (int i = 0; i < arr.length; i++) {
1.28 + arr[i] = (byte)value.charAt(i);
1.29 + }
1.30 + return new String(arr, "UTF-8");
1.31 + }
1.32
1.33 private static String decodeURL(String s) {
1.34 for (;;) {
2.1 --- a/rt/launcher/src/main/java/org/apidesign/bck2brwsr/launcher/impl/Console.java Thu Feb 28 22:14:05 2013 +0100
2.2 +++ b/rt/launcher/src/main/java/org/apidesign/bck2brwsr/launcher/impl/Console.java Fri Mar 01 14:10:57 2013 +0100
2.3 @@ -65,6 +65,7 @@
2.4 @JavaScriptBody(args = { "url", "callback", "arr" }, body = ""
2.5 + "var request = new XMLHttpRequest();\n"
2.6 + "request.open('GET', url, true);\n"
2.7 + + "request.setRequestHeader('Content-Type', 'text/plain; charset=utf-8');\n"
2.8 + "request.onreadystatechange = function() {\n"
2.9 + " if (this.readyState!==4) return;\n"
2.10 + " arr[0] = this.responseText;\n"
3.1 --- a/rt/vmtest/src/main/java/org/apidesign/bck2brwsr/vmtest/impl/LaunchSetup.java Thu Feb 28 22:14:05 2013 +0100
3.2 +++ b/rt/vmtest/src/main/java/org/apidesign/bck2brwsr/vmtest/impl/LaunchSetup.java Fri Mar 01 14:10:57 2013 +0100
3.3 @@ -42,7 +42,14 @@
3.4 }
3.5 private synchronized Launcher js(boolean create) {
3.6 if (js == null && create) {
3.7 - js = Launcher.createJavaScript();
3.8 + final String p = System.getProperty("vmtest.default", "javax.script"); // NOI18N
3.9 + switch (p) {
3.10 + case "brwsr": js = Launcher.createBrowser(null); break; // NOI18N
3.11 + case "javax.script": js = Launcher.createJavaScript(); break; // NOI18N
3.12 + default: throw new IllegalArgumentException(
3.13 + "Unknown value of vmtest.default property: " + p
3.14 + );
3.15 + }
3.16 }
3.17 return js;
3.18 }