Check whether Boolean.TRUE and Boolean.FALSE are really treated as expected
authorJaroslav Tulach <jtulach@netbeans.org>
Sun, 17 Apr 2016 08:06:55 +0200
changeset 10821b03b68f551f
parent 1081 190af5cc34cc
child 1083 b49546d64269
Check whether Boolean.TRUE and Boolean.FALSE are really treated as expected
json-tck/src/main/java/net/java/html/js/tests/Bodies.java
json-tck/src/main/java/net/java/html/js/tests/JavaScriptBodyTest.java
     1.1 --- a/json-tck/src/main/java/net/java/html/js/tests/Bodies.java	Tue Apr 05 12:17:40 2016 +0200
     1.2 +++ b/json-tck/src/main/java/net/java/html/js/tests/Bodies.java	Sun Apr 17 08:06:55 2016 +0200
     1.3 @@ -64,9 +64,6 @@
     1.4      @JavaScriptBody(args = {"r"}, wait4js = false, keepAlive = false, javacall = true, body = "r.@java.lang.Runnable::run()();")
     1.5      static native void asyncCallback(Runnable r);
     1.6      
     1.7 -    @JavaScriptBody(args = {"c"}, javacall = true, body = "return c.@java.util.concurrent.Callable::call()();")
     1.8 -    static native Object callback(Callable<? extends Object> c);
     1.9 -
    1.10      @JavaScriptBody(args = {"c", "v"}, javacall = true, body = "var arr = c.@java.util.concurrent.Callable::call()(); arr.push(v); return arr;")
    1.11      static native Object callbackAndPush(Callable<String[]> c, String v);
    1.12      
    1.13 @@ -204,6 +201,13 @@
    1.14          "return sum.@net.java.html.js.tests.Sum::all(ZBSIJFDCLjava/lang/String;)(false, 1, 2, 3, 5, 6, 7, 32, 'TheEND');\n"
    1.15      )
    1.16      static native String primitiveTypes(Sum sum);
    1.17 +
    1.18 +    @JavaScriptBody(args = { "call" }, javacall = true, body = ""
    1.19 +        + "var b = call.@java.util.concurrent.Callable::call()();\n"
    1.20 +        + "return b ? 'yes' : 'no';\n"
    1.21 +    )
    1.22 +    static native String yesNo(Callable<Boolean> call);
    1.23 +
    1.24      
    1.25      static String problematicString() {
    1.26          return "{\n" +
     2.1 --- a/json-tck/src/main/java/net/java/html/js/tests/JavaScriptBodyTest.java	Tue Apr 05 12:17:40 2016 +0200
     2.2 +++ b/json-tck/src/main/java/net/java/html/js/tests/JavaScriptBodyTest.java	Sun Apr 17 08:06:55 2016 +0200
     2.3 @@ -205,10 +205,16 @@
     2.4          assertEquals(r, p, "The null is the same");
     2.5      }
     2.6      
     2.7 -    @KOTest public void callbackWithResult() {
     2.8 -        Callable<Boolean> c = new C();
     2.9 -        Object b = Bodies.callback(c);
    2.10 -        assertEquals(b, Boolean.TRUE, "Should return true");
    2.11 +    @KOTest public void callbackWithTrueResult() {
    2.12 +        Callable<Boolean> c = new C(true);
    2.13 +        String b = Bodies.yesNo(c);
    2.14 +        assertEquals(b, "yes", "Should return true");
    2.15 +    }
    2.16 +
    2.17 +    @KOTest public void callbackWithFalseResult() {
    2.18 +        Callable<Boolean> c = new C(false);
    2.19 +        String b = Bodies.yesNo(c);
    2.20 +        assertEquals(b, "no", "Should return false");
    2.21      }
    2.22      
    2.23      @KOTest public void callbackWithParameters() throws InterruptedException {
    2.24 @@ -410,9 +416,15 @@
    2.25      }
    2.26      
    2.27      private static class C implements Callable<Boolean> {
    2.28 +        private final boolean ret;
    2.29 +
    2.30 +        public C(boolean ret) {
    2.31 +            this.ret = ret;
    2.32 +        }
    2.33 +        
    2.34          @Override
    2.35          public Boolean call() throws Exception {
    2.36 -            return Boolean.TRUE;
    2.37 +            return ret;
    2.38          }
    2.39      }
    2.40      static void assertEquals(Object a, Object b, String msg) {