diff -r 4887e22cb810 -r 7a7686e6f875 javaquery/api/src/test/java/org/apidesign/bck2brwsr/htmlpage/ConvertTypesTest.java --- a/javaquery/api/src/test/java/org/apidesign/bck2brwsr/htmlpage/ConvertTypesTest.java Tue Apr 09 10:06:19 2013 +0200 +++ b/javaquery/api/src/test/java/org/apidesign/bck2brwsr/htmlpage/ConvertTypesTest.java Thu Apr 18 17:28:34 2013 +0200 @@ -20,6 +20,8 @@ import org.apidesign.bck2brwsr.core.JavaScriptBody; import org.apidesign.bck2brwsr.vmtest.BrwsrTest; import org.apidesign.bck2brwsr.vmtest.VMTest; +import org.json.JSONException; +import org.json.JSONObject; import org.testng.annotations.Factory; /** @@ -27,17 +29,25 @@ * @author Jaroslav Tulach */ public class ConvertTypesTest { - @JavaScriptBody(args = { }, body = "var json = new Object();" + @JavaScriptBody(args = { "includeSex" }, body = "var json = new Object();" + "json.firstName = 'son';\n" + "json.lastName = 'dj';\n" + "json.sex = 'MALE';\n" + "return json;" ) - private static native Object createJSON(); + private static Object createJSON(boolean includeSex) throws JSONException { + JSONObject o = new JSONObject(); + o.put("firstName", "son"); + o.put("lastName", "dj"); + if (includeSex) { + o.put("sex", "MALE"); + } + return o; + } @BrwsrTest - public void testConvertToPeople() { - final Object o = createJSON(); + public void testConvertToPeople() throws JSONException { + final Object o = createJSON(true); Person p = new Person(o); @@ -45,6 +55,17 @@ assert "dj".equals(p.getLastName()) : "Last name: " + p.getLastName(); assert Sex.MALE.equals(p.getSex()) : "Sex: " + p.getSex(); } + + @BrwsrTest + public void testConvertToPeopleWithoutSex() throws JSONException { + final Object o = createJSON(false); + + Person p = new Person(o); + + assert "son".equals(p.getFirstName()) : "First name: " + p.getFirstName(); + assert "dj".equals(p.getLastName()) : "Last name: " + p.getLastName(); + assert p.getSex() == null : "No sex: " + p.getSex(); + } @Factory public static Object[] create() { return VMTest.create(ConvertTypesTest.class);