@Test public void testLayoutAliases() { LayoutDefinition testLayout = service.getLayoutDefinition("testCategory", "testLayout"); assertNotNull(testLayout); assertEquals("testLayout", testLayout.getName()); LayoutDefinition oldTestLayout = service.getLayoutDefinition("testCategory", "oldTestLayoutName"); assertNotNull(oldTestLayout); assertEquals("testLayout", oldTestLayout.getName()); }
protected void check(String layoutName, String lang) throws Exception { LayoutConversionContext ctx = new LayoutConversionContext(lang, null); LayoutDefinition layoutDef = service.getLayoutDefinition(WebLayoutManager.JSF_CATEGORY, layoutName); Layout layout = jsfService.getLayout( null, ctx, TEST_CATEGORY, layoutDef, BuiltinModes.VIEW, "currentDocument", null, false); String langFilePath = lang; if (langFilePath == null) { langFilePath = "nolang"; } File file = Framework.createTempFile("layout-instance-export-" + langFilePath, ".json"); FileOutputStream out = new FileOutputStream(file); JSONObject res = JSONLayoutExporter.exportToJson(layout); out.write(res.toString(2).getBytes(JSONLayoutExporter.ENCODED_VALUES_ENCODING)); out.close(); InputStream written = new FileInputStream(file); InputStream expected = new FileInputStream( FileUtils.getResourcePathFromContext( "layout-instance-export-" + langFilePath + ".json")); String expectedString = IOUtils.toString(expected, Charsets.UTF_8); String writtenString = IOUtils.toString(written, Charsets.UTF_8); // order of select options may depend on directory database => do not // check order of element by using the NON_EXTENSIBLE mode JSONAssert.assertEquals(expectedString, writtenString, JSONCompareMode.NON_EXTENSIBLE); }
@Test public void testLayoutDefinitionExport() throws Exception { LayoutDefinition layoutDef = service.getLayoutDefinition(WebLayoutManager.JSF_CATEGORY, "dublincore"); assertNotNull(layoutDef); check(layoutDef, "en"); check(layoutDef, "fr"); check(layoutDef, null); }
@Test public void testLayoutColumnsRegistration() { LayoutDefinition layoutDef = service.getLayoutDefinition("testCategory", "layoutColumnsTest"); assertNotNull(layoutDef); assertEquals("layoutColumnsTest", layoutDef.getName()); LayoutRowDefinition[] layoutColumns = layoutDef.getRows(); assertNotNull(layoutColumns); assertEquals(1, layoutColumns.length); LayoutRowDefinition layoutRow = layoutColumns[0]; assertNotNull(layoutRow.getProperties("any")); assertEquals( "layoutColumnPropValue", layoutRow.getProperties("any").get("layoutColumnPropName")); }
@Test public void testComplexLayoutRegistration() { LayoutDefinition filesLayout = service.getLayoutDefinition("testCategory", "files"); assertNotNull(filesLayout); assertEquals("files", filesLayout.getName()); // test rows LayoutRowDefinition[] rows = filesLayout.getRows(); assertEquals(1, rows.length); assertEquals(1, rows[0].getWidgets().length); assertEquals("files", rows[0].getWidgets()[0]); assertEquals(1, filesLayout.getColumns()); // test widgets WidgetDefinition filesWidget = filesLayout.getWidgetDefinition("files"); assertNotNull(filesWidget); assertEquals("complexList", filesWidget.getType()); FieldDefinition[] fieldDefs = filesWidget.getFieldDefinitions(); assertEquals(1, fieldDefs.length); assertEquals("files", fieldDefs[0].getSchemaName()); assertEquals("files", fieldDefs[0].getFieldName()); WidgetDefinition[] subWidgets = filesWidget.getSubWidgetDefinitions(); assertEquals(2, subWidgets.length); // test blob assertEquals("blob", subWidgets[0].getName()); assertEquals("file", subWidgets[0].getType()); fieldDefs = subWidgets[0].getFieldDefinitions(); assertEquals(1, fieldDefs.length); assertNull(fieldDefs[0].getSchemaName()); assertEquals("blob", fieldDefs[0].getFieldName()); // test filename assertEquals("filename", subWidgets[1].getName()); assertEquals("text", subWidgets[1].getType()); fieldDefs = subWidgets[1].getFieldDefinitions(); assertEquals(1, fieldDefs.length); assertNull(fieldDefs[0].getSchemaName()); assertEquals("filename", fieldDefs[0].getFieldName()); }
@Test public void testLayoutRegistration() { assertNull(service.getLayoutDefinition("fooCategory", "dublincore")); LayoutDefinition dublincore = service.getLayoutDefinition("testCategory", "dublincore"); assertNotNull(dublincore); assertEquals("dublincore", dublincore.getName()); // test templates assertEquals("default_template", dublincore.getTemplate(BuiltinModes.ANY)); assertEquals("view_template", dublincore.getTemplate(BuiltinModes.VIEW)); assertEquals("edit_template", dublincore.getTemplate(BuiltinModes.EDIT)); assertEquals("create_template", dublincore.getTemplate(BuiltinModes.CREATE)); assertEquals("default_template", dublincore.getTemplate("lalal")); // test rows LayoutRowDefinition[] rows = dublincore.getRows(); assertEquals(3, rows.length); assertEquals(1, rows[0].getWidgets().length); assertEquals("title", rows[0].getWidgets()[0]); assertEquals(1, rows[1].getWidgets().length); assertEquals("description", rows[1].getWidgets()[0]); assertEquals(3, rows[2].getWidgets().length); assertEquals("creationDate", rows[2].getWidgets()[0]); assertEquals("", rows[2].getWidgets()[1]); assertEquals("modificationDate", rows[2].getWidgets()[2]); assertEquals(3, dublincore.getColumns()); // test widgets WidgetDefinition title = dublincore.getWidgetDefinition("title"); assertNotNull(title); assertEquals("title", title.getName()); assertEquals("text", title.getType()); assertEquals("label.dublincore.title", title.getLabel(BuiltinModes.ANY)); assertEquals("", title.getLabel(BuiltinModes.EDIT)); assertEquals("help text", title.getHelpLabel(BuiltinModes.EDIT)); assertTrue(title.isTranslated()); assertTrue(title.isHandlingLabels()); FieldDefinition[] fieldDefs = title.getFieldDefinitions(); assertEquals(1, fieldDefs.length); assertNull(fieldDefs[0].getSchemaName()); assertEquals("dc:title", fieldDefs[0].getFieldName()); // props Map<String, Serializable> anyProps = title.getProperties(BuiltinModes.ANY, BuiltinModes.ANY); assertEquals(2, anyProps.size()); assertEquals("styleClass", anyProps.get("styleClass")); assertEquals("#{!currentUser.administrator}", anyProps.get("required")); Map<String, Serializable> editProps = title.getProperties(BuiltinModes.EDIT, BuiltinModes.VIEW); assertEquals(3, editProps.size()); assertEquals("styleClass", editProps.get("styleClass")); assertEquals("#{!currentUser.administrator}", editProps.get("required")); assertEquals("false", editProps.get("rendered")); WidgetDefinition subjects = dublincore.getWidgetDefinition("subjects"); assertNotNull(subjects); assertEquals("subjects", subjects.getName()); assertEquals("list", subjects.getType()); assertEquals("list", subjects.getType()); assertEquals("view", subjects.getMode(BuiltinModes.ANY)); fieldDefs = subjects.getFieldDefinitions(); assertEquals(1, fieldDefs.length); assertEquals("dublincore", fieldDefs[0].getSchemaName()); assertEquals("subjects", fieldDefs[0].getFieldName()); anyProps = subjects.getProperties(BuiltinModes.ANY, BuiltinModes.VIEW); assertEquals(3, anyProps.size()); assertEquals("bar", anyProps.get("foo")); assertEquals("subject", anyProps.get("directory")); assertTrue(anyProps.get("list") instanceof String[]); String[] list = (String[]) anyProps.get("list"); assertEquals(2, list.length); assertEquals("fooListItem", list[0]); assertEquals("barListItem", list[1]); }