Be ready for asynchronous execution of JavaScript
authorJaroslav Tulach <jaroslav.tulach@netbeans.org>
Thu, 13 Feb 2014 22:45:39 +0100
changeset 565f09184978a78
parent 563 88fd2972bfdf
child 566 d3321474588d
Be ready for asynchronous execution of JavaScript
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/JavaScriptBodyTest.java	Thu Feb 13 22:20:19 2014 +0100
     1.2 +++ b/json-tck/src/main/java/net/java/html/js/tests/JavaScriptBodyTest.java	Thu Feb 13 22:45:39 2014 +0100
     1.3 @@ -280,21 +280,24 @@
     1.4          assert r == 6 : "Sum is six: " + r;
     1.5      }
     1.6      
     1.7 +    Later l;
     1.8      @KOTest public void callLater() throws Exception{
     1.9          final Fn.Presenter p = Fn.activePresenter();
    1.10          if (p == null) {
    1.11              return;
    1.12          }
    1.13 -        p.loadScript(new StringReader(
    1.14 -            "if (typeof window === 'undefined') window = {};"
    1.15 -        ));
    1.16 -        Later l = new Later();
    1.17 -        l.register();
    1.18 -        p.loadScript(new StringReader(
    1.19 -            "window.later();"
    1.20 -        ));
    1.21 -        for (int i = 0; i < 100 && l.call != 42; i++) {
    1.22 -            Thread.sleep(50);
    1.23 +        if (l == null) {
    1.24 +            p.loadScript(new StringReader(
    1.25 +                "if (typeof window === 'undefined') window = {};"
    1.26 +            ));
    1.27 +            l = new Later();
    1.28 +            l.register();
    1.29 +            p.loadScript(new StringReader(
    1.30 +                "window.later();"
    1.31 +            ));
    1.32 +        }
    1.33 +        if (l.call != 42) {
    1.34 +            throw new InterruptedException();
    1.35          }
    1.36          assert l.call == 42 : "Method was called: " + l.call;
    1.37      }