@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());
 }
示例#2
0
  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);
  }
示例#3
0
  @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]);
  }