1.1 --- a/javaquery/api/src/test/java/org/apidesign/bck2brwsr/htmlpage/KnockoutTest.java Tue Jan 22 21:57:27 2013 +0100
1.2 +++ b/javaquery/api/src/test/java/org/apidesign/bck2brwsr/htmlpage/KnockoutTest.java Mon Feb 18 19:42:02 2013 +0100
1.3 @@ -17,6 +17,7 @@
1.4 */
1.5 package org.apidesign.bck2brwsr.htmlpage;
1.6
1.7 +import org.apidesign.bck2brwsr.core.JavaScriptBody;
1.8 import org.apidesign.bck2brwsr.htmlpage.api.ComputedProperty;
1.9 import org.apidesign.bck2brwsr.htmlpage.api.OnEvent;
1.10 import org.apidesign.bck2brwsr.htmlpage.api.Page;
1.11 @@ -31,7 +32,8 @@
1.12 * @author Jaroslav Tulach <jtulach@netbeans.org>
1.13 */
1.14 @Page(xhtml="Knockout.xhtml", className="KnockoutModel", properties={
1.15 - @Property(name="name", type=String.class)
1.16 + @Property(name="name", type=String.class),
1.17 + @Property(name="results", type=String.class, array = true)
1.18 })
1.19 public class KnockoutTest {
1.20
1.21 @@ -50,6 +52,25 @@
1.22 assert "Jardo".equals(m.getName()) : "Name property updated: " + m.getName();
1.23 }
1.24
1.25 + @HtmlFragment(
1.26 + "<ul id='ul' data-bind='foreach: results'>\n"
1.27 + + " <li><b data-bind='text: $data'></b></li>\n"
1.28 + + "</ul>\n"
1.29 + )
1.30 + @BrwsrTest public void displayContentOfArray() {
1.31 + KnockoutModel m = new KnockoutModel();
1.32 + m.getResults().add("Ahoj");
1.33 + m.applyBindings();
1.34 +
1.35 + int cnt = countChildren("ul");
1.36 + assert cnt == 1 : "One child, but was " + cnt;
1.37 +
1.38 + m.getResults().add("hello");
1.39 +
1.40 + cnt = countChildren("ul");
1.41 + assert cnt == 2 : "Two children now, but was " + cnt;
1.42 + }
1.43 +
1.44 @ComputedProperty
1.45 static String helloMessage(String name) {
1.46 return "Hello " + name + "!";
1.47 @@ -59,4 +80,11 @@
1.48 public static Object[] create() {
1.49 return VMTest.create(KnockoutTest.class);
1.50 }
1.51 +
1.52 + @JavaScriptBody(args = { "id" }, body =
1.53 + "var e = window.document.getElementById(id);\n "
1.54 + + "if (typeof e === 'undefined') return -2;\n "
1.55 + + "return e.children.length;\n "
1.56 + )
1.57 + private static native int countChildren(String id);
1.58 }