Support for null enum values. Transplanted from 7a7686e6f875
1.1 --- a/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/PageProcessor.java Thu Apr 18 12:47:25 2013 +0200
1.2 +++ b/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/PageProcessor.java Thu Apr 18 17:34:28 2013 +0200
1.3 @@ -246,7 +246,7 @@
1.4 w.append(type).append("(e));\n");
1.5 } else if (isEnum[0]) {
1.6 w.append(" this.prop_").append(pn);
1.7 - w.append(".add(");
1.8 + w.append(".add(e == null ? null : ");
1.9 w.append(type).append(".valueOf((String)e));\n");
1.10 } else {
1.11 if (isPrimitive(type)) {
1.12 @@ -262,7 +262,7 @@
1.13 } else {
1.14 if (isEnum[0]) {
1.15 w.append(" this.prop_").append(pn);
1.16 - w.append(" = ");
1.17 + w.append(" = ret[" + cnt + "] == null ? null : ");
1.18 w.append(type).append(".valueOf((String)ret[" + cnt + "]);\n");
1.19 } else if (isPrimitive(type)) {
1.20 w.append(" this.prop_").append(pn);
2.1 --- a/javaquery/api/src/test/java/org/apidesign/bck2brwsr/htmlpage/ConvertTypesTest.java Thu Apr 18 12:47:25 2013 +0200
2.2 +++ b/javaquery/api/src/test/java/org/apidesign/bck2brwsr/htmlpage/ConvertTypesTest.java Thu Apr 18 17:34:28 2013 +0200
2.3 @@ -27,17 +27,17 @@
2.4 * @author Jaroslav Tulach <jtulach@netbeans.org>
2.5 */
2.6 public class ConvertTypesTest {
2.7 - @JavaScriptBody(args = { }, body = "var json = new Object();"
2.8 + @JavaScriptBody(args = { "includeSex" }, body = "var json = new Object();"
2.9 + "json.firstName = 'son';\n"
2.10 + "json.lastName = 'dj';\n"
2.11 - + "json.sex = 'MALE';\n"
2.12 + + "if (includeSex) json.sex = 'MALE';\n"
2.13 + "return json;"
2.14 )
2.15 - private static native Object createJSON();
2.16 + private static native Object createJSON(boolean includeSex);
2.17
2.18 @BrwsrTest
2.19 - public void testConvertToPeople() {
2.20 - final Object o = createJSON();
2.21 + public void testConvertToPeople() throws Exception {
2.22 + final Object o = createJSON(true);
2.23
2.24 Person p = new Person(o);
2.25
2.26 @@ -45,6 +45,17 @@
2.27 assert "dj".equals(p.getLastName()) : "Last name: " + p.getLastName();
2.28 assert Sex.MALE.equals(p.getSex()) : "Sex: " + p.getSex();
2.29 }
2.30 +
2.31 + @BrwsrTest
2.32 + public void testConvertToPeopleWithoutSex() throws Exception {
2.33 + final Object o = createJSON(false);
2.34 +
2.35 + Person p = new Person(o);
2.36 +
2.37 + assert "son".equals(p.getFirstName()) : "First name: " + p.getFirstName();
2.38 + assert "dj".equals(p.getLastName()) : "Last name: " + p.getLastName();
2.39 + assert p.getSex() == null : "No sex: " + p.getSex();
2.40 + }
2.41
2.42 @Factory public static Object[] create() {
2.43 return VMTest.create(ConvertTypesTest.class);