You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by ng...@apache.org on 2011/01/14 13:24:28 UTC
svn commit: r1058981 - in /mina/vysper/trunk/server/admin-console/src:
main/java/org/apache/vysper/console/ test/java/org/apache/vysper/console/
Author: ngn
Date: Fri Jan 14 12:24:28 2011
New Revision: 1058981
URL: http://svn.apache.org/viewvc?rev=1058981&view=rev
Log:
Adding support for the remaining field types
Added:
mina/vysper/trunk/server/admin-console/src/test/java/org/apache/vysper/console/AdHocCommandDataBuilderTest.java
mina/vysper/trunk/server/admin-console/src/test/java/org/apache/vysper/console/HtmlFormBuilderTest.java
Modified:
mina/vysper/trunk/server/admin-console/src/main/java/org/apache/vysper/console/AdHocCommandDataBuilder.java
mina/vysper/trunk/server/admin-console/src/main/java/org/apache/vysper/console/HtmlFormBuilder.java
mina/vysper/trunk/server/admin-console/src/test/java/org/apache/vysper/console/AdminConsoleControllerTest.java
Modified: mina/vysper/trunk/server/admin-console/src/main/java/org/apache/vysper/console/AdHocCommandDataBuilder.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/admin-console/src/main/java/org/apache/vysper/console/AdHocCommandDataBuilder.java?rev=1058981&r1=1058980&r2=1058981&view=diff
==============================================================================
--- mina/vysper/trunk/server/admin-console/src/main/java/org/apache/vysper/console/AdHocCommandDataBuilder.java (original)
+++ mina/vysper/trunk/server/admin-console/src/main/java/org/apache/vysper/console/AdHocCommandDataBuilder.java Fri Jan 14 12:24:28 2011
@@ -38,7 +38,10 @@ public class AdHocCommandDataBuilder {
if(!AdminConsoleController.SESSION_FIELD.equals(entry.getKey())) {
FormField field = new FormField(entry.getKey());
for(String value : entry.getValue()) {
- field.addValue(value);
+ String[] splitValues = value.split("[\\r\\n]+");
+ for(String splitValue : splitValues) {
+ field.addValue(splitValue);
+ }
}
form.addField(field);
}
Modified: mina/vysper/trunk/server/admin-console/src/main/java/org/apache/vysper/console/HtmlFormBuilder.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/admin-console/src/main/java/org/apache/vysper/console/HtmlFormBuilder.java?rev=1058981&r1=1058980&r2=1058981&view=diff
==============================================================================
--- mina/vysper/trunk/server/admin-console/src/main/java/org/apache/vysper/console/HtmlFormBuilder.java (original)
+++ mina/vysper/trunk/server/admin-console/src/main/java/org/apache/vysper/console/HtmlFormBuilder.java Fri Jan 14 12:24:28 2011
@@ -19,86 +19,244 @@
*/
package org.apache.vysper.console;
+import java.util.ArrayList;
import java.util.Iterator;
+import java.util.List;
import org.jivesoftware.smackx.FormField;
+import org.jivesoftware.smackx.FormField.Option;
import org.jivesoftware.smackx.packet.DataForm;
public class HtmlFormBuilder {
public String build(DataForm form) {
- if(form == null) return "";
-
- StringBuffer sb = new StringBuffer();
+ if (form == null)
+ return "";
+
+ StringBuilder sb = new StringBuilder();
Iterator<String> instructions = form.getInstructions();
- while(instructions.hasNext()) {
+ while (instructions.hasNext()) {
sb.append("<p class='instruction'>" + instructions.next() + "</p>");
}
-
+
Iterator<FormField> fields = form.getFields();
- while(fields.hasNext()) {
+ while (fields.hasNext()) {
FormField field = fields.next();
String type = field.getType();
sb.append("<p>");
- if("hidden".equals(type)) {
+ if ("hidden".equals(type)) {
sb.append(hiddenFieldToHtml(field));
- } else if("fixed".equals(type)) {
+ } else if ("fixed".equals(type)) {
sb.append(fixedFieldToHtml(field));
- } else if("jid-single".equals(type)) {
+ } else if ("jid-single".equals(type)) {
sb.append(jidSingleFieldToHtml(field));
- } else if("text-single".equals(type)) {
+ } else if ("text-single".equals(type) || type == null) {
sb.append(textSingleFieldToHtml(field));
- } else if("text-private".equals(type)) {
+ } else if ("text-private".equals(type)) {
sb.append(textPrivateFieldToHtml(field));
+ } else if ("text-multi".equals(type)) {
+ sb.append(textMultiFieldToHtml(field));
+ } else if ("list-single".equals(type)) {
+ sb.append(listSingleFieldToHtml(field));
+ } else if ("list-multi".equals(type)) {
+ sb.append(listMultiFieldToHtml(field));
+ } else if ("jid-multi".equals(type)) {
+ // for now, do jid-multi as a textarea
+ sb.append(textMultiFieldToHtml(field));
+ } else if ("boolean".equals(type)) {
+ sb.append(booleanFieldToHtml(field));
} else {
- System.out.println("Unknown field type: " + type);
+ throw new RuntimeException("Unknown field type: " + type);
}
+ sb.append(descToHtml(field));
sb.append("</p>");
}
-
+
return sb.toString();
}
-
+
private String labelToHtml(FormField field) {
- StringBuffer sb = new StringBuffer();
- if(field.getLabel() != null) {
- sb.append("<label>");
- // TODO for
+ StringBuilder sb = new StringBuilder();
+ if (field.getLabel() != null) {
+ sb.append("<label for='");
+ sb.append(varToId(field.getVariable()));
+ sb.append("'>");
sb.append(field.getLabel());
sb.append("</label>");
}
return sb.toString();
}
-
- private String hiddenFieldToHtml(FormField field) {
- return labelToHtml(field) + "<input type='hidden' name='" + field.getVariable() + "' value='" + getSingleValue(field) + "' />";
- }
+ private String descToHtml(FormField field) {
+ StringBuilder sb = new StringBuilder();
+ if (field.getDescription() != null) {
+ sb.append("<img src='resources/info.png' title='");
+ sb.append(field.getDescription());
+ sb.append("' />");
+ }
+ return sb.toString();
+ }
+
private String fixedFieldToHtml(FormField field) {
- StringBuffer sb = new StringBuffer();
- if(field.getLabel() != null) sb.append(field.getLabel());
+ StringBuilder sb = new StringBuilder();
+ if (field.getLabel() != null)
+ sb.append(field.getLabel());
sb.append(" <span>" + field.getValues().next() + "</span>");
return sb.toString();
}
- private String jidSingleFieldToHtml(FormField field) {
- return labelToHtml(field) + "<input name='" + field.getVariable() + "' value='" + getSingleValue(field) + "' type='email' placeholder='example@vysper.org' />";
+ private String hiddenFieldToHtml(FormField field) {
+ return singleValueFieldToHtml(field, "hidden", null);
}
+ private String jidSingleFieldToHtml(FormField field) {
+ return singleValueFieldToHtml(field, "email", "example@vysper.org");
+ }
+
private String textSingleFieldToHtml(FormField field) {
- return labelToHtml(field) + "<input name='" + field.getVariable() + "' value='" + getSingleValue(field) + "' />";
+ return singleValueFieldToHtml(field, null, null);
}
private String textPrivateFieldToHtml(FormField field) {
- return labelToHtml(field) + "<input name='" + field.getVariable() + "' type='password' value='" + getSingleValue(field) + "' />";
+ return singleValueFieldToHtml(field, "password", null);
+ }
+
+ private String textMultiFieldToHtml(FormField field) {
+ StringBuilder sb = new StringBuilder();
+ sb.append(labelToHtml(field));
+ sb.append("<textarea id='");
+ sb.append(varToId(field.getVariable()));
+ sb.append("' name='");
+ sb.append(field.getVariable());
+ sb.append("'>");
+
+ boolean first = true;
+ Iterator<String> values = field.getValues();
+ while(values.hasNext()) {
+ if(!first) sb.append("\r\n");
+ sb.append(values.next());
+ first = false;
+ }
+
+ sb.append("</textarea>");
+ return sb.toString();
+ }
+
+ private String listSingleFieldToHtml(FormField field) {
+ Iterator<String> fieldValues = field.getValues();
+ List<String> values = new ArrayList<String>();
+ if(fieldValues.hasNext()) values.add(fieldValues.next());
+
+ return listFieldToHtml(field, values, false);
+ }
+
+ private String listMultiFieldToHtml(FormField field) {
+ Iterator<String> fieldValues = field.getValues();
+ List<String> values = new ArrayList<String>();
+ while(fieldValues.hasNext()) {
+ values.add(fieldValues.next());
+ }
+
+ return listFieldToHtml(field, values, true);
}
+
+ private String listFieldToHtml(FormField field, List<String> values, boolean multiple) {
+ StringBuilder sb = new StringBuilder();
+ sb.append(labelToHtml(field));
+ sb.append("<select id='");
+ sb.append(varToId(field.getVariable()));
+ sb.append("' name='");
+ sb.append(field.getVariable());
+ sb.append("'");
+ if(multiple) {
+ sb.append(" multiple");
+ }
+ sb.append(">");
+
+ Iterator<Option> options = field.getOptions();
+
+ while(options.hasNext()) {
+ Option option = options.next();
+ sb.append("<option value='");
+ sb.append(option.getValue());
+ sb.append("'");
+
+ if(values.contains(option.getValue())) {
+ sb.append(" selected");
+ }
+ sb.append(">");
+ if(option.getLabel() != null) {
+ sb.append(option.getLabel());
+ } else {
+ sb.append(option.getValue());
+ }
+
+ sb.append("</option>");
+ }
+
+
+
+ sb.append("</select>");
+ return sb.toString();
+ }
+
+
+ private String booleanFieldToHtml(FormField field) {
+ StringBuilder sb = new StringBuilder();
+ boolean value = (field.getValues().hasNext() && "true".equals(field.getValues().next()));
+
+ sb.append(labelToHtml(field));
+ sb.append("<input name='");
+ sb.append(field.getVariable());
+ sb.append("' value='true' type='radio' ");
+ if(value) sb.append("selected ");
+ sb.append("/> Yes ");
+ sb.append("<input name='");
+ sb.append(field.getVariable());
+ sb.append("' value='false' type='radio' ");
+ if(!value) sb.append("selected ");
+ sb.append("/> No");
+
+
+ return sb.toString();
+ }
+
+ private String singleValueFieldToHtml(FormField field, String type, String placeholder) {
+ StringBuilder sb = new StringBuilder();
+ sb.append(labelToHtml(field));
+ sb.append("<input id='");
+ sb.append(varToId(field.getVariable()));
+ sb.append("' name='");
+ sb.append(field.getVariable());
+ sb.append("' value='");
+ sb.append(getSingleValue(field));
+ sb.append("'");
+ if(type != null) {
+ sb.append(" type='" + type + "'");
+ }
+ if(placeholder != null) {
+ sb.append(" placeholder='" + placeholder + "'");
+ }
+ sb.append(required(field));
+ sb.append(" />");
+ return sb.toString();
+ }
+
+ private String required(FormField field) {
+ return field.isRequired() ? "required" : "";
+ }
+
private String getSingleValue(FormField field) {
- if(field.getValues().hasNext()) {
+ if (field.getValues().hasNext()) {
return field.getValues().next();
} else {
return "";
}
}
+
+ private String varToId(String var) {
+ return var.replaceAll("[^A-Za-z0-9]", "-");
+ }
}
Added: mina/vysper/trunk/server/admin-console/src/test/java/org/apache/vysper/console/AdHocCommandDataBuilderTest.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/admin-console/src/test/java/org/apache/vysper/console/AdHocCommandDataBuilderTest.java?rev=1058981&view=auto
==============================================================================
--- mina/vysper/trunk/server/admin-console/src/test/java/org/apache/vysper/console/AdHocCommandDataBuilderTest.java (added)
+++ mina/vysper/trunk/server/admin-console/src/test/java/org/apache/vysper/console/AdHocCommandDataBuilderTest.java Fri Jan 14 12:24:28 2011
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.vysper.console;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.jivesoftware.smackx.FormField;
+import org.jivesoftware.smackx.packet.AdHocCommandData;
+import org.jivesoftware.smackx.packet.DataForm;
+import org.junit.Assert;
+import org.junit.Test;
+
+
+public class AdHocCommandDataBuilderTest {
+
+ @Test
+ public void multiRowValueWithCRLFMustGeneratedMultipleValues() {
+ multiRowValueMustGeneratedMultipleValues(new String[]{"value 1\r\nvalue 2"});
+ }
+
+ @Test
+ public void multiRowValueWithCRMustGeneratedMultipleValues() {
+ multiRowValueMustGeneratedMultipleValues(new String[]{"value 1\rvalue 2"});
+ }
+
+ @Test
+ public void multiRowValueWithLFMustGeneratedMultipleValues() {
+ multiRowValueMustGeneratedMultipleValues(new String[]{"value 1\nvalue 2"});
+ }
+
+ private void multiRowValueMustGeneratedMultipleValues(String[] value) {
+ Map<String, String[]> parameters = new HashMap<String, String[]>();
+
+ parameters.put(AdminConsoleController.SESSION_FIELD, new String[]{"sessionid"});
+ parameters.put("test", value);
+
+ AdHocCommandDataBuilder builder = new AdHocCommandDataBuilder();
+ AdHocCommandData commandData = builder.build(parameters);
+
+ DataForm form = commandData.getForm();
+ Assert.assertTrue(form.getFields().hasNext());
+ FormField field = form.getFields().next();
+
+ Iterator<String> values = field.getValues();
+ Assert.assertEquals("value 1", values.next());
+ Assert.assertEquals("value 2", values.next());
+ Assert.assertFalse(values.hasNext());
+ }
+
+}
Modified: mina/vysper/trunk/server/admin-console/src/test/java/org/apache/vysper/console/AdminConsoleControllerTest.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/admin-console/src/test/java/org/apache/vysper/console/AdminConsoleControllerTest.java?rev=1058981&r1=1058980&r2=1058981&view=diff
==============================================================================
--- mina/vysper/trunk/server/admin-console/src/test/java/org/apache/vysper/console/AdminConsoleControllerTest.java (original)
+++ mina/vysper/trunk/server/admin-console/src/test/java/org/apache/vysper/console/AdminConsoleControllerTest.java Fri Jan 14 12:24:28 2011
@@ -66,8 +66,9 @@ public class AdminConsoleControllerTest
Mockito.verify(connection).login(ENTITY, PASSWORD);
Assert.assertNull(session.getAttribute(AdminConsoleController.SESSION_ATTRIBUTE));
- Assert.assertEquals("login", mav.getViewName());
+ Assert.assertEquals("index", mav.getViewName());
Assert.assertNotNull(mav.getModel().get("error"));
+ Assert.assertNull(mav.getModel().get("authenticated"));
}
@Test
@@ -79,29 +80,33 @@ public class AdminConsoleControllerTest
Mockito.verify(connection).connect();
Assert.assertNull(session.getAttribute(AdminConsoleController.SESSION_ATTRIBUTE));
- Assert.assertEquals("login", mav.getViewName());
+ Assert.assertEquals("index", mav.getViewName());
Assert.assertNotNull(mav.getModel().get("error"));
+ Assert.assertNull(mav.getModel().get("authenticated"));
}
@Test
public void indexNotAuthenticated() throws XMPPException {
ModelAndView mav = controller.index(session);
- Assert.assertEquals("login", mav.getViewName());
+ Assert.assertEquals("index", mav.getViewName());
+ Assert.assertNull(mav.getModel().get("authenticated"));
}
@Test
public void commandNotAuthenticated() throws XMPPException {
ModelAndView mav = controller.command("foo", session);
- Assert.assertEquals("login", mav.getViewName());
+ Assert.assertEquals("index", mav.getViewName());
+ Assert.assertNull(mav.getModel().get("authenticated"));
}
@Test
public void submitCommandNotAuthenticated() throws XMPPException {
ModelAndView mav = controller.submitCommand("foo", request, session);
- Assert.assertEquals("login", mav.getViewName());
+ Assert.assertEquals("index", mav.getViewName());
+ Assert.assertNull(mav.getModel().get("authenticated"));
}
}
Added: mina/vysper/trunk/server/admin-console/src/test/java/org/apache/vysper/console/HtmlFormBuilderTest.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/admin-console/src/test/java/org/apache/vysper/console/HtmlFormBuilderTest.java?rev=1058981&view=auto
==============================================================================
--- mina/vysper/trunk/server/admin-console/src/test/java/org/apache/vysper/console/HtmlFormBuilderTest.java (added)
+++ mina/vysper/trunk/server/admin-console/src/test/java/org/apache/vysper/console/HtmlFormBuilderTest.java Fri Jan 14 12:24:28 2011
@@ -0,0 +1,265 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.vysper.console;
+
+import org.jivesoftware.smackx.FormField;
+import org.jivesoftware.smackx.FormField.Option;
+import org.jivesoftware.smackx.packet.DataForm;
+import org.junit.Assert;
+import org.junit.Test;
+
+
+public class HtmlFormBuilderTest {
+
+ private static final String LABEL = "Some label";
+ private static final String VALUE1 = "Value 1";
+ private static final String VALUE2 = "Value 2";
+ private static final String VALUE3 = "Value 3";
+
+ private DataForm form = new DataForm("form");
+ private HtmlFormBuilder builder = new HtmlFormBuilder();
+
+ @Test
+ public void testHiddenField() {
+ FormField field = new FormField("abc def");
+ field.setType("hidden");
+ field.addValue(VALUE1);
+ form.addField(field);
+
+ String actual = builder.build(form);
+ String expected = "<p><input id='abc-def' name='abc def' value='Value 1' type='hidden' /></p>";
+
+ Assert.assertEquals(expected, actual);
+ }
+
+ @Test
+ public void testTextPrivateField() {
+ FormField field = new FormField("abc def");
+ field.setType("text-private");
+ field.addValue(VALUE1);
+ form.addField(field);
+
+ String actual = builder.build(form);
+ String expected = "<p><input id='abc-def' name='abc def' value='Value 1' type='password' /></p>";
+
+ Assert.assertEquals(expected, actual);
+ }
+
+ @Test
+ public void testTextSingleField() {
+ FormField field = new FormField("abc def");
+ field.setType("text-single");
+ field.addValue(VALUE1);
+ form.addField(field);
+
+ String actual = builder.build(form);
+ String expected = "<p><input id='abc-def' name='abc def' value='Value 1' /></p>";
+
+ Assert.assertEquals(expected, actual);
+ }
+
+ @Test
+ public void testFixedField() {
+ FormField field = new FormField("abc def");
+ field.setType("fixed");
+ field.addValue(VALUE1);
+ field.setLabel(LABEL);
+ form.addField(field);
+
+ String actual = builder.build(form);
+ String expected = "<p>Some label <span>Value 1</span></p>";
+
+ Assert.assertEquals(expected, actual);
+ }
+
+ @Test
+ public void testJidSingleField() {
+ FormField field = new FormField("abc def");
+ field.setType("jid-single");
+ field.addValue(VALUE1);
+ form.addField(field);
+
+ String actual = builder.build(form);
+ String expected = "<p><input id='abc-def' name='abc def' value='Value 1' type='email' placeholder='example@vysper.org' /></p>";
+
+ Assert.assertEquals(expected, actual);
+ }
+
+ @Test
+ public void testTextMultiField() {
+ FormField field = new FormField("abc def");
+ field.setType("text-multi");
+ field.addValue(VALUE1);
+ field.addValue(VALUE2);
+ field.addValue(VALUE3);
+ form.addField(field);
+
+ String actual = builder.build(form);
+ String expected = "<p><textarea id='abc-def' name='abc def'>" + VALUE1 + "\r\n" + VALUE2 + "\r\n" + VALUE3 + "</textarea></p>";
+
+ Assert.assertEquals(expected, actual);
+ }
+
+ @Test
+ public void testJidMultiField() {
+ FormField field = new FormField("abc def");
+ field.setType("jid-multi");
+ field.addValue(VALUE1);
+ field.addValue(VALUE2);
+ field.addValue(VALUE3);
+ form.addField(field);
+
+ String actual = builder.build(form);
+ String expected = "<p><textarea id='abc-def' name='abc def'>" + VALUE1 + "\r\n" + VALUE2 + "\r\n" + VALUE3 + "</textarea></p>";
+
+ Assert.assertEquals(expected, actual);
+ }
+
+ @Test
+ public void listSingleFieldNoValue() {
+ FormField field = new FormField("abc def");
+ field.setType("list-single");
+ field.addOption(new Option("Label 1", VALUE1));
+ field.addOption(new Option(VALUE2));
+ form.addField(field);
+
+ String actual = builder.build(form);
+ String expected = "<p><select id='abc-def' name='abc def'><option value='" + VALUE1 + "'>Label 1</option><option value='" + VALUE2 + "'>" + VALUE2 + "</option></select></p>";
+
+ Assert.assertEquals(expected, actual);
+ }
+
+ @Test
+ public void listSingleFieldWithValue() {
+ FormField field = new FormField("abc def");
+ field.setType("list-single");
+ field.addOption(new Option("Label 1", VALUE1));
+ field.addOption(new Option(VALUE2));
+ field.addValue(VALUE1);
+ form.addField(field);
+
+ String actual = builder.build(form);
+ String expected = "<p><select id='abc-def' name='abc def'><option value='" + VALUE1 + "' selected>Label 1</option><option value='" + VALUE2 + "'>" + VALUE2 + "</option></select></p>";
+
+ Assert.assertEquals(expected, actual);
+ }
+
+ @Test
+ public void listMultiFieldNoValue() {
+ FormField field = new FormField("abc def");
+ field.setType("list-multi");
+ field.addOption(new Option("Label 1", VALUE1));
+ field.addOption(new Option(VALUE2));
+ form.addField(field);
+
+ String actual = builder.build(form);
+ String expected = "<p><select id='abc-def' name='abc def' multiple><option value='" + VALUE1 + "'>Label 1</option><option value='" + VALUE2 + "'>" + VALUE2 + "</option></select></p>";
+
+ Assert.assertEquals(expected, actual);
+ }
+
+ @Test
+ public void listMultiFieldWithValue() {
+ FormField field = new FormField("abc def");
+ field.setType("list-multi");
+ field.addOption(new Option("Label 1", VALUE1));
+ field.addOption(new Option(VALUE2));
+ field.addOption(new Option(VALUE3));
+ field.addValue(VALUE1);
+ field.addValue(VALUE3);
+ form.addField(field);
+
+ String actual = builder.build(form);
+ String expected = "<p><select id='abc-def' name='abc def' multiple>" +
+ "<option value='" + VALUE1 + "' selected>Label 1</option>" +
+ "<option value='" + VALUE2 + "'>" + VALUE2 + "</option>" +
+ "<option value='" + VALUE3 + "' selected>" + VALUE3 + "</option>" +
+ "</select></p>";
+
+ Assert.assertEquals(expected, actual);
+ }
+
+
+ @Test
+ public void testBooleanFieldDefault() {
+ FormField field = new FormField("abc def");
+ field.setType("boolean");
+ form.addField(field);
+
+ String actual = builder.build(form);
+ String expected = "<p><input name='abc def' value='true' type='radio' /> Yes <input name='abc def' value='false' type='radio' selected /> No</p>";
+
+ Assert.assertEquals(expected, actual);
+ }
+
+ @Test
+ public void testBooleanFieldWithValue() {
+ FormField field = new FormField("abc def");
+ field.setType("boolean");
+ field.addValue("true");
+ form.addField(field);
+
+ String actual = builder.build(form);
+ String expected = "<p><input name='abc def' value='true' type='radio' selected /> Yes <input name='abc def' value='false' type='radio' /> No</p>";
+
+ Assert.assertEquals(expected, actual);
+ }
+
+
+ @Test
+ public void testNoTypeField() {
+ FormField field = new FormField("abc def");
+ field.addValue(VALUE1);
+ form.addField(field);
+
+ String actual = builder.build(form);
+ String expected = "<p><input id='abc-def' name='abc def' value='Value 1' /></p>";
+
+ Assert.assertEquals(expected, actual);
+ }
+
+
+ @Test
+ public void testLabel() {
+ FormField field = new FormField("abc def");
+ field.setLabel(LABEL);
+ field.addValue(VALUE1);
+ form.addField(field);
+
+ String actual = builder.build(form);
+ String expected = "<p><label for='abc-def'>" + LABEL + "</label><input id='abc-def' name='abc def' value='Value 1' /></p>";
+
+ Assert.assertEquals(expected, actual);
+ }
+
+ @Test
+ public void testDesc() {
+ FormField field = new FormField("abc def");
+ field.setDescription("Some description");
+ field.addValue(VALUE1);
+ form.addField(field);
+
+ String actual = builder.build(form);
+ String expected = "<p><input id='abc-def' name='abc def' value='Value 1' /><img src='resources/info.png' title='Some description' /></p>";
+
+ Assert.assertEquals(expected, actual);
+ }
+
+}