1.1 --- a/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/ConvertTypes.java Wed Apr 10 10:08:18 2013 +0200
1.2 +++ b/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/ConvertTypes.java Wed Apr 10 11:43:46 2013 +0200
1.3 @@ -89,10 +89,12 @@
1.4 @JavaScriptBody(args = { "name", "arr", "run" }, body =
1.5 "if (window[name]) return false;\n "
1.6 + "window[name] = function(data) {\n "
1.7 + + " delete window[name];\n"
1.8 + + " var el = window.document.getElementById(name);\n"
1.9 + + " el.parentNode.removeChild(el);\n"
1.10 + " arr[0] = data;\n"
1.11 + " run.run__V();\n"
1.12 - + " delete window[name];\n"
1.13 - + "};"
1.14 + + "};\n"
1.15 + "return true;\n"
1.16 )
1.17 private static boolean defineIfUnused(String name, Object[] arr, Runnable run) {
2.1 --- a/javaquery/api/src/test/java/org/apidesign/bck2brwsr/htmlpage/JSONTest.java Wed Apr 10 10:08:18 2013 +0200
2.2 +++ b/javaquery/api/src/test/java/org/apidesign/bck2brwsr/htmlpage/JSONTest.java Wed Apr 10 11:43:46 2013 +0200
2.3 @@ -17,7 +17,9 @@
2.4 */
2.5 package org.apidesign.bck2brwsr.htmlpage;
2.6
2.7 +import java.util.Arrays;
2.8 import java.util.Iterator;
2.9 +import org.apidesign.bck2brwsr.core.JavaScriptBody;
2.10 import org.apidesign.bck2brwsr.htmlpage.api.OnReceive;
2.11 import org.apidesign.bck2brwsr.htmlpage.api.Page;
2.12 import org.apidesign.bck2brwsr.htmlpage.api.Property;
2.13 @@ -42,6 +44,7 @@
2.14 })
2.15 public class JSONTest {
2.16 private JSONik js;
2.17 + private Integer orig;
2.18
2.19 @Test public void personToString() throws JSONException {
2.20 Person p = new Person();
2.21 @@ -183,7 +186,11 @@
2.22 parameters = { "callme" }
2.23 ))
2.24 @BrwsrTest public void loadAndParseJSONP() throws InterruptedException {
2.25 +
2.26 if (js == null) {
2.27 + orig = scriptElements();
2.28 + assert orig > 0 : "There should be some scripts on the page";
2.29 +
2.30 js = new JSONik();
2.31 js.applyBindings();
2.32
2.33 @@ -197,7 +204,14 @@
2.34
2.35 assert "Mitar".equals(p.getFirstName()) : "Unexpected: " + p.getFirstName();
2.36 assert Sex.MALE.equals(p.getSex()) : "Expecting MALE: " + p.getSex();
2.37 +
2.38 + int now = scriptElements();
2.39 +
2.40 + assert orig == now : "The set of elements is unchanged. Delta: " + (now - orig);
2.41 }
2.42 +
2.43 + @JavaScriptBody(args = { }, body = "return window.document.getElementsByTagName('script').length;")
2.44 + private static native int scriptElements();
2.45
2.46 @Http(@Http.Resource(
2.47 content = "{'firstName': 'Sitar', 'sex': 'MALE'}",