diff -r 095ce896e094 -r 66358a11c016 ko/fx/src/test/java/org/apidesign/bck2brwsr/kofx/KnockoutFXTest.java --- a/ko/fx/src/test/java/org/apidesign/bck2brwsr/kofx/KnockoutFXTest.java Thu Jan 09 15:57:28 2014 +0100 +++ b/ko/fx/src/test/java/org/apidesign/bck2brwsr/kofx/KnockoutFXTest.java Thu Jan 09 21:21:34 2014 +0100 @@ -64,30 +64,32 @@ TyrusContext tc = new TyrusContext(); Contexts.Builder b = Contexts.newBuilder(). register(Technology.class, ko.knockout(), 10). - register(Transfer.class, ko.transferViaOrgJSON(), 10); + register(Transfer.class, ko.transfer(), 10); try { Class.forName("java.util.function.Function"); // prefer WebView's WebSockets on JDK8 - b.register(WSTransfer.class, ko.websocketsViaBrowser(), 10); + b.register(WSTransfer.class, ko.websockets(), 10); } catch (ClassNotFoundException ex) { // ok, JDK7 needs tyrus b.register(WSTransfer.class, tc, 20); + b.register(Transfer.class, tc, 5); } return b.build(); } @Override public Object createJSON(Map values) { - JSONObject json = new JSONObject(); + Object json = createJSON(); for (Map.Entry entry : values.entrySet()) { - try { - json.put(entry.getKey(), entry.getValue()); - } catch (JSONException ex) { - throw new IllegalStateException(ex); - } + setProperty(json, entry.getKey(), entry.getValue()); } return json; } + + @JavaScriptBody(args = {}, body = "return new Object();") + private static native Object createJSON(); + @JavaScriptBody(args = { "json", "key", "value" }, body = "json[key] = value;") + private static native void setProperty(Object json, String key, Object value); @Override @JavaScriptBody(args = { "s", "args" }, body = ""