Search in sources :

Example 1 with JsonObject

use of net.jangaroo.exml.json.JsonObject in project jangaroo-tools by CoreMedia.

the class ExmlToModelParserTest method testParseArrayAttribute.

@Test
public void testParseArrayAttribute() throws Exception {
    setUp("exmlparser.config");
    ExmlToModelParser exmlToModelParser = new ExmlToModelParser(getConfigClassRegistry());
    ExmlModel model = exmlToModelParser.parse(getFile("/exmlparser/TestArrayAttribute.exml"));
    Assert.assertEquals("ext.Panel", model.getSuperClassName());
    JsonObject expectedJsonObject = new JsonObject("items", JsonObject.code("config.myItems"), "tools", new JsonArray("tools"));
    System.out.println(model.getJsonObject().toString(2));
    Assert.assertEquals(expectedJsonObject.toString(2), model.getJsonObject().toString(2));
}
Also used : JsonArray(net.jangaroo.exml.json.JsonArray) ExmlModel(net.jangaroo.exml.model.ExmlModel) JsonObject(net.jangaroo.exml.json.JsonObject) ExmlToModelParser(net.jangaroo.exml.parser.ExmlToModelParser) Test(org.junit.Test)

Example 2 with JsonObject

use of net.jangaroo.exml.json.JsonObject in project jangaroo-tools by CoreMedia.

the class ExmlToModelParserTest method testConfigDefaultValues.

@Test
public void testConfigDefaultValues() throws Exception {
    setUp("testNamespace.config");
    ExmlToModelParser exmlToModelParser = new ExmlToModelParser(getConfigClassRegistry());
    ExmlModel model = exmlToModelParser.parse(getFile("/testPackage/TestComponentWithCfgDefaults.exml"));
    List<ConfigAttribute> cfgs = model.getConfigClass().getDirectCfgs();
    Assert.assertEquals(9, cfgs.size());
    JsonObject expectedJsonObject = new JsonObject("propertyWithLiteralDefault", "foobar", "propertyWithExpressionDefault", JsonObject.code("'foo' + 'bar'"), "propertyWithDefaultElement", new JsonObject("xtype", "button", "text", "click me!"), "propertyWithDefaultElementUsingConfig", new JsonObject("xtype", "button", "text", JsonObject.code("config.title + '!'")), "arrayPropertyWithDefaultElement", new JsonArray(new JsonObject("xtype", "button", "text", "button1"), new JsonObject("xtype", "button", "text", "button2")), "propertyWithInterfaceAndDefault", JsonObject.code(" new TestImpl() "), "propertyFromOtherPackage", JsonObject.code(" new SomeOtherClass('lala') "));
    System.out.println(model.getJsonObject().toString(2));
    Assert.assertEquals(expectedJsonObject.toString(2), model.getCfgDefaults().toString(2));
}
Also used : JsonArray(net.jangaroo.exml.json.JsonArray) ExmlModel(net.jangaroo.exml.model.ExmlModel) ConfigAttribute(net.jangaroo.exml.model.ConfigAttribute) JsonObject(net.jangaroo.exml.json.JsonObject) ExmlToModelParser(net.jangaroo.exml.parser.ExmlToModelParser) Test(org.junit.Test)

Example 3 with JsonObject

use of net.jangaroo.exml.json.JsonObject in project jangaroo-tools by CoreMedia.

the class ExmlToModelParserTest method testParseAllElements.

@Test
public void testParseAllElements() throws Exception {
    setUp("exmlparser.config");
    ExmlToModelParser exmlToModelParser = new ExmlToModelParser(getConfigClassRegistry());
    ExmlModel model = exmlToModelParser.parse(getFile("/exmlparser/AllElements.exml"));
    Assert.assertEquals(new HashSet<String>(Arrays.asList("exmlparser.config.allElements", "ext.config.component", "ext.MessageBox", "ext.Panel")), model.getImports());
    Assert.assertEquals("ext.Panel", model.getSuperClassName());
    final List<Declaration> varDeclarations = model.getVars();
    Assert.assertEquals(3, varDeclarations.size());
    final Declaration myVar = varDeclarations.get(0);
    Assert.assertEquals("myVar", myVar.getName());
    Assert.assertEquals("String", myVar.getType());
    Assert.assertEquals("config.myProperty + '_suffix'", myVar.getValue());
    final Declaration myVar2 = varDeclarations.get(1);
    Assert.assertEquals("myVar2", myVar2.getName());
    Assert.assertEquals("Object", myVar2.getType());
    Assert.assertEquals("{\n" + "      prop: config.myProperty\n" + "    }", myVar2.getValue().replaceAll(System.getProperty("line.separator"), "\n"));
    final Declaration myVar3 = varDeclarations.get(2);
    Assert.assertEquals("myVar3", myVar3.getName());
    Assert.assertEquals("ext.config.component", myVar3.getType());
    Assert.assertEquals("ext.config.component({\n" + "      xtype: \"button\",\n" + "      text: \"Foo\"\n" + "    })", myVar3.getValue().replaceAll(System.getProperty("line.separator"), "\n"));
    final List<Declaration> constantDeclarations = model.getConfigClass().getConstants();
    Assert.assertEquals(3, constantDeclarations.size());
    final Declaration myConst1 = constantDeclarations.get(0);
    Assert.assertEquals("SOME_CONSTANT", myConst1.getName());
    Assert.assertEquals("1234", myConst1.getValue());
    Assert.assertEquals("uint", myConst1.getType());
    Assert.assertEquals("This is my <b>constant</b>", myConst1.getDescription().trim());
    final Declaration myConst2 = constantDeclarations.get(1);
    Assert.assertEquals("ANOTHER_CONSTANT", myConst2.getName());
    Assert.assertEquals("\"\\n      Lorem ipsum & Co.\\n      Another line.\\n    \"", myConst2.getValue());
    Assert.assertEquals("String", myConst2.getType());
    Assert.assertEquals("This is another <b>constant</b>", myConst2.getDescription().trim());
    final Declaration myConst3 = constantDeclarations.get(2);
    Assert.assertEquals("CODE_CONSTANT", myConst3.getName());
    Assert.assertEquals("1 + 1", myConst3.getValue());
    Assert.assertEquals("int", myConst3.getType());
    JsonObject expectedJsonObject = new JsonObject("layout", JsonObject.code("config.myLayout"), "title", "I am a panel", "someList", new JsonArray(new JsonObject("xtype", "button", "text", "click me!")), "defaults", new JsonObject("layout", "border"), "layoutConfig", new JsonObject("bla", "blub", "anchor", new JsonObject("style", "test"), "border", new JsonObject("type", "solid")), "items", new JsonArray(new JsonObject("xtype", "button", "text", "Save", "handler", JsonObject.code("function():void {\n" + "          window.alert('gotcha!');\n" + "        }"))), "menu", new JsonArray(new JsonObject("xtype", "menuitem", "text", "juhu1"), new JsonObject("xtype", "menuitem", "text", "juhu2"), new JsonObject("xtype", "menuitem", "text", "juhu3")), "tools", new JsonArray(new JsonObject("handler", JsonObject.code("function(x){return ''+x;}"), "id", "gear")), "plugins", new JsonArray(new JsonObject("ptype", "aplugin"), new JsonObject("ptype", "aplugin")), "layout2", new JsonObject("type", "a"));
    System.out.println(model.getJsonObject().toString(2));
    Assert.assertEquals(expectedJsonObject.toString(2), model.getJsonObject().toString(2));
}
Also used : JsonArray(net.jangaroo.exml.json.JsonArray) ExmlModel(net.jangaroo.exml.model.ExmlModel) JsonObject(net.jangaroo.exml.json.JsonObject) ExmlToModelParser(net.jangaroo.exml.parser.ExmlToModelParser) Declaration(net.jangaroo.exml.model.Declaration) Test(org.junit.Test)

Example 4 with JsonObject

use of net.jangaroo.exml.json.JsonObject in project jangaroo-tools by CoreMedia.

the class ExmlToModelParserTest method testParseUntyped.

@Test
public void testParseUntyped() throws Exception {
    setUp("exmlparser.config");
    ExmlToModelParser exmlToModelParser = new ExmlToModelParser(getConfigClassRegistry());
    ExmlModel model = exmlToModelParser.parse(getFile("/exmlparser/TestUntyped.exml"));
    Assert.assertEquals("ext.Panel", model.getSuperClassName());
    JsonObject expectedJsonObject = new JsonObject("items", new JsonArray(new JsonObject("xtype", "panel", "untyped", "text"), new JsonObject("xtype", "panel", "untyped", true), new JsonObject("xtype", "panel", "untyped", false), new JsonObject("xtype", "panel", "untyped", 1.0), new JsonObject("xtype", "panel", "untyped", -1.5), new JsonObject("xtype", "panel", "untyped", 3.0), new JsonObject("xtype", "panel", "untyped", "3L"), new JsonObject("xtype", "panel", "untyped", "42x")));
    System.out.println(model.getJsonObject().toString(2));
    Assert.assertEquals(expectedJsonObject.toString(2), model.getJsonObject().toString(2));
}
Also used : JsonArray(net.jangaroo.exml.json.JsonArray) ExmlModel(net.jangaroo.exml.model.ExmlModel) JsonObject(net.jangaroo.exml.json.JsonObject) ExmlToModelParser(net.jangaroo.exml.parser.ExmlToModelParser) Test(org.junit.Test)

Example 5 with JsonObject

use of net.jangaroo.exml.json.JsonObject in project jangaroo-tools by CoreMedia.

the class ExmlToModelParserTest method testParseTestTrueFalse.

@Test
public void testParseTestTrueFalse() throws Exception {
    setUp("exmlparser.config");
    ExmlToModelParser exmlToModelParser = new ExmlToModelParser(getConfigClassRegistry());
    ExmlModel model = exmlToModelParser.parse(getFile("/exmlparser/TestTrueFalse.exml"));
    Assert.assertEquals("ext.Panel", model.getSuperClassName());
    JsonObject expectedJsonObject = new JsonObject("items", new JsonArray(new JsonObject("xtype", "panel", "id", "foo", "visible", true), new JsonObject("xtype", "panel", "id", "foo", "visible", false), new JsonObject("xtype", "panel", "id", "foo", "visible", true), new JsonObject("xtype", "panel", "id", "foo", "visible", false)));
    System.out.println(model.getJsonObject().toString(2));
    Assert.assertEquals(expectedJsonObject.toString(2), model.getJsonObject().toString(2));
}
Also used : JsonArray(net.jangaroo.exml.json.JsonArray) ExmlModel(net.jangaroo.exml.model.ExmlModel) JsonObject(net.jangaroo.exml.json.JsonObject) ExmlToModelParser(net.jangaroo.exml.parser.ExmlToModelParser) Test(org.junit.Test)

Aggregations

JsonObject (net.jangaroo.exml.json.JsonObject)17 ExmlModel (net.jangaroo.exml.model.ExmlModel)11 ExmlToModelParser (net.jangaroo.exml.parser.ExmlToModelParser)11 Test (org.junit.Test)11 JsonArray (net.jangaroo.exml.json.JsonArray)10 Element (org.w3c.dom.Element)3 ConfigAttribute (net.jangaroo.exml.model.ConfigAttribute)2 ConfigClass (net.jangaroo.exml.model.ConfigClass)2 ArrayList (java.util.ArrayList)1 ExmlcException (net.jangaroo.exml.api.ExmlcException)1 Code (net.jangaroo.exml.json.Code)1 Declaration (net.jangaroo.exml.model.Declaration)1