/*
* Copyright 2001-2008 Geert Bevin (gbevin[remove] at uwyn dot com)
* Licensed under the Apache License, Version 2.0 (the "License")
* $Id: TestFormBuilderXhtml.java 3947 2008-05-05 12:23:39Z gbevin $
*/
package com.uwyn.rife.site;
import com.uwyn.rife.template.Template;
import com.uwyn.rife.template.TemplateFactory;
import com.uwyn.rife.tools.ExceptionUtils;
import com.uwyn.rife.tools.StringUtils;
import com.uwyn.rife.tools.exceptions.BeanUtilsException;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.ListResourceBundle;
import java.util.Set;
import junit.framework.TestCase;
public class TestFormBuilderXhtml extends TestCase
{
public enum RadioInListEnum {a1, a3, a2}
public enum CheckboxInListEnum {
v1(1), v3(3), v2(2);
private int mNumber;
CheckboxInListEnum(int number)
{
mNumber = number;
}
public String toString()
{
return String.valueOf(mNumber);
}
}
public enum SelectInListEnum {black, red, green, blue}
public enum SelectInListEnum2 {black, red, blue}
public enum SelectInListEnum3 {
v1(1), v3(3), v5(5), v9(9);
private int mNumber;
SelectInListEnum3(int number)
{
mNumber = number;
}
public String toString()
{
return String.valueOf(mNumber);
}
}
public TestFormBuilderXhtml(String name)
{
super(name);
}
public void testInstantiate()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
assertNotNull(builder);
}
public void testClone()
{
FormBuilderXhtml builder1 = new FormBuilderXhtml();
FormBuilderXhtml builder2 = (FormBuilderXhtml)builder1.clone();
assertNotNull(builder2);
assertNotSame(builder1, builder2);
}
public void testGetValidationBuilder()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
assertNotNull(builder.getValidationBuilder());
}
public void testGenerateFieldInvalidArguments()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
assertEquals(0, builder.generateField(null, (ConstrainedProperty)null, null, null).size());
assertEquals(0, builder.generateField(null, (String)null, null, null).size());
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
String raw_content = template.getContent();
assertNotNull(template);
assertEquals(0, builder.generateField(template, (ConstrainedProperty)null, null, null).size());
assertEquals(raw_content, template.getContent());
assertEquals(0, builder.generateField(template, (String)null, null, null).size());
assertEquals(raw_content, template.getContent());
}
public void testRemoveFieldInvalidArguments()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
builder.removeField(null, null, null);
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
String raw_content = template.getContent();
assertNotNull(template);
builder.removeField(template, null, null);
assertEquals(raw_content, template.getContent());
builder.removeField(template, "", null);
assertEquals(raw_content, template.getContent());
}
public void testGenerateFieldHiddenWithDefault()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
set_values = builder.generateField(template, "hidden", null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:HIDDEN:hidden", set_values.iterator().next());
assertEquals("<input type=\"hidden\" name=\"hidden\" id=\"thehiddenone\" />", StringUtils.splitToArray(template.getContent(), "\n")[52]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("hidden"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:HIDDEN:hidden", set_values.iterator().next());
assertEquals("<input type=\"hidden\" name=\"hidden\" id=\"thehiddenone\" />", StringUtils.splitToArray(template.getContent(), "\n")[52]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("hidden"), new String[] {null, "één"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:HIDDEN:hidden", set_values.iterator().next());
assertEquals("<input type=\"hidden\" name=\"hidden\" id=\"thehiddenone\" />", StringUtils.splitToArray(template.getContent(), "\n")[52]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("hidden"), new String[] {"één"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:HIDDEN:hidden", set_values.iterator().next());
assertEquals("<input type=\"hidden\" name=\"hidden\" id=\"thehiddenone\" value=\"één\" />", StringUtils.splitToArray(template.getContent(), "\n")[52]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("hidden").defaultValue("non&e").maxLength(20), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:HIDDEN:hidden", set_values.iterator().next());
assertEquals("<input type=\"hidden\" name=\"hidden\" id=\"thehiddenone\" value=\"non&e\" />", StringUtils.splitToArray(template.getContent(), "\n")[52]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("hidden").defaultValue("non&e").maxLength(20), new String[] {"hé", "you"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:HIDDEN:hidden", set_values.iterator().next());
assertEquals("<input type=\"hidden\" name=\"hidden\" id=\"thehiddenone\" value=\"hé\" />", StringUtils.splitToArray(template.getContent(), "\n")[52]);
template.removeValue(set_values.iterator().next());
set_values.clear();
template.setValue("FORM:HIDDEN:hidden", "already set");
set_values = builder.generateField(template, new ConstrainedProperty("hidden"), null, null);
assertEquals(0, set_values.size());
assertEquals("already set", StringUtils.splitToArray(template.getContent(), "\n")[52]);
template.removeValue("FORM:HIDDEN:hidden");
}
public void testGenerateFieldHiddenWithoutDefault()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
set_values = builder.generateField(template, "anotherhidden", null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:HIDDEN:anotherhidden", set_values.iterator().next());
assertEquals("<input type=\"hidden\" name=\"anotherhidden\" />", StringUtils.splitToArray(template.getContent(), "\n")[53]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("anotherhidden"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:HIDDEN:anotherhidden", set_values.iterator().next());
assertEquals("<input type=\"hidden\" name=\"anotherhidden\" />", StringUtils.splitToArray(template.getContent(), "\n")[53]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("anotherhidden"), new String[] {"één"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:HIDDEN:anotherhidden", set_values.iterator().next());
assertEquals("<input type=\"hidden\" name=\"anotherhidden\" value=\"één\" />", StringUtils.splitToArray(template.getContent(), "\n")[53]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("anotherhidden").defaultValue("non&e").maxLength(20), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:HIDDEN:anotherhidden", set_values.iterator().next());
assertEquals("<input type=\"hidden\" name=\"anotherhidden\" value=\"non&e\" />", StringUtils.splitToArray(template.getContent(), "\n")[53]);
template.removeValue(set_values.iterator().next());
set_values.clear();
}
public void testGenerateFieldHiddenPrefix()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
set_values = builder.generateField(template, "hidden", null, "another");
assertEquals(1, set_values.size());
assertEquals("FORM:HIDDEN:anotherhidden", set_values.iterator().next());
assertEquals("<input type=\"hidden\" name=\"anotherhidden\" />", StringUtils.splitToArray(template.getContent(), "\n")[53]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("hidden"), null, "another");
assertEquals(1, set_values.size());
assertEquals("FORM:HIDDEN:anotherhidden", set_values.iterator().next());
assertEquals("<input type=\"hidden\" name=\"anotherhidden\" />", StringUtils.splitToArray(template.getContent(), "\n")[53]);
template.removeValue(set_values.iterator().next());
set_values.clear();
template.setValue("FORM:HIDDEN:anotherhidden", "already set");
set_values = builder.generateField(template, new ConstrainedProperty("hidden"), null, "another");
assertEquals(0, set_values.size());
assertEquals("already set", StringUtils.splitToArray(template.getContent(), "\n")[53]);
template.removeValue("FORM:HIDDEN:anotherhidden");
}
public void testGenerateFieldHiddenTemplateNameWithDefault()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields_templatename");
set_values = builder.replaceField(template, "templatenamehidden", "hidden", null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:HIDDEN:templatenamehidden", set_values.iterator().next());
assertEquals("<input type=\"hidden\" name=\"hidden\" id=\"thehiddenone\" />", StringUtils.splitToArray(template.getContent(), "\n")[52]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamehidden", new ConstrainedProperty("hidden"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:HIDDEN:templatenamehidden", set_values.iterator().next());
assertEquals("<input type=\"hidden\" name=\"hidden\" id=\"thehiddenone\" />", StringUtils.splitToArray(template.getContent(), "\n")[52]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamehidden", new ConstrainedProperty("hidden"), new String[] {null, "één"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:HIDDEN:templatenamehidden", set_values.iterator().next());
assertEquals("<input type=\"hidden\" name=\"hidden\" id=\"thehiddenone\" />", StringUtils.splitToArray(template.getContent(), "\n")[52]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamehidden", new ConstrainedProperty("hidden"), new String[] {"één"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:HIDDEN:templatenamehidden", set_values.iterator().next());
assertEquals("<input type=\"hidden\" name=\"hidden\" id=\"thehiddenone\" value=\"één\" />", StringUtils.splitToArray(template.getContent(), "\n")[52]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamehidden", new ConstrainedProperty("hidden").defaultValue("non&e").maxLength(20), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:HIDDEN:templatenamehidden", set_values.iterator().next());
assertEquals("<input type=\"hidden\" name=\"hidden\" id=\"thehiddenone\" value=\"non&e\" />", StringUtils.splitToArray(template.getContent(), "\n")[52]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamehidden", new ConstrainedProperty("hidden").defaultValue("non&e").maxLength(20), new String[] {"hé", "you"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:HIDDEN:templatenamehidden", set_values.iterator().next());
assertEquals("<input type=\"hidden\" name=\"hidden\" id=\"thehiddenone\" value=\"hé\" />", StringUtils.splitToArray(template.getContent(), "\n")[52]);
template.removeValue(set_values.iterator().next());
set_values.clear();
template.setValue("FORM:HIDDEN:templatenamehidden", "already set");
set_values = builder.replaceField(template, "templatenamehidden", new ConstrainedProperty("hidden"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:HIDDEN:templatenamehidden", set_values.iterator().next());
assertEquals("<input type=\"hidden\" name=\"hidden\" id=\"thehiddenone\" />", StringUtils.splitToArray(template.getContent(), "\n")[52]);
template.removeValue(set_values.iterator().next());
set_values.clear();
}
public void testRemoveFieldHidden()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
String raw_content = template.getContent();
builder.generateField(template, new ConstrainedProperty("hidden").defaultValue("non&e").maxLength(20), new String[] {"hé", "you"}, null);
assertFalse(raw_content.equals(template.getContent()));
builder.removeField(template, "hidden", null);
assertEquals(raw_content, template.getContent());
}
public void testRemoveFieldHiddenPrefix()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
String raw_content = template.getContent();
builder.generateField(template, new ConstrainedProperty("hidden").defaultValue("non&e").maxLength(20), new String[] {"hé", "you"}, "another");
assertFalse(raw_content.equals(template.getContent()));
builder.removeField(template, "hidden", "another");
assertEquals(raw_content, template.getContent());
}
public void testRemoveFieldHiddenTemplateName()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields_templatename");
String raw_content = template.getContent();
builder.replaceField(template, "templatenamehidden", new ConstrainedProperty("hidden").defaultValue("non&e").maxLength(20), new String[] {"hé", "you"}, null);
assertFalse(raw_content.equals(template.getContent()));
builder.removeField(template, "templatenamehidden");
assertEquals(raw_content, template.getContent());
}
public void testGenerateFieldInputWithDefault()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Iterator<String> set_values_it;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
set_values = builder.generateField(template, "login", null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:INPUT:login", set_values_it.next());
assertEquals("FORM:DISPLAY:login", set_values_it.next());
assertEquals("<input type=\"text\" name=\"login\" size=\"10\" />", StringUtils.splitToArray(template.getContent(), "\n")[0]);
assertEquals("<div class=\"thedisplayedone\"></div>", StringUtils.splitToArray(template.getContent(), "\n")[54]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("login"), null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:INPUT:login", set_values_it.next());
assertEquals("FORM:DISPLAY:login", set_values_it.next());
assertEquals("<input type=\"text\" name=\"login\" size=\"10\" />", StringUtils.splitToArray(template.getContent(), "\n")[0]);
assertEquals("<div class=\"thedisplayedone\"></div>", StringUtils.splitToArray(template.getContent(), "\n")[54]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("login"), new String[] {null, "één"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:INPUT:login", set_values_it.next());
assertEquals("FORM:DISPLAY:login", set_values_it.next());
assertEquals("<input type=\"text\" name=\"login\" size=\"10\" />", StringUtils.splitToArray(template.getContent(), "\n")[0]);
assertEquals("<div class=\"thedisplayedone\"></div><div class=\"thedisplayedone\">één</div>", StringUtils.splitToArray(template.getContent(), "\n")[54]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("login"), new String[] {"één"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:INPUT:login", set_values_it.next());
assertEquals("FORM:DISPLAY:login", set_values_it.next());
assertEquals("<input type=\"text\" name=\"login\" size=\"10\" value=\"één\" />", StringUtils.splitToArray(template.getContent(), "\n")[0]);
assertEquals("<div class=\"thedisplayedone\">één</div>", StringUtils.splitToArray(template.getContent(), "\n")[54]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("login").defaultValue("non&e").maxLength(20), null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:INPUT:login", set_values_it.next());
assertEquals("FORM:DISPLAY:login", set_values_it.next());
assertEquals("<input type=\"text\" name=\"login\" size=\"10\" value=\"non&e\" maxlength=\"20\" />", StringUtils.splitToArray(template.getContent(), "\n")[0]);
assertEquals("<div class=\"thedisplayedone\">non&e</div>", StringUtils.splitToArray(template.getContent(), "\n")[54]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("login").defaultValue("non&e").maxLength(20), new String[] {"hé", "you"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:INPUT:login", set_values_it.next());
assertEquals("FORM:DISPLAY:login", set_values_it.next());
assertEquals("<input type=\"text\" name=\"login\" size=\"10\" value=\"hé\" maxlength=\"20\" />", StringUtils.splitToArray(template.getContent(), "\n")[0]);
assertEquals("<div class=\"thedisplayedone\">hé</div><div class=\"thedisplayedone\">you</div>", StringUtils.splitToArray(template.getContent(), "\n")[54]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
template.setValue("FORM:INPUT:login", "already set");
template.setValue("FORM:DISPLAY:login", "already set too");
set_values = builder.generateField(template, new ConstrainedProperty("login"), null, null);
assertEquals(0, set_values.size());
assertEquals("already set", StringUtils.splitToArray(template.getContent(), "\n")[0]);
assertEquals("already set too", StringUtils.splitToArray(template.getContent(), "\n")[54]);
template.removeValue("FORM:INPUT:login");
template.removeValue("FORM:DISPLAY:login");
}
public void testGenerateFieldInputWithoutDefault()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Iterator<String> set_values_it;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
set_values = builder.generateField(template, "anotherlogin", null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:INPUT:anotherlogin", set_values_it.next());
assertEquals("FORM:DISPLAY:anotherlogin", set_values_it.next());
assertEquals("<input type=\"text\" name=\"anotherlogin\" />", StringUtils.splitToArray(template.getContent(), "\n")[1]);
assertEquals("<div></div>", StringUtils.splitToArray(template.getContent(), "\n")[55]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("anotherlogin"), null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:INPUT:anotherlogin", set_values_it.next());
assertEquals("FORM:DISPLAY:anotherlogin", set_values_it.next());
assertEquals("<input type=\"text\" name=\"anotherlogin\" />", StringUtils.splitToArray(template.getContent(), "\n")[1]);
assertEquals("<div></div>", StringUtils.splitToArray(template.getContent(), "\n")[55]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("anotherlogin"), new String[] {"één"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:INPUT:anotherlogin", set_values_it.next());
assertEquals("FORM:DISPLAY:anotherlogin", set_values_it.next());
assertEquals("FORM:INPUT:anotherlogin", set_values.iterator().next());
assertEquals("<input type=\"text\" name=\"anotherlogin\" value=\"één\" />", StringUtils.splitToArray(template.getContent(), "\n")[1]);
assertEquals("<div>één</div>", StringUtils.splitToArray(template.getContent(), "\n")[55]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("anotherlogin").defaultValue("non&e").maxLength(20), null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:INPUT:anotherlogin", set_values_it.next());
assertEquals("FORM:DISPLAY:anotherlogin", set_values_it.next());
assertEquals("FORM:INPUT:anotherlogin", set_values.iterator().next());
assertEquals("<input type=\"text\" name=\"anotherlogin\" value=\"non&e\" maxlength=\"20\" />", StringUtils.splitToArray(template.getContent(), "\n")[1]);
assertEquals("<div>non&e</div>", StringUtils.splitToArray(template.getContent(), "\n")[55]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
}
public void testGenerateFieldInputPrefix()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Iterator<String> set_values_it;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
set_values = builder.generateField(template, "login", null, "another");
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:INPUT:anotherlogin", set_values_it.next());
assertEquals("FORM:DISPLAY:anotherlogin", set_values_it.next());
assertEquals("<input type=\"text\" name=\"anotherlogin\" />", StringUtils.splitToArray(template.getContent(), "\n")[1]);
assertEquals("<div></div>", StringUtils.splitToArray(template.getContent(), "\n")[55]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("login"), null, "another");
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:INPUT:anotherlogin", set_values_it.next());
assertEquals("FORM:DISPLAY:anotherlogin", set_values_it.next());
assertEquals("<input type=\"text\" name=\"anotherlogin\" />", StringUtils.splitToArray(template.getContent(), "\n")[1]);
assertEquals("<div></div>", StringUtils.splitToArray(template.getContent(), "\n")[55]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
template.setValue("FORM:INPUT:anotherlogin", "already set");
template.setValue("FORM:DISPLAY:anotherlogin", "already set too");
set_values = builder.generateField(template, new ConstrainedProperty("login"), null, "another");
assertEquals(0, set_values.size());
assertEquals("already set", StringUtils.splitToArray(template.getContent(), "\n")[1]);
assertEquals("already set too", StringUtils.splitToArray(template.getContent(), "\n")[55]);
template.removeValue("FORM:INPUT:anotherlogin");
template.removeValue("FORM:DISPLAY:anotherlogin");
}
public void testGenerateFieldInputWithDefaultTemplateName()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Iterator<String> set_values_it;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields_templatename");
set_values = builder.replaceField(template, "templatenamelogin", "login", null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:INPUT:templatenamelogin", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenamelogin", set_values_it.next());
assertEquals("<input type=\"text\" name=\"login\" size=\"10\" />", StringUtils.splitToArray(template.getContent(), "\n")[0]);
assertEquals("<div class=\"thedisplayedone\"></div>", StringUtils.splitToArray(template.getContent(), "\n")[54]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamelogin", new ConstrainedProperty("login"), null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:INPUT:templatenamelogin", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenamelogin", set_values_it.next());
assertEquals("<input type=\"text\" name=\"login\" size=\"10\" />", StringUtils.splitToArray(template.getContent(), "\n")[0]);
assertEquals("<div class=\"thedisplayedone\"></div>", StringUtils.splitToArray(template.getContent(), "\n")[54]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamelogin", new ConstrainedProperty("login"), new String[] {null, "één"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:INPUT:templatenamelogin", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenamelogin", set_values_it.next());
assertEquals("<input type=\"text\" name=\"login\" size=\"10\" />", StringUtils.splitToArray(template.getContent(), "\n")[0]);
assertEquals("<div class=\"thedisplayedone\"></div><div class=\"thedisplayedone\">één</div>", StringUtils.splitToArray(template.getContent(), "\n")[54]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamelogin", new ConstrainedProperty("login"), new String[] {"één"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:INPUT:templatenamelogin", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenamelogin", set_values_it.next());
assertEquals("<input type=\"text\" name=\"login\" size=\"10\" value=\"één\" />", StringUtils.splitToArray(template.getContent(), "\n")[0]);
assertEquals("<div class=\"thedisplayedone\">één</div>", StringUtils.splitToArray(template.getContent(), "\n")[54]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamelogin", new ConstrainedProperty("login").defaultValue("non&e").maxLength(20), null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:INPUT:templatenamelogin", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenamelogin", set_values_it.next());
assertEquals("<input type=\"text\" name=\"login\" size=\"10\" value=\"non&e\" maxlength=\"20\" />", StringUtils.splitToArray(template.getContent(), "\n")[0]);
assertEquals("<div class=\"thedisplayedone\">non&e</div>", StringUtils.splitToArray(template.getContent(), "\n")[54]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamelogin", new ConstrainedProperty("login").defaultValue("non&e").maxLength(20), new String[] {"hé", "you"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:INPUT:templatenamelogin", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenamelogin", set_values_it.next());
assertEquals("<input type=\"text\" name=\"login\" size=\"10\" value=\"hé\" maxlength=\"20\" />", StringUtils.splitToArray(template.getContent(), "\n")[0]);
assertEquals("<div class=\"thedisplayedone\">hé</div><div class=\"thedisplayedone\">you</div>", StringUtils.splitToArray(template.getContent(), "\n")[54]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
template.setValue("FORM:INPUT:templatenamelogin", "already set");
template.setValue("FORM:DISPLAY:templatenamelogin", "already set too");
set_values = builder.replaceField(template, "templatenamelogin", new ConstrainedProperty("login"), null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:INPUT:templatenamelogin", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenamelogin", set_values_it.next());
assertEquals("<input type=\"text\" name=\"login\" size=\"10\" />", StringUtils.splitToArray(template.getContent(), "\n")[0]);
assertEquals("<div class=\"thedisplayedone\"></div>", StringUtils.splitToArray(template.getContent(), "\n")[54]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
}
public void testRemoveFieldInput()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
String raw_content = template.getContent();
builder.generateField(template, new ConstrainedProperty("login").defaultValue("non&e").maxLength(20), new String[] {"hé", "you"}, null);
assertFalse(raw_content.equals(template.getContent()));
builder.removeField(template, "login", null);
assertEquals(raw_content, template.getContent());
}
public void testRemoveFieldInputPrefix()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
String raw_content = template.getContent();
builder.generateField(template, new ConstrainedProperty("login").defaultValue("non&e").maxLength(20), new String[] {"hé", "you"}, "another");
assertFalse(raw_content.equals(template.getContent()));
builder.removeField(template, "login", "another");
assertEquals(raw_content, template.getContent());
}
public void testRemoveFieldInputTemplateName()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields_templatename");
String raw_content = template.getContent();
builder.replaceField(template, "templatenamelogin", new ConstrainedProperty("login").defaultValue("non&e").maxLength(20), new String[] {"hé", "you"}, null);
assertFalse(raw_content.equals(template.getContent()));
builder.removeField(template, "templatenamelogin");
assertEquals(raw_content, template.getContent());
}
public void testGenerateFieldSecretWithDefault()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
set_values = builder.generateField(template, "password", null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:SECRET:password", set_values.iterator().next());
assertEquals("<input type=\"password\" name=\"password\" size=\"10\" />", StringUtils.splitToArray(template.getContent(), "\n")[2]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("password"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:SECRET:password", set_values.iterator().next());
assertEquals("<input type=\"password\" name=\"password\" size=\"10\" />", StringUtils.splitToArray(template.getContent(), "\n")[2]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("password"), new String[] {null, "één"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:SECRET:password", set_values.iterator().next());
assertEquals("<input type=\"password\" name=\"password\" size=\"10\" />", StringUtils.splitToArray(template.getContent(), "\n")[2]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("password"), new String[] {"één"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:SECRET:password", set_values.iterator().next());
assertEquals("<input type=\"password\" name=\"password\" size=\"10\" />", StringUtils.splitToArray(template.getContent(), "\n")[2]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("password").defaultValue("non&e").maxLength(20), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:SECRET:password", set_values.iterator().next());
assertEquals("<input type=\"password\" name=\"password\" size=\"10\" maxlength=\"20\" />", StringUtils.splitToArray(template.getContent(), "\n")[2]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("password").defaultValue("non&e").maxLength(20), new String[] {"hé", "you"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:SECRET:password", set_values.iterator().next());
assertEquals("<input type=\"password\" name=\"password\" size=\"10\" maxlength=\"20\" />", StringUtils.splitToArray(template.getContent(), "\n")[2]);
template.removeValue(set_values.iterator().next());
set_values.clear();
template.setValue("FORM:SECRET:password", "already set");
set_values = builder.generateField(template, new ConstrainedProperty("password"), null, null);
assertEquals(0, set_values.size());
assertEquals("already set", StringUtils.splitToArray(template.getContent(), "\n")[2]);
template.removeValue("FORM:SECRET:password");
}
public void testGenerateFieldSecretWithoutDefault()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
set_values = builder.generateField(template, "anotherpassword", null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:SECRET:anotherpassword", set_values.iterator().next());
assertEquals("<input type=\"password\" name=\"anotherpassword\" />", StringUtils.splitToArray(template.getContent(), "\n")[3]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("anotherpassword"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:SECRET:anotherpassword", set_values.iterator().next());
assertEquals("<input type=\"password\" name=\"anotherpassword\" />", StringUtils.splitToArray(template.getContent(), "\n")[3]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("anotherpassword"), new String[] {"één"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:SECRET:anotherpassword", set_values.iterator().next());
assertEquals("<input type=\"password\" name=\"anotherpassword\" />", StringUtils.splitToArray(template.getContent(), "\n")[3]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("anotherpassword").defaultValue("non&e").maxLength(20), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:SECRET:anotherpassword", set_values.iterator().next());
assertEquals("<input type=\"password\" name=\"anotherpassword\" maxlength=\"20\" />", StringUtils.splitToArray(template.getContent(), "\n")[3]);
template.removeValue(set_values.iterator().next());
set_values.clear();
}
public void testGenerateFieldSecretPrefix()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
set_values = builder.generateField(template, "password", null, "another");
assertEquals(1, set_values.size());
assertEquals("FORM:SECRET:anotherpassword", set_values.iterator().next());
assertEquals("<input type=\"password\" name=\"anotherpassword\" />", StringUtils.splitToArray(template.getContent(), "\n")[3]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("password"), null, "another");
assertEquals(1, set_values.size());
assertEquals("FORM:SECRET:anotherpassword", set_values.iterator().next());
assertEquals("<input type=\"password\" name=\"anotherpassword\" />", StringUtils.splitToArray(template.getContent(), "\n")[3]);
template.removeValue(set_values.iterator().next());
set_values.clear();
template.setValue("FORM:SECRET:anotherpassword", "already set");
set_values = builder.generateField(template, new ConstrainedProperty("password"), null, "another");
assertEquals(0, set_values.size());
assertEquals("already set", StringUtils.splitToArray(template.getContent(), "\n")[3]);
template.removeValue("FORM:SECRET:anotherpassword");
}
public void testGenerateFieldSecretTemplateNameWithDefault()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields_templatename");
set_values = builder.replaceField(template, "templatenamepassword", "password", null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:SECRET:templatenamepassword", set_values.iterator().next());
assertEquals("<input type=\"password\" name=\"password\" size=\"10\" />", StringUtils.splitToArray(template.getContent(), "\n")[2]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamepassword", new ConstrainedProperty("password"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:SECRET:templatenamepassword", set_values.iterator().next());
assertEquals("<input type=\"password\" name=\"password\" size=\"10\" />", StringUtils.splitToArray(template.getContent(), "\n")[2]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamepassword", new ConstrainedProperty("password"), new String[] {null, "één"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:SECRET:templatenamepassword", set_values.iterator().next());
assertEquals("<input type=\"password\" name=\"password\" size=\"10\" />", StringUtils.splitToArray(template.getContent(), "\n")[2]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamepassword", new ConstrainedProperty("password"), new String[] {"één"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:SECRET:templatenamepassword", set_values.iterator().next());
assertEquals("<input type=\"password\" name=\"password\" size=\"10\" />", StringUtils.splitToArray(template.getContent(), "\n")[2]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamepassword", new ConstrainedProperty("password").defaultValue("non&e").maxLength(20), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:SECRET:templatenamepassword", set_values.iterator().next());
assertEquals("<input type=\"password\" name=\"password\" size=\"10\" maxlength=\"20\" />", StringUtils.splitToArray(template.getContent(), "\n")[2]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamepassword", new ConstrainedProperty("password").defaultValue("non&e").maxLength(20), new String[] {"hé", "you"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:SECRET:templatenamepassword", set_values.iterator().next());
assertEquals("<input type=\"password\" name=\"password\" size=\"10\" maxlength=\"20\" />", StringUtils.splitToArray(template.getContent(), "\n")[2]);
template.removeValue(set_values.iterator().next());
set_values.clear();
template.setValue("FORM:SECRET:templatenamepassword", "already set");
set_values = builder.replaceField(template, "templatenamepassword", new ConstrainedProperty("password"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:SECRET:templatenamepassword", set_values.iterator().next());
assertEquals("<input type=\"password\" name=\"password\" size=\"10\" />", StringUtils.splitToArray(template.getContent(), "\n")[2]);
template.removeValue(set_values.iterator().next());
set_values.clear();
}
public void testRemoveFieldSecret()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
String raw_content = template.getContent();
builder.generateField(template, new ConstrainedProperty("password").defaultValue("non&e").maxLength(20), new String[] {"hé", "you"}, null);
assertFalse(raw_content.equals(template.getContent()));
builder.removeField(template, "password", null);
assertEquals(raw_content, template.getContent());
}
public void testRemoveFieldSecretPrefix()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
String raw_content = template.getContent();
builder.generateField(template, new ConstrainedProperty("password").defaultValue("non&e").maxLength(20), new String[] {"hé", "you"}, "another");
assertFalse(raw_content.equals(template.getContent()));
builder.removeField(template, "password", "another");
assertEquals(raw_content, template.getContent());
}
public void testRemoveFieldSecretTemplateName()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields_templatename");
String raw_content = template.getContent();
builder.replaceField(template, "templatenamepassword", new ConstrainedProperty("password").defaultValue("non&e").maxLength(20), new String[] {"hé", "you"}, null);
assertFalse(raw_content.equals(template.getContent()));
builder.removeField(template, "templatenamepassword");
assertEquals(raw_content, template.getContent());
}
public void testGenerateFieldTextareaWithDefault()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
set_values = builder.generateField(template, "comment", null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:TEXTAREA:comment", set_values.iterator().next());
assertEquals("<textarea name=\"comment\" cols=\"10\" rows=\"5\" id=\"comment[!V 'FORM:VALUE'/]\"></textarea>", StringUtils.splitToArray(template.getContent(), "\n")[4]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("comment"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:TEXTAREA:comment", set_values.iterator().next());
assertEquals("<textarea name=\"comment\" cols=\"10\" rows=\"5\" id=\"comment[!V 'FORM:VALUE'/]\"></textarea>", StringUtils.splitToArray(template.getContent(), "\n")[4]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("comment"), new String[] {null, "één"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:TEXTAREA:comment", set_values.iterator().next());
assertEquals("<textarea name=\"comment\" cols=\"10\" rows=\"5\" id=\"comment[!V 'FORM:VALUE'/]\"></textarea>", StringUtils.splitToArray(template.getContent(), "\n")[4]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("comment"), new String[] {"één"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:TEXTAREA:comment", set_values.iterator().next());
assertEquals("<textarea name=\"comment\" cols=\"10\" rows=\"5\" id=\"commentéén\">één</textarea>", StringUtils.splitToArray(template.getContent(), "\n")[4]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("comment").defaultValue("non&e").maxLength(20), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:TEXTAREA:comment", set_values.iterator().next());
assertEquals("<textarea name=\"comment\" cols=\"10\" rows=\"5\" id=\"commentnon&e\">non&e</textarea>", StringUtils.splitToArray(template.getContent(), "\n")[4]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("comment").defaultValue("non&e").maxLength(20), new String[] {"hé", "you"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:TEXTAREA:comment", set_values.iterator().next());
assertEquals("<textarea name=\"comment\" cols=\"10\" rows=\"5\" id=\"commenthé\">hé</textarea>", StringUtils.splitToArray(template.getContent(), "\n")[4]);
template.removeValue(set_values.iterator().next());
set_values.clear();
template.setValue("FORM:TEXTAREA:comment", "already set");
set_values = builder.generateField(template, new ConstrainedProperty("comment"), null, null);
assertEquals(0, set_values.size());
assertEquals("already set", StringUtils.splitToArray(template.getContent(), "\n")[4]);
template.removeValue("FORM:TEXTAREA:comment");
}
public void testGenerateFieldTextareaWithoutDefault()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
set_values = builder.generateField(template, "anothercomment", null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:TEXTAREA:anothercomment", set_values.iterator().next());
assertEquals("<textarea name=\"anothercomment\"></textarea>", StringUtils.splitToArray(template.getContent(), "\n")[5]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("anothercomment"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:TEXTAREA:anothercomment", set_values.iterator().next());
assertEquals("<textarea name=\"anothercomment\"></textarea>", StringUtils.splitToArray(template.getContent(), "\n")[5]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("anothercomment"), new String[] {"één"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:TEXTAREA:anothercomment", set_values.iterator().next());
assertEquals("<textarea name=\"anothercomment\">één</textarea>", StringUtils.splitToArray(template.getContent(), "\n")[5]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("anothercomment").defaultValue("non&e").maxLength(20), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:TEXTAREA:anothercomment", set_values.iterator().next());
assertEquals("<textarea name=\"anothercomment\">non&e</textarea>", StringUtils.splitToArray(template.getContent(), "\n")[5]);
template.removeValue(set_values.iterator().next());
set_values.clear();
}
public void testGenerateFieldTextareaPrefix()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
set_values = builder.generateField(template, "comment", null, "another");
assertEquals(1, set_values.size());
assertEquals("FORM:TEXTAREA:anothercomment", set_values.iterator().next());
assertEquals("<textarea name=\"anothercomment\"></textarea>", StringUtils.splitToArray(template.getContent(), "\n")[5]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("comment"), null, "another");
assertEquals(1, set_values.size());
assertEquals("FORM:TEXTAREA:anothercomment", set_values.iterator().next());
assertEquals("<textarea name=\"anothercomment\"></textarea>", StringUtils.splitToArray(template.getContent(), "\n")[5]);
template.removeValue(set_values.iterator().next());
set_values.clear();
template.setValue("FORM:TEXTAREA:anothercomment", "already set");
set_values = builder.generateField(template, new ConstrainedProperty("comment"), null, "another");
assertEquals(0, set_values.size());
assertEquals("already set", StringUtils.splitToArray(template.getContent(), "\n")[5]);
template.removeValue("FORM:TEXTAREA:anothercomment");
}
public void testGenerateFieldTextareaTemplateNameWithDefault()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields_templatename");
set_values = builder.replaceField(template, "templatenamecomment", "comment", null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:TEXTAREA:templatenamecomment", set_values.iterator().next());
assertEquals("<textarea name=\"comment\" cols=\"10\" rows=\"5\" id=\"comment[!V 'FORM:VALUE'/]\"></textarea>", StringUtils.splitToArray(template.getContent(), "\n")[4]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamecomment", new ConstrainedProperty("comment"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:TEXTAREA:templatenamecomment", set_values.iterator().next());
assertEquals("<textarea name=\"comment\" cols=\"10\" rows=\"5\" id=\"comment[!V 'FORM:VALUE'/]\"></textarea>", StringUtils.splitToArray(template.getContent(), "\n")[4]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamecomment", new ConstrainedProperty("comment"), new String[] {null, "één"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:TEXTAREA:templatenamecomment", set_values.iterator().next());
assertEquals("<textarea name=\"comment\" cols=\"10\" rows=\"5\" id=\"comment[!V 'FORM:VALUE'/]\"></textarea>", StringUtils.splitToArray(template.getContent(), "\n")[4]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamecomment", new ConstrainedProperty("comment"), new String[] {"één"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:TEXTAREA:templatenamecomment", set_values.iterator().next());
assertEquals("<textarea name=\"comment\" cols=\"10\" rows=\"5\" id=\"commentéén\">één</textarea>", StringUtils.splitToArray(template.getContent(), "\n")[4]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamecomment", new ConstrainedProperty("comment").defaultValue("non&e").maxLength(20), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:TEXTAREA:templatenamecomment", set_values.iterator().next());
assertEquals("<textarea name=\"comment\" cols=\"10\" rows=\"5\" id=\"commentnon&e\">non&e</textarea>", StringUtils.splitToArray(template.getContent(), "\n")[4]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamecomment", new ConstrainedProperty("comment").defaultValue("non&e").maxLength(20), new String[] {"hé", "you"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:TEXTAREA:templatenamecomment", set_values.iterator().next());
assertEquals("<textarea name=\"comment\" cols=\"10\" rows=\"5\" id=\"commenthé\">hé</textarea>", StringUtils.splitToArray(template.getContent(), "\n")[4]);
template.removeValue(set_values.iterator().next());
set_values.clear();
template.setValue("FORM:TEXTAREA:templatenamecomment", "already set");
set_values = builder.replaceField(template, "templatenamecomment", new ConstrainedProperty("comment"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:TEXTAREA:templatenamecomment", set_values.iterator().next());
assertEquals("<textarea name=\"comment\" cols=\"10\" rows=\"5\" id=\"comment[!V 'FORM:VALUE'/]\"></textarea>", StringUtils.splitToArray(template.getContent(), "\n")[4]);
template.removeValue(set_values.iterator().next());
set_values.clear();
}
public void testRemoveFieldTextarea()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
String raw_content = template.getContent();
builder.generateField(template, new ConstrainedProperty("comment").defaultValue("non&e").maxLength(20), new String[] {"hé", "you"}, null);
assertFalse(raw_content.equals(template.getContent()));
builder.removeField(template, "comment", null);
assertEquals(raw_content, template.getContent());
}
public void testRemoveFieldTextareaPrefix()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
String raw_content = template.getContent();
builder.generateField(template, new ConstrainedProperty("comment").defaultValue("non&e").maxLength(20), new String[] {"hé", "you"}, "another");
assertFalse(raw_content.equals(template.getContent()));
builder.removeField(template, "comment", "another");
assertEquals(raw_content, template.getContent());
}
public void testRemoveFieldTextareaTemplateName()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields_templatename");
String raw_content = template.getContent();
builder.replaceField(template, "templatenamecomment", new ConstrainedProperty("comment").defaultValue("non&e").maxLength(20), new String[] {"hé", "you"}, null);
assertFalse(raw_content.equals(template.getContent()));
builder.removeField(template, "templatenamecomment", null);
assertEquals(raw_content, template.getContent());
}
public void testGenerateFieldRadioWithDefault()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Iterator<String> set_values_it;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
set_values = builder.generateField(template, "question", null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:RADIO:question", set_values_it.next());
assertEquals("FORM:DISPLAY:question", set_values_it.next());
assertEquals("<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"question[!V 'FORM:VALUE'/]\" />", StringUtils.splitToArray(template.getContent(), "\n")[6]);
assertEquals("<div></div>", StringUtils.splitToArray(template.getContent(), "\n")[56]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("question"), null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:RADIO:question", set_values_it.next());
assertEquals("FORM:DISPLAY:question", set_values_it.next());
assertEquals("<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"question[!V 'FORM:VALUE'/]\" />", StringUtils.splitToArray(template.getContent(), "\n")[6]);
assertEquals("<div></div>", StringUtils.splitToArray(template.getContent(), "\n")[56]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("question").inList(null, "a1", null, "a3", "a2"), null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:RADIO:question", set_values_it.next());
assertEquals("FORM:DISPLAY:question", set_values_it.next());
assertEquals("<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona1\" value=\"a1\" />answer1<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona3\" value=\"a3\" />a3<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona2\" value=\"a2\" />answer2", StringUtils.splitToArray(template.getContent(), "\n")[6]);
assertEquals("<div></div>", StringUtils.splitToArray(template.getContent(), "\n")[56]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, SelectInListEnum.class, new ConstrainedProperty("question").inList(null, "a1", null, "a3", "a2"), null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:RADIO:question", set_values_it.next());
assertEquals("FORM:DISPLAY:question", set_values_it.next());
assertEquals("<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona1\" value=\"a1\" />answer1<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona3\" value=\"a3\" />a3<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona2\" value=\"a2\" />answer2", StringUtils.splitToArray(template.getContent(), "\n")[6]);
assertEquals("<div></div>", StringUtils.splitToArray(template.getContent(), "\n")[56]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, RadioInListEnum.class, "question", null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:RADIO:question", set_values_it.next());
assertEquals("FORM:DISPLAY:question", set_values_it.next());
assertEquals("<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona1\" value=\"a1\" />answer1<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona3\" value=\"a3\" />a3<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona2\" value=\"a2\" />answer2", StringUtils.splitToArray(template.getContent(), "\n")[6]);
assertEquals("<div></div>", StringUtils.splitToArray(template.getContent(), "\n")[56]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("question").inList(null, "a1", null, "a3", "a2").defaultValue("a2"), new String[] {null, "a1"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:RADIO:question", set_values_it.next());
assertEquals("FORM:DISPLAY:question", set_values_it.next());
assertEquals("<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona1\" value=\"a1\" />answer1<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona3\" value=\"a3\" />a3<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona2\" value=\"a2\" checked=\"checked\" />answer2", StringUtils.splitToArray(template.getContent(), "\n")[6]);
assertEquals("<div>answer2</div><div>answer1</div>", StringUtils.splitToArray(template.getContent(), "\n")[56]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, RadioInListEnum.class, new ConstrainedProperty("question").defaultValue("a2"), new String[] {null, "a1"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:RADIO:question", set_values_it.next());
assertEquals("FORM:DISPLAY:question", set_values_it.next());
assertEquals("<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona1\" value=\"a1\" />answer1<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona3\" value=\"a3\" />a3<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona2\" value=\"a2\" checked=\"checked\" />answer2", StringUtils.splitToArray(template.getContent(), "\n")[6]);
assertEquals("<div>answer2</div><div>answer1</div>", StringUtils.splitToArray(template.getContent(), "\n")[56]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("question").inList(null, "a1", null, "a3", "a2"), new String[] {"a1", "a2"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:RADIO:question", set_values_it.next());
assertEquals("FORM:DISPLAY:question", set_values_it.next());
assertEquals("<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona1\" value=\"a1\" checked=\"checked\" />answer1<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona3\" value=\"a3\" />a3<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona2\" value=\"a2\" />answer2", StringUtils.splitToArray(template.getContent(), "\n")[6]);
assertEquals("<div>answer1</div><div>answer2</div>", StringUtils.splitToArray(template.getContent(), "\n")[56]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, RadioInListEnum.class, "question", new String[] {"a1", "a2"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:RADIO:question", set_values_it.next());
assertEquals("FORM:DISPLAY:question", set_values_it.next());
assertEquals("<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona1\" value=\"a1\" checked=\"checked\" />answer1<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona3\" value=\"a3\" />a3<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona2\" value=\"a2\" />answer2", StringUtils.splitToArray(template.getContent(), "\n")[6]);
assertEquals("<div>answer1</div><div>answer2</div>", StringUtils.splitToArray(template.getContent(), "\n")[56]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("question").inList(null, "a1", null, "a3", "a2").defaultValue("a3"), new String[] {"a1", "a2"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:RADIO:question", set_values_it.next());
assertEquals("FORM:DISPLAY:question", set_values_it.next());
assertEquals("<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona1\" value=\"a1\" checked=\"checked\" />answer1<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona3\" value=\"a3\" />a3<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona2\" value=\"a2\" />answer2", StringUtils.splitToArray(template.getContent(), "\n")[6]);
assertEquals("<div>answer1</div><div>answer2</div>", StringUtils.splitToArray(template.getContent(), "\n")[56]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, RadioInListEnum.class, new ConstrainedProperty("question").defaultValue("a3"), new String[] {"a1", "a2"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:RADIO:question", set_values_it.next());
assertEquals("FORM:DISPLAY:question", set_values_it.next());
assertEquals("<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona1\" value=\"a1\" checked=\"checked\" />answer1<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona3\" value=\"a3\" />a3<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona2\" value=\"a2\" />answer2", StringUtils.splitToArray(template.getContent(), "\n")[6]);
assertEquals("<div>answer1</div><div>answer2</div>", StringUtils.splitToArray(template.getContent(), "\n")[56]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("question").inList(null, "a1", null, "a3", "a2"), new String[] {"a4"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:RADIO:question", set_values_it.next());
assertEquals("FORM:DISPLAY:question", set_values_it.next());
assertEquals("<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona1\" value=\"a1\" />answer1<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona3\" value=\"a3\" />a3<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona2\" value=\"a2\" />answer2", StringUtils.splitToArray(template.getContent(), "\n")[6]);
assertEquals("<div>a4</div>", StringUtils.splitToArray(template.getContent(), "\n")[56]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, RadioInListEnum.class, "question", new String[] {"a4"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:RADIO:question", set_values_it.next());
assertEquals("FORM:DISPLAY:question", set_values_it.next());
assertEquals("<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona1\" value=\"a1\" />answer1<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona3\" value=\"a3\" />a3<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona2\" value=\"a2\" />answer2", StringUtils.splitToArray(template.getContent(), "\n")[6]);
assertEquals("<div>a4</div>", StringUtils.splitToArray(template.getContent(), "\n")[56]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
template.setValue("FORM:RADIO:question", "already set");
template.setValue("FORM:DISPLAY:question", "already set too");
set_values = builder.generateField(template, new ConstrainedProperty("question"), null, null);
assertEquals(0, set_values.size());
assertEquals("already set", StringUtils.splitToArray(template.getContent(), "\n")[6]);
assertEquals("already set too", StringUtils.splitToArray(template.getContent(), "\n")[56]);
template.removeValue("FORM:RADIO:question");
template.removeValue("FORM:DISPLAY:question");
}
public void testGenerateFieldRadioWithoutDefault()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
set_values = builder.generateField(template, "anotherquestion", null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:anotherquestion", set_values.iterator().next());
assertEquals("<input type=\"radio\" name=\"anotherquestion\" />", StringUtils.splitToArray(template.getContent(), "\n")[10]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("anotherquestion"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:anotherquestion", set_values.iterator().next());
assertEquals("<input type=\"radio\" name=\"anotherquestion\" />", StringUtils.splitToArray(template.getContent(), "\n")[10]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("anotherquestion").inList(null, "a1", null, "a3", "a2"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:anotherquestion", set_values.iterator().next());
assertEquals("<input type=\"radio\" name=\"anotherquestion\" value=\"a1\" />another answer 1<input type=\"radio\" name=\"anotherquestion\" value=\"a3\" />a3<input type=\"radio\" name=\"anotherquestion\" value=\"a2\" />another answer 2", StringUtils.splitToArray(template.getContent(), "\n")[10]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, RadioInListEnum.class, "anotherquestion", null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:anotherquestion", set_values.iterator().next());
assertEquals("<input type=\"radio\" name=\"anotherquestion\" value=\"a1\" />another answer 1<input type=\"radio\" name=\"anotherquestion\" value=\"a3\" />a3<input type=\"radio\" name=\"anotherquestion\" value=\"a2\" />another answer 2", StringUtils.splitToArray(template.getContent(), "\n")[10]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("anotherquestion").inList(null, "a1", null, "a3", "a2").defaultValue("a3"), new String[] {"a1", "a2"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:anotherquestion", set_values.iterator().next());
assertEquals("<input type=\"radio\" name=\"anotherquestion\" value=\"a1\" checked=\"checked\" />another answer 1<input type=\"radio\" name=\"anotherquestion\" value=\"a3\" />a3<input type=\"radio\" name=\"anotherquestion\" value=\"a2\" />another answer 2", StringUtils.splitToArray(template.getContent(), "\n")[10]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, RadioInListEnum.class, new ConstrainedProperty("anotherquestion").defaultValue("a3"), new String[] {"a1", "a2"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:anotherquestion", set_values.iterator().next());
assertEquals("<input type=\"radio\" name=\"anotherquestion\" value=\"a1\" checked=\"checked\" />another answer 1<input type=\"radio\" name=\"anotherquestion\" value=\"a3\" />a3<input type=\"radio\" name=\"anotherquestion\" value=\"a2\" />another answer 2", StringUtils.splitToArray(template.getContent(), "\n")[10]);
template.removeValue(set_values.iterator().next());
set_values.clear();
}
public void testGenerateFieldRadioPrefix()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
set_values = builder.generateField(template, "question", null, "another");
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:anotherquestion", set_values.iterator().next());
assertEquals("<input type=\"radio\" name=\"anotherquestion\" />", StringUtils.splitToArray(template.getContent(), "\n")[10]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("question"), null, "another");
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:anotherquestion", set_values.iterator().next());
assertEquals("<input type=\"radio\" name=\"anotherquestion\" />", StringUtils.splitToArray(template.getContent(), "\n")[10]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("question").inList(null, "a1", null, "a3", "a2"), null, "another");
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:anotherquestion", set_values.iterator().next());
assertEquals("<input type=\"radio\" name=\"anotherquestion\" value=\"a1\" />another answer 1<input type=\"radio\" name=\"anotherquestion\" value=\"a3\" />a3<input type=\"radio\" name=\"anotherquestion\" value=\"a2\" />another answer 2", StringUtils.splitToArray(template.getContent(), "\n")[10]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, RadioInListEnum.class, "question", null, "another");
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:anotherquestion", set_values.iterator().next());
assertEquals("<input type=\"radio\" name=\"anotherquestion\" value=\"a1\" />another answer 1<input type=\"radio\" name=\"anotherquestion\" value=\"a3\" />a3<input type=\"radio\" name=\"anotherquestion\" value=\"a2\" />another answer 2", StringUtils.splitToArray(template.getContent(), "\n")[10]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("question").inList(null, "a1", null, "a3", "a2").defaultValue("a3"), new String[] {"a1", "a2"}, "another");
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:anotherquestion", set_values.iterator().next());
assertEquals("<input type=\"radio\" name=\"anotherquestion\" value=\"a1\" checked=\"checked\" />another answer 1<input type=\"radio\" name=\"anotherquestion\" value=\"a3\" />a3<input type=\"radio\" name=\"anotherquestion\" value=\"a2\" />another answer 2", StringUtils.splitToArray(template.getContent(), "\n")[10]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, RadioInListEnum.class, new ConstrainedProperty("question").defaultValue("a3"), new String[] {"a1", "a2"}, "another");
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:anotherquestion", set_values.iterator().next());
assertEquals("<input type=\"radio\" name=\"anotherquestion\" value=\"a1\" checked=\"checked\" />another answer 1<input type=\"radio\" name=\"anotherquestion\" value=\"a3\" />a3<input type=\"radio\" name=\"anotherquestion\" value=\"a2\" />another answer 2", StringUtils.splitToArray(template.getContent(), "\n")[10]);
template.removeValue(set_values.iterator().next());
set_values.clear();
template.setValue("FORM:RADIO:anotherquestion", "already set");
set_values = builder.generateField(template, new ConstrainedProperty("question"), null, "another");
assertEquals(0, set_values.size());
assertEquals("already set", StringUtils.splitToArray(template.getContent(), "\n")[10]);
template.removeValue("FORM:RADIO:anotherquestion");
}
public void testGenerateFieldRadioDynamic()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Iterator<String> set_values_it;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
template.addResourceBundle(new ListResourceBundle() {
public Object[][] getContents()
{
return new Object[][] {
{"question:a1", "dynamic first"},
{"question:a2", "dynamic second"},
{"question:a3", "dynamic third"}
};
}});
set_values = builder.generateField(template, new ConstrainedProperty("question").inList("a1", "a3", "a2").defaultValue("a2"), null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:RADIO:question", set_values_it.next());
assertEquals("FORM:DISPLAY:question", set_values_it.next());
assertEquals("<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona1\" value=\"a1\" />dynamic first<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona3\" value=\"a3\" />dynamic third<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona2\" value=\"a2\" checked=\"checked\" />dynamic second", StringUtils.splitToArray(template.getContent(), "\n")[6]);
assertEquals("<div>dynamic second</div>", StringUtils.splitToArray(template.getContent(), "\n")[56]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, RadioInListEnum.class, new ConstrainedProperty("question").defaultValue("a2"), null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:RADIO:question", set_values_it.next());
assertEquals("FORM:DISPLAY:question", set_values_it.next());
assertEquals("<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona1\" value=\"a1\" />dynamic first<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona3\" value=\"a3\" />dynamic third<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona2\" value=\"a2\" checked=\"checked\" />dynamic second", StringUtils.splitToArray(template.getContent(), "\n")[6]);
assertEquals("<div>dynamic second</div>", StringUtils.splitToArray(template.getContent(), "\n")[56]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("question").inList("a1", "a3", "a2").defaultValue("a2"), new String[] {"a1", "a2"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:RADIO:question", set_values_it.next());
assertEquals("FORM:DISPLAY:question", set_values_it.next());
assertEquals("<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona1\" value=\"a1\" checked=\"checked\" />dynamic first<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona3\" value=\"a3\" />dynamic third<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona2\" value=\"a2\" />dynamic second", StringUtils.splitToArray(template.getContent(), "\n")[6]);
assertEquals("<div>dynamic first</div><div>dynamic second</div>", StringUtils.splitToArray(template.getContent(), "\n")[56]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, RadioInListEnum.class, new ConstrainedProperty("question").defaultValue("a2"), new String[] {"a1", "a2"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:RADIO:question", set_values_it.next());
assertEquals("FORM:DISPLAY:question", set_values_it.next());
assertEquals("<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona1\" value=\"a1\" checked=\"checked\" />dynamic first<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona3\" value=\"a3\" />dynamic third<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona2\" value=\"a2\" />dynamic second", StringUtils.splitToArray(template.getContent(), "\n")[6]);
assertEquals("<div>dynamic first</div><div>dynamic second</div>", StringUtils.splitToArray(template.getContent(), "\n")[56]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
template.clear();
template.addResourceBundle(new ListResourceBundle() {
public Object[][] getContents()
{
return new Object[][] {
{"question:a1", "dynamic first"},
};
}});
set_values = builder.generateField(template, new ConstrainedProperty("question").inList("a1", "a3", "a2").defaultValue("a2"), new String[] {"a1", "a2"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:RADIO:question", set_values_it.next());
assertEquals("FORM:DISPLAY:question", set_values_it.next());
assertEquals("<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona1\" value=\"a1\" checked=\"checked\" />dynamic first<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona3\" value=\"a3\" />a3<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona2\" value=\"a2\" />answer2", StringUtils.splitToArray(template.getContent(), "\n")[6]);
assertEquals("<div>dynamic first</div><div>answer2</div>", StringUtils.splitToArray(template.getContent(), "\n")[56]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, RadioInListEnum.class, new ConstrainedProperty("question").defaultValue("a2"), new String[] {"a1", "a2"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:RADIO:question", set_values_it.next());
assertEquals("FORM:DISPLAY:question", set_values_it.next());
assertEquals("<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona1\" value=\"a1\" checked=\"checked\" />dynamic first<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona3\" value=\"a3\" />a3<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona2\" value=\"a2\" />answer2", StringUtils.splitToArray(template.getContent(), "\n")[6]);
assertEquals("<div>dynamic first</div><div>answer2</div>", StringUtils.splitToArray(template.getContent(), "\n")[56]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("question").inList("a1", "a3", "a2").defaultValue("a2"), new String[] {"a2"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:RADIO:question", set_values_it.next());
assertEquals("FORM:DISPLAY:question", set_values_it.next());
assertEquals("<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona1\" value=\"a1\" />dynamic first<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona3\" value=\"a3\" />a3<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona2\" value=\"a2\" checked=\"checked\" />answer2", StringUtils.splitToArray(template.getContent(), "\n")[6]);
assertEquals("<div>answer2</div>", StringUtils.splitToArray(template.getContent(), "\n")[56]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, RadioInListEnum.class, new ConstrainedProperty("question").defaultValue("a2"), new String[] {"a2"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:RADIO:question", set_values_it.next());
assertEquals("FORM:DISPLAY:question", set_values_it.next());
assertEquals("<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona1\" value=\"a1\" />dynamic first<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona3\" value=\"a3\" />a3<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona2\" value=\"a2\" checked=\"checked\" />answer2", StringUtils.splitToArray(template.getContent(), "\n")[6]);
assertEquals("<div>answer2</div>", StringUtils.splitToArray(template.getContent(), "\n")[56]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
}
public void testGenerateFieldRadioTemplateNameWithDefault()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Iterator<String> set_values_it;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields_templatename");
set_values = builder.replaceField(template, "templatenamequestion", "question", null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:RADIO:templatenamequestion", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenamequestion", set_values_it.next());
assertEquals("<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"question[!V 'FORM:VALUE'/]\" />", StringUtils.splitToArray(template.getContent(), "\n")[6]);
assertEquals("<div></div>", StringUtils.splitToArray(template.getContent(), "\n")[56]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamequestion", new ConstrainedProperty("question"), null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:RADIO:templatenamequestion", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenamequestion", set_values_it.next());
assertEquals("<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"question[!V 'FORM:VALUE'/]\" />", StringUtils.splitToArray(template.getContent(), "\n")[6]);
assertEquals("<div></div>", StringUtils.splitToArray(template.getContent(), "\n")[56]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamequestion", new ConstrainedProperty("question").inList(null, "a1", null, "a3", "a2"), null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:RADIO:templatenamequestion", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenamequestion", set_values_it.next());
assertEquals("<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona1\" value=\"a1\" />answer1<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona3\" value=\"a3\" />a3<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona2\" value=\"a2\" />answer2", StringUtils.splitToArray(template.getContent(), "\n")[6]);
assertEquals("<div></div>", StringUtils.splitToArray(template.getContent(), "\n")[56]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamequestion", RadioInListEnum.class, "question", null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:RADIO:templatenamequestion", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenamequestion", set_values_it.next());
assertEquals("<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona1\" value=\"a1\" />answer1<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona3\" value=\"a3\" />a3<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona2\" value=\"a2\" />answer2", StringUtils.splitToArray(template.getContent(), "\n")[6]);
assertEquals("<div></div>", StringUtils.splitToArray(template.getContent(), "\n")[56]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamequestion", new ConstrainedProperty("question").inList(null, "a1", null, "a3", "a2").defaultValue("a2"), new String[] {null, "a1"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:RADIO:templatenamequestion", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenamequestion", set_values_it.next());
assertEquals("<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona1\" value=\"a1\" />answer1<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona3\" value=\"a3\" />a3<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona2\" value=\"a2\" checked=\"checked\" />answer2", StringUtils.splitToArray(template.getContent(), "\n")[6]);
assertEquals("<div>answer2</div><div>answer1</div>", StringUtils.splitToArray(template.getContent(), "\n")[56]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamequestion", RadioInListEnum.class, new ConstrainedProperty("question").defaultValue("a2"), new String[] {null, "a1"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:RADIO:templatenamequestion", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenamequestion", set_values_it.next());
assertEquals("<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona1\" value=\"a1\" />answer1<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona3\" value=\"a3\" />a3<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona2\" value=\"a2\" checked=\"checked\" />answer2", StringUtils.splitToArray(template.getContent(), "\n")[6]);
assertEquals("<div>answer2</div><div>answer1</div>", StringUtils.splitToArray(template.getContent(), "\n")[56]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamequestion", new ConstrainedProperty("question").inList(null, "a1", null, "a3", "a2"), new String[] {"a1", "a2"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:RADIO:templatenamequestion", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenamequestion", set_values_it.next());
assertEquals("<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona1\" value=\"a1\" checked=\"checked\" />answer1<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona3\" value=\"a3\" />a3<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona2\" value=\"a2\" />answer2", StringUtils.splitToArray(template.getContent(), "\n")[6]);
assertEquals("<div>answer1</div><div>answer2</div>", StringUtils.splitToArray(template.getContent(), "\n")[56]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamequestion", RadioInListEnum.class, "question", new String[] {"a1", "a2"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:RADIO:templatenamequestion", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenamequestion", set_values_it.next());
assertEquals("<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona1\" value=\"a1\" checked=\"checked\" />answer1<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona3\" value=\"a3\" />a3<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona2\" value=\"a2\" />answer2", StringUtils.splitToArray(template.getContent(), "\n")[6]);
assertEquals("<div>answer1</div><div>answer2</div>", StringUtils.splitToArray(template.getContent(), "\n")[56]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamequestion", new ConstrainedProperty("question").inList(null, "a1", null, "a3", "a2").defaultValue("a3"), new String[] {"a1", "a2"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:RADIO:templatenamequestion", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenamequestion", set_values_it.next());
assertEquals("<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona1\" value=\"a1\" checked=\"checked\" />answer1<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona3\" value=\"a3\" />a3<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona2\" value=\"a2\" />answer2", StringUtils.splitToArray(template.getContent(), "\n")[6]);
assertEquals("<div>answer1</div><div>answer2</div>", StringUtils.splitToArray(template.getContent(), "\n")[56]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamequestion", RadioInListEnum.class, new ConstrainedProperty("question").defaultValue("a3"), new String[] {"a1", "a2"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:RADIO:templatenamequestion", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenamequestion", set_values_it.next());
assertEquals("<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona1\" value=\"a1\" checked=\"checked\" />answer1<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona3\" value=\"a3\" />a3<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona2\" value=\"a2\" />answer2", StringUtils.splitToArray(template.getContent(), "\n")[6]);
assertEquals("<div>answer1</div><div>answer2</div>", StringUtils.splitToArray(template.getContent(), "\n")[56]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamequestion", new ConstrainedProperty("question").inList(null, "a1", null, "a3", "a2"), new String[] {"a4"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:RADIO:templatenamequestion", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenamequestion", set_values_it.next());
assertEquals("<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona1\" value=\"a1\" />answer1<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona3\" value=\"a3\" />a3<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona2\" value=\"a2\" />answer2", StringUtils.splitToArray(template.getContent(), "\n")[6]);
assertEquals("<div>a4</div>", StringUtils.splitToArray(template.getContent(), "\n")[56]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamequestion", RadioInListEnum.class, "question", new String[] {"a4"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:RADIO:templatenamequestion", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenamequestion", set_values_it.next());
assertEquals("<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona1\" value=\"a1\" />answer1<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona3\" value=\"a3\" />a3<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"questiona2\" value=\"a2\" />answer2", StringUtils.splitToArray(template.getContent(), "\n")[6]);
assertEquals("<div>a4</div>", StringUtils.splitToArray(template.getContent(), "\n")[56]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
template.setValue("FORM:RADIO:templatenamequestion", "already set");
template.setValue("FORM:DISPLAY:templatenamequestion", "already set too");
set_values = builder.replaceField(template, "templatenamequestion", "question", null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:RADIO:templatenamequestion", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenamequestion", set_values_it.next());
assertEquals("<input type=\"radio\" name=\"question\" alt=\"sometext\" id=\"question[!V 'FORM:VALUE'/]\" />", StringUtils.splitToArray(template.getContent(), "\n")[6]);
assertEquals("<div></div>", StringUtils.splitToArray(template.getContent(), "\n")[56]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
}
public void testGenerateFieldRadioCustomWithDefault()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
set_values = builder.generateField(template, "customquestion", null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:customquestion", set_values.iterator().next());
assertEquals("<input type=\"radio\" name=\"customquestion\" alt=\"customtext\" />", StringUtils.splitToArray(template.getContent(), "\n")[14]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("customquestion"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:customquestion", set_values.iterator().next());
assertEquals("<input type=\"radio\" name=\"customquestion\" alt=\"customtext\" />", StringUtils.splitToArray(template.getContent(), "\n")[14]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("customquestion").inList(null, "a1", null, "a3", "a2"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:customquestion", set_values.iterator().next());
assertEquals("custom answer 1 : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a1\" />a3 : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a3\" />custom answer 2 : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a2\" />", StringUtils.splitToArray(template.getContent(), "\n")[14]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("customquestion").inList(null, "a1", null, "a3", "a2"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:customquestion", set_values.iterator().next());
assertEquals("custom answer 1 : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a1\" />a3 : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a3\" />custom answer 2 : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a2\" />", StringUtils.splitToArray(template.getContent(), "\n")[14]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, RadioInListEnum.class, new ConstrainedProperty("customquestion").defaultValue("a2"), new String[] {null, "a1"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:customquestion", set_values.iterator().next());
assertEquals("custom answer 1 : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a1\" />a3 : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a3\" />custom answer 2 : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a2\" checked=\"checked\" />", StringUtils.splitToArray(template.getContent(), "\n")[14]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("customquestion").inList(null, "a1", null, "a3", "a2"), new String[] {"a1", "a2"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:customquestion", set_values.iterator().next());
assertEquals("custom answer 1 : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a1\" checked=\"checked\" />a3 : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a3\" />custom answer 2 : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a2\" />", StringUtils.splitToArray(template.getContent(), "\n")[14]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, RadioInListEnum.class, "customquestion", new String[] {"a1", "a2"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:customquestion", set_values.iterator().next());
assertEquals("custom answer 1 : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a1\" checked=\"checked\" />a3 : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a3\" />custom answer 2 : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a2\" />", StringUtils.splitToArray(template.getContent(), "\n")[14]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("customquestion").inList(null, "a1", null, "a3", "a2").defaultValue("a3"), new String[] {"a1", "a2"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:customquestion", set_values.iterator().next());
assertEquals("custom answer 1 : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a1\" checked=\"checked\" />a3 : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a3\" />custom answer 2 : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a2\" />", StringUtils.splitToArray(template.getContent(), "\n")[14]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, RadioInListEnum.class, new ConstrainedProperty("customquestion").defaultValue("a3"), new String[] {"a1", "a2"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:customquestion", set_values.iterator().next());
assertEquals("custom answer 1 : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a1\" checked=\"checked\" />a3 : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a3\" />custom answer 2 : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a2\" />", StringUtils.splitToArray(template.getContent(), "\n")[14]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("customquestion").inList(null, "a1", null, "a3", "a2"), new String[] {"a4"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:customquestion", set_values.iterator().next());
assertEquals("custom answer 1 : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a1\" />a3 : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a3\" />custom answer 2 : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a2\" />", StringUtils.splitToArray(template.getContent(), "\n")[14]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, RadioInListEnum.class, "customquestion", new String[] {"a4"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:customquestion", set_values.iterator().next());
assertEquals("custom answer 1 : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a1\" />a3 : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a3\" />custom answer 2 : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a2\" />", StringUtils.splitToArray(template.getContent(), "\n")[14]);
template.removeValue(set_values.iterator().next());
set_values.clear();
template.setValue("FORM:RADIO:customquestion", "already set");
set_values = builder.generateField(template, new ConstrainedProperty("customquestion"), null, null);
assertEquals(0, set_values.size());
assertEquals("already set", StringUtils.splitToArray(template.getContent(), "\n")[14]);
template.removeValue("FORM:RADIO:customquestion");
}
public void testGenerateFieldRadioCustomWithoutDefault()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
set_values = builder.generateField(template, "anothercustomquestion", null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:anothercustomquestion", set_values.iterator().next());
assertEquals("<input type=\"radio\" name=\"anothercustomquestion\" />", StringUtils.splitToArray(template.getContent(), "\n")[19]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("anothercustomquestion"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:anothercustomquestion", set_values.iterator().next());
assertEquals("<input type=\"radio\" name=\"anothercustomquestion\" />", StringUtils.splitToArray(template.getContent(), "\n")[19]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("anothercustomquestion").inList(null, "a1", null, "a3", "a2"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:anothercustomquestion", set_values.iterator().next());
assertEquals("anothercustomquestion-a1:anothercustom answer 1 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a1\" />anothercustomquestion-a3:a3 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a3\" />anothercustomquestion-a2:anothercustom answer 2 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a2\" />", StringUtils.splitToArray(template.getContent(), "\n")[19]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, RadioInListEnum.class, "anothercustomquestion", null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:anothercustomquestion", set_values.iterator().next());
assertEquals("anothercustomquestion-a1:anothercustom answer 1 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a1\" />anothercustomquestion-a3:a3 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a3\" />anothercustomquestion-a2:anothercustom answer 2 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a2\" />", StringUtils.splitToArray(template.getContent(), "\n")[19]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("anothercustomquestion").inList(null, "a1", null, "a3", "a2").defaultValue("a2"), new String[] {null, "a1"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:anothercustomquestion", set_values.iterator().next());
assertEquals("anothercustomquestion-a1:anothercustom answer 1 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a1\" />anothercustomquestion-a3:a3 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a3\" />anothercustomquestion-a2:anothercustom answer 2 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a2\" checked=\"checked\" />", StringUtils.splitToArray(template.getContent(), "\n")[19]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, RadioInListEnum.class, new ConstrainedProperty("anothercustomquestion").defaultValue("a2"), new String[] {null, "a1"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:anothercustomquestion", set_values.iterator().next());
assertEquals("anothercustomquestion-a1:anothercustom answer 1 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a1\" />anothercustomquestion-a3:a3 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a3\" />anothercustomquestion-a2:anothercustom answer 2 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a2\" checked=\"checked\" />", StringUtils.splitToArray(template.getContent(), "\n")[19]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("anothercustomquestion").inList(null, "a1", null, "a3", "a2"), new String[] {"a1", "a2"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:anothercustomquestion", set_values.iterator().next());
assertEquals("anothercustomquestion-a1:anothercustom answer 1 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a1\" checked=\"checked\" />anothercustomquestion-a3:a3 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a3\" />anothercustomquestion-a2:anothercustom answer 2 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a2\" />", StringUtils.splitToArray(template.getContent(), "\n")[19]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, RadioInListEnum.class, "anothercustomquestion", new String[] {"a1", "a2"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:anothercustomquestion", set_values.iterator().next());
assertEquals("anothercustomquestion-a1:anothercustom answer 1 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a1\" checked=\"checked\" />anothercustomquestion-a3:a3 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a3\" />anothercustomquestion-a2:anothercustom answer 2 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a2\" />", StringUtils.splitToArray(template.getContent(), "\n")[19]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("anothercustomquestion").inList(null, "a1", null, "a3", "a2").defaultValue("a3"), new String[] {"a1", "a2"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:anothercustomquestion", set_values.iterator().next());
assertEquals("anothercustomquestion-a1:anothercustom answer 1 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a1\" checked=\"checked\" />anothercustomquestion-a3:a3 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a3\" />anothercustomquestion-a2:anothercustom answer 2 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a2\" />", StringUtils.splitToArray(template.getContent(), "\n")[19]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, RadioInListEnum.class, new ConstrainedProperty("anothercustomquestion").defaultValue("a3"), new String[] {"a1", "a2"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:anothercustomquestion", set_values.iterator().next());
assertEquals("anothercustomquestion-a1:anothercustom answer 1 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a1\" checked=\"checked\" />anothercustomquestion-a3:a3 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a3\" />anothercustomquestion-a2:anothercustom answer 2 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a2\" />", StringUtils.splitToArray(template.getContent(), "\n")[19]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("anothercustomquestion").inList(null, "a1", null, "a3", "a2"), new String[] {"a4"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:anothercustomquestion", set_values.iterator().next());
assertEquals("anothercustomquestion-a1:anothercustom answer 1 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a1\" />anothercustomquestion-a3:a3 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a3\" />anothercustomquestion-a2:anothercustom answer 2 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a2\" />", StringUtils.splitToArray(template.getContent(), "\n")[19]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, RadioInListEnum.class, "anothercustomquestion", new String[] {"a4"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:anothercustomquestion", set_values.iterator().next());
assertEquals("anothercustomquestion-a1:anothercustom answer 1 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a1\" />anothercustomquestion-a3:a3 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a3\" />anothercustomquestion-a2:anothercustom answer 2 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a2\" />", StringUtils.splitToArray(template.getContent(), "\n")[19]);
template.removeValue(set_values.iterator().next());
set_values.clear();
template.setValue("FORM:RADIO:anothercustomquestion", "already set");
set_values = builder.generateField(template, new ConstrainedProperty("anothercustomquestion"), null, null);
assertEquals(0, set_values.size());
assertEquals("already set", StringUtils.splitToArray(template.getContent(), "\n")[19]);
template.removeValue("FORM:RADIO:anothercustomquestion");
}
public void testGenerateFieldRadioCustomPrefix()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
set_values = builder.generateField(template, new ConstrainedProperty("customquestion").inList(null, "a1", null, "a3", "a2"), null, "another");
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:anothercustomquestion", set_values.iterator().next());
assertEquals("anothercustomquestion-a1:anothercustom answer 1 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a1\" />anothercustomquestion-a3:a3 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a3\" />anothercustomquestion-a2:anothercustom answer 2 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a2\" />", StringUtils.splitToArray(template.getContent(), "\n")[19]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, RadioInListEnum.class, "customquestion", null, "another");
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:anothercustomquestion", set_values.iterator().next());
assertEquals("anothercustomquestion-a1:anothercustom answer 1 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a1\" />anothercustomquestion-a3:a3 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a3\" />anothercustomquestion-a2:anothercustom answer 2 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a2\" />", StringUtils.splitToArray(template.getContent(), "\n")[19]);
template.removeValue(set_values.iterator().next());
set_values.clear();
template.setValue("FORM:RADIO:anothercustomquestion", "already set");
set_values = builder.generateField(template, new ConstrainedProperty("customquestion"), null, "another");
assertEquals(0, set_values.size());
assertEquals("already set", StringUtils.splitToArray(template.getContent(), "\n")[19]);
template.removeValue("FORM:RADIO:anothercustomquestion");
}
public void testGenerateFieldRadioCustomDynamic()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
template.addResourceBundle(new ListResourceBundle() {
public Object[][] getContents()
{
return new Object[][] {
{"customquestion:a1", "dynamic first"},
{"customquestion:a2", "dynamic second"},
{"customquestion:a3", "dynamic third"}
};
}});
set_values = builder.generateField(template, new ConstrainedProperty("customquestion").inList("a1", "a3", "a2").defaultValue("a2"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:customquestion", set_values.iterator().next());
assertEquals("dynamic first : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a1\" />dynamic third : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a3\" />dynamic second : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a2\" checked=\"checked\" />", StringUtils.splitToArray(template.getContent(), "\n")[14]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, RadioInListEnum.class, new ConstrainedProperty("customquestion").defaultValue("a2"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:customquestion", set_values.iterator().next());
assertEquals("dynamic first : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a1\" />dynamic third : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a3\" />dynamic second : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a2\" checked=\"checked\" />", StringUtils.splitToArray(template.getContent(), "\n")[14]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("customquestion").inList("a1", "a3", "a2").defaultValue("a2"), new String[] {"a1", "a3"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:customquestion", set_values.iterator().next());
assertEquals("dynamic first : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a1\" checked=\"checked\" />dynamic third : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a3\" />dynamic second : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a2\" />", StringUtils.splitToArray(template.getContent(), "\n")[14]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, RadioInListEnum.class, new ConstrainedProperty("customquestion").defaultValue("a2"), new String[] {"a1", "a3"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:customquestion", set_values.iterator().next());
assertEquals("dynamic first : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a1\" checked=\"checked\" />dynamic third : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a3\" />dynamic second : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a2\" />", StringUtils.splitToArray(template.getContent(), "\n")[14]);
template.removeValue(set_values.iterator().next());
set_values.clear();
template.clear();
template.addResourceBundle(new ListResourceBundle() {
public Object[][] getContents()
{
return new Object[][] {
{"customquestion:a2", "dynamic second"},
};
}});
set_values = builder.generateField(template, new ConstrainedProperty("customquestion").inList("a1", "a3", "a2").defaultValue("a2"), new String[] {"a1", "a3"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:customquestion", set_values.iterator().next());
assertEquals("custom answer 1 : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a1\" checked=\"checked\" />a3 : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a3\" />dynamic second : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a2\" />", StringUtils.splitToArray(template.getContent(), "\n")[14]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, RadioInListEnum.class, new ConstrainedProperty("customquestion").defaultValue("a2"), new String[] {"a1", "a3"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:customquestion", set_values.iterator().next());
assertEquals("custom answer 1 : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a1\" checked=\"checked\" />a3 : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a3\" />dynamic second : <input type=\"radio\" name=\"customquestion\" alt=\"customtext\" value=\"a2\" />", StringUtils.splitToArray(template.getContent(), "\n")[14]);
template.removeValue(set_values.iterator().next());
set_values.clear();
}
public void testGenerateFieldRadioCustomTemplateNameWithoutDefault()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields_templatename");
set_values = builder.replaceField(template, "templatenameanothercustomquestion", "anothercustomquestion", null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:templatenameanothercustomquestion", set_values.iterator().next());
assertEquals("<input type=\"radio\" name=\"anothercustomquestion\" />", StringUtils.splitToArray(template.getContent(), "\n")[19]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenameanothercustomquestion", new ConstrainedProperty("anothercustomquestion"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:templatenameanothercustomquestion", set_values.iterator().next());
assertEquals("<input type=\"radio\" name=\"anothercustomquestion\" />", StringUtils.splitToArray(template.getContent(), "\n")[19]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenameanothercustomquestion", new ConstrainedProperty("anothercustomquestion").inList(null, "a1", null, "a3", "a2"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:templatenameanothercustomquestion", set_values.iterator().next());
assertEquals("anothercustomquestion-a1:anothercustom answer 1 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a1\" />anothercustomquestion-a3:a3 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a3\" />anothercustomquestion-a2:anothercustom answer 2 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a2\" />", StringUtils.splitToArray(template.getContent(), "\n")[19]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenameanothercustomquestion", RadioInListEnum.class, "anothercustomquestion", null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:templatenameanothercustomquestion", set_values.iterator().next());
assertEquals("anothercustomquestion-a1:anothercustom answer 1 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a1\" />anothercustomquestion-a3:a3 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a3\" />anothercustomquestion-a2:anothercustom answer 2 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a2\" />", StringUtils.splitToArray(template.getContent(), "\n")[19]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenameanothercustomquestion", new ConstrainedProperty("anothercustomquestion").inList(null, "a1", null, "a3", "a2").defaultValue("a2"), new String[] {null, "a1"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:templatenameanothercustomquestion", set_values.iterator().next());
assertEquals("anothercustomquestion-a1:anothercustom answer 1 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a1\" />anothercustomquestion-a3:a3 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a3\" />anothercustomquestion-a2:anothercustom answer 2 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a2\" checked=\"checked\" />", StringUtils.splitToArray(template.getContent(), "\n")[19]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenameanothercustomquestion", RadioInListEnum.class, new ConstrainedProperty("anothercustomquestion").defaultValue("a2"), new String[] {null, "a1"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:templatenameanothercustomquestion", set_values.iterator().next());
assertEquals("anothercustomquestion-a1:anothercustom answer 1 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a1\" />anothercustomquestion-a3:a3 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a3\" />anothercustomquestion-a2:anothercustom answer 2 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a2\" checked=\"checked\" />", StringUtils.splitToArray(template.getContent(), "\n")[19]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenameanothercustomquestion", new ConstrainedProperty("anothercustomquestion").inList(null, "a1", null, "a3", "a2"), new String[] {"a1", "a2"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:templatenameanothercustomquestion", set_values.iterator().next());
assertEquals("anothercustomquestion-a1:anothercustom answer 1 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a1\" checked=\"checked\" />anothercustomquestion-a3:a3 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a3\" />anothercustomquestion-a2:anothercustom answer 2 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a2\" />", StringUtils.splitToArray(template.getContent(), "\n")[19]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenameanothercustomquestion", RadioInListEnum.class, "anothercustomquestion", new String[] {"a1", "a2"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:templatenameanothercustomquestion", set_values.iterator().next());
assertEquals("anothercustomquestion-a1:anothercustom answer 1 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a1\" checked=\"checked\" />anothercustomquestion-a3:a3 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a3\" />anothercustomquestion-a2:anothercustom answer 2 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a2\" />", StringUtils.splitToArray(template.getContent(), "\n")[19]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenameanothercustomquestion", new ConstrainedProperty("anothercustomquestion").inList(null, "a1", null, "a3", "a2").defaultValue("a3"), new String[] {"a1", "a2"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:templatenameanothercustomquestion", set_values.iterator().next());
assertEquals("anothercustomquestion-a1:anothercustom answer 1 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a1\" checked=\"checked\" />anothercustomquestion-a3:a3 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a3\" />anothercustomquestion-a2:anothercustom answer 2 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a2\" />", StringUtils.splitToArray(template.getContent(), "\n")[19]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenameanothercustomquestion", RadioInListEnum.class, new ConstrainedProperty("anothercustomquestion").defaultValue("a3"), new String[] {"a1", "a2"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:templatenameanothercustomquestion", set_values.iterator().next());
assertEquals("anothercustomquestion-a1:anothercustom answer 1 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a1\" checked=\"checked\" />anothercustomquestion-a3:a3 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a3\" />anothercustomquestion-a2:anothercustom answer 2 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a2\" />", StringUtils.splitToArray(template.getContent(), "\n")[19]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenameanothercustomquestion", new ConstrainedProperty("anothercustomquestion").inList(null, "a1", null, "a3", "a2"), new String[] {"a4"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:templatenameanothercustomquestion", set_values.iterator().next());
assertEquals("anothercustomquestion-a1:anothercustom answer 1 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a1\" />anothercustomquestion-a3:a3 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a3\" />anothercustomquestion-a2:anothercustom answer 2 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a2\" />", StringUtils.splitToArray(template.getContent(), "\n")[19]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenameanothercustomquestion", RadioInListEnum.class, "anothercustomquestion", new String[] {"a4"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:templatenameanothercustomquestion", set_values.iterator().next());
assertEquals("anothercustomquestion-a1:anothercustom answer 1 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a1\" />anothercustomquestion-a3:a3 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a3\" />anothercustomquestion-a2:anothercustom answer 2 : <input type=\"radio\" name=\"anothercustomquestion\" value=\"a2\" />", StringUtils.splitToArray(template.getContent(), "\n")[19]);
template.removeValue(set_values.iterator().next());
set_values.clear();
template.setValue("FORM:RADIO:templatenameanothercustomquestion", "already set");
set_values = builder.replaceField(template, "templatenameanothercustomquestion", new ConstrainedProperty("anothercustomquestion"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:templatenameanothercustomquestion", set_values.iterator().next());
assertEquals("<input type=\"radio\" name=\"anothercustomquestion\" />", StringUtils.splitToArray(template.getContent(), "\n")[19]);
template.removeValue(set_values.iterator().next());
set_values.clear();
}
public void testGenerateFieldRadioEmptyCustomWithDefault()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields_emptycustom");
set_values = builder.generateField(template, "emptycustomquestion", null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:emptycustomquestion", set_values.iterator().next());
assertEquals("<input type=\"radio\" name=\"emptycustomquestion\" alt=\"emptycustomtext\" />", StringUtils.splitToArray(template.getContent(), "\n")[0]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("emptycustomquestion"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:emptycustomquestion", set_values.iterator().next());
assertEquals("<input type=\"radio\" name=\"emptycustomquestion\" alt=\"emptycustomtext\" />", StringUtils.splitToArray(template.getContent(), "\n")[0]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("emptycustomquestion").inList(null, "a1", null, "a3", "a2"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:emptycustomquestion", set_values.iterator().next());
assertEquals(" - - - ", StringUtils.splitToArray(template.getContent(), "\n")[0]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, RadioInListEnum.class, "emptycustomquestion", null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:emptycustomquestion", set_values.iterator().next());
assertEquals(" - - - ", StringUtils.splitToArray(template.getContent(), "\n")[0]);
template.removeValue(set_values.iterator().next());
set_values.clear();
template.setValue("FORM:RADIO:emptycustomquestion", "already set");
set_values = builder.generateField(template, new ConstrainedProperty("emptycustomquestion"), null, null);
assertEquals(0, set_values.size());
assertEquals("already set", StringUtils.splitToArray(template.getContent(), "\n")[0]);
template.removeValue("FORM:RADIO:emptycustomquestion");
}
public void testGenerateFieldRadioEmptyCustomWithoutDefault()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields_emptycustom");
set_values = builder.generateField(template, "anotheremptycustomquestion", null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:anotheremptycustomquestion", set_values.iterator().next());
assertEquals("<input type=\"radio\" name=\"anotheremptycustomquestion\" />", StringUtils.splitToArray(template.getContent(), "\n")[2]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("anotheremptycustomquestion"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:anotheremptycustomquestion", set_values.iterator().next());
assertEquals("<input type=\"radio\" name=\"anotheremptycustomquestion\" />", StringUtils.splitToArray(template.getContent(), "\n")[2]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("anotheremptycustomquestion").inList(null, "a1", null, "a3", "a2"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:anotheremptycustomquestion", set_values.iterator().next());
assertEquals(" - - - ", StringUtils.splitToArray(template.getContent(), "\n")[2]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, RadioInListEnum.class, "anotheremptycustomquestion", null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:anotheremptycustomquestion", set_values.iterator().next());
assertEquals(" - - - ", StringUtils.splitToArray(template.getContent(), "\n")[2]);
template.removeValue(set_values.iterator().next());
set_values.clear();
template.setValue("FORM:RADIO:anotheremptycustomquestion", "already set");
set_values = builder.generateField(template, new ConstrainedProperty("anotheremptycustomquestion"), null, null);
assertEquals(0, set_values.size());
assertEquals("already set", StringUtils.splitToArray(template.getContent(), "\n")[2]);
template.removeValue("FORM:RADIO:anotheremptycustomquestion");
}
public void testGenerateFieldRadioEmptyCustomPrefix()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields_emptycustom");
set_values = builder.generateField(template, "emptycustomquestion", null, "another");
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:anotheremptycustomquestion", set_values.iterator().next());
assertEquals("<input type=\"radio\" name=\"anotheremptycustomquestion\" />", StringUtils.splitToArray(template.getContent(), "\n")[2]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("emptycustomquestion").inList(null, "a1", null, "a3", "a2"), null, "another");
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:anotheremptycustomquestion", set_values.iterator().next());
assertEquals(" - - - ", StringUtils.splitToArray(template.getContent(), "\n")[2]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, RadioInListEnum.class, "emptycustomquestion", null, "another");
assertEquals(1, set_values.size());
assertEquals("FORM:RADIO:anotheremptycustomquestion", set_values.iterator().next());
assertEquals(" - - - ", StringUtils.splitToArray(template.getContent(), "\n")[2]);
template.removeValue(set_values.iterator().next());
set_values.clear();
template.setValue("FORM:RADIO:anotheremptycustomquestion", "already set");
set_values = builder.generateField(template, new ConstrainedProperty("emptycustomquestion"), null, "another");
assertEquals(0, set_values.size());
assertEquals("already set", StringUtils.splitToArray(template.getContent(), "\n")[2]);
template.removeValue("FORM:RADIO:anotheremptycustomquestion");
}
public void testRemoveFieldRadio()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
String raw_content = template.getContent();
builder.generateField(template, new ConstrainedProperty("question").inList(null, "a1", null, "a3", "a2"), new String[] {"a4"}, null);
assertFalse(raw_content.equals(template.getContent()));
builder.removeField(template, "question", null);
assertEquals(raw_content, template.getContent());
builder.generateField(template, RadioInListEnum.class, "question", new String[] {"a4"}, null);
assertFalse(raw_content.equals(template.getContent()));
builder.removeField(template, "question", null);
assertEquals(raw_content, template.getContent());
}
public void testRemoveFieldRadioTemplateName()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields_templatename");
String raw_content = template.getContent();
builder.replaceField(template, "templatenamequestion", new ConstrainedProperty("question").inList(null, "a1", null, "a3", "a2"), new String[] {"a4"}, null);
assertFalse(raw_content.equals(template.getContent()));
builder.removeField(template, "templatenamequestion");
assertEquals(raw_content, template.getContent());
builder.replaceField(template, "templatenamequestion", RadioInListEnum.class, "question", new String[] {"a4"}, null);
assertFalse(raw_content.equals(template.getContent()));
builder.removeField(template, "templatenamequestion");
assertEquals(raw_content, template.getContent());
}
public void testRemoveFieldRadioPrefix()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
String raw_content = template.getContent();
builder.generateField(template, new ConstrainedProperty("question").inList(null, "a1", null, "a3", "a2"), new String[] {"a4"}, "another");
assertFalse(raw_content.equals(template.getContent()));
builder.removeField(template, "question", "another");
assertEquals(raw_content, template.getContent());
builder.generateField(template, RadioInListEnum.class, "question", new String[] {"a4"}, "another");
assertFalse(raw_content.equals(template.getContent()));
builder.removeField(template, "question", "another");
assertEquals(raw_content, template.getContent());
}
public void testGenerateFieldCheckboxWithDefault()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
set_values = builder.generateField(template, "options", null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:options", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" />", StringUtils.splitToArray(template.getContent(), "\n")[24]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("options"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:options", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" />", StringUtils.splitToArray(template.getContent(), "\n")[24]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("options").inList(null, "1", null, "3", "2"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:options", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"1\" />option1<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"3\" />3<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"2\" />option2", StringUtils.splitToArray(template.getContent(), "\n")[24]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, RadioInListEnum.class, new ConstrainedProperty("options").inList(null, "1", null, "3", "2"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:options", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"1\" />option1<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"3\" />3<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"2\" />option2", StringUtils.splitToArray(template.getContent(), "\n")[24]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, CheckboxInListEnum.class, "options", null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:options", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"1\" />option1<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"3\" />3<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"2\" />option2", StringUtils.splitToArray(template.getContent(), "\n")[24]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("options").inList(null, "1", null, "3", "2").defaultValue("2"), new String[] {null, "1"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:options", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"1\" checked=\"checked\" />option1<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"3\" />3<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"2\" />option2", StringUtils.splitToArray(template.getContent(), "\n")[24]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, CheckboxInListEnum.class, new ConstrainedProperty("options").defaultValue("2"), new String[] {null, "1"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:options", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"1\" checked=\"checked\" />option1<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"3\" />3<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"2\" />option2", StringUtils.splitToArray(template.getContent(), "\n")[24]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("options").inList(null, "1", null, "3", "2"), new String[] {"1", "2"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:options", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"1\" checked=\"checked\" />option1<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"3\" />3<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"2\" checked=\"checked\" />option2", StringUtils.splitToArray(template.getContent(), "\n")[24]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, CheckboxInListEnum.class, "options", new String[] {"1", "2"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:options", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"1\" checked=\"checked\" />option1<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"3\" />3<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"2\" checked=\"checked\" />option2", StringUtils.splitToArray(template.getContent(), "\n")[24]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("options").inList(null, "1", null, "3", "2").defaultValue("3"), new String[] {"1", "2"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:options", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"1\" checked=\"checked\" />option1<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"3\" />3<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"2\" checked=\"checked\" />option2", StringUtils.splitToArray(template.getContent(), "\n")[24]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, CheckboxInListEnum.class, new ConstrainedProperty("options").defaultValue("3"), new String[] {"1", "2"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:options", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"1\" checked=\"checked\" />option1<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"3\" />3<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"2\" checked=\"checked\" />option2", StringUtils.splitToArray(template.getContent(), "\n")[24]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("options").inList(null, "1", null, "3", "2"), new String[] {"a4"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:options", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"1\" />option1<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"3\" />3<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"2\" />option2", StringUtils.splitToArray(template.getContent(), "\n")[24]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, CheckboxInListEnum.class, "options", new String[] {"a4"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:options", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"1\" />option1<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"3\" />3<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"2\" />option2", StringUtils.splitToArray(template.getContent(), "\n")[24]);
template.removeValue(set_values.iterator().next());
set_values.clear();
template.setValue("FORM:CHECKBOX:options", "already set");
set_values = builder.generateField(template, new ConstrainedProperty("options"), null, null);
assertEquals(0, set_values.size());
assertEquals("already set", StringUtils.splitToArray(template.getContent(), "\n")[24]);
template.removeValue("FORM:CHECKBOX:options");
}
public void testGenerateFieldCheckboxWithoutDefault()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Iterator<String> set_values_it;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
set_values = builder.generateField(template, "otheroptions", null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:CHECKBOX:otheroptions", set_values_it.next());
assertEquals("FORM:DISPLAY:otheroptions", set_values_it.next());
assertEquals("<input type=\"checkbox\" name=\"otheroptions\" />", StringUtils.splitToArray(template.getContent(), "\n")[28]);
assertEquals("<div id=\"otheroptions[!V 'FORM:VALUE'/]\"></div>", StringUtils.splitToArray(template.getContent(), "\n")[57]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("otheroptions"), null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:CHECKBOX:otheroptions", set_values_it.next());
assertEquals("FORM:DISPLAY:otheroptions", set_values_it.next());
assertEquals("<input type=\"checkbox\" name=\"otheroptions\" />", StringUtils.splitToArray(template.getContent(), "\n")[28]);
assertEquals("<div id=\"otheroptions[!V 'FORM:VALUE'/]\"></div>", StringUtils.splitToArray(template.getContent(), "\n")[57]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("otheroptions").inList(null, "1", null, "3", "2"), null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:CHECKBOX:otheroptions", set_values_it.next());
assertEquals("FORM:DISPLAY:otheroptions", set_values_it.next());
assertEquals("<input type=\"checkbox\" name=\"otheroptions\" value=\"1\" />other option 1<input type=\"checkbox\" name=\"otheroptions\" value=\"3\" />3<input type=\"checkbox\" name=\"otheroptions\" value=\"2\" />other option 2", StringUtils.splitToArray(template.getContent(), "\n")[28]);
assertEquals("<div id=\"otheroptions[!V 'FORM:VALUE'/]\"></div>", StringUtils.splitToArray(template.getContent(), "\n")[57]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, CheckboxInListEnum.class, "otheroptions", null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:CHECKBOX:otheroptions", set_values_it.next());
assertEquals("FORM:DISPLAY:otheroptions", set_values_it.next());
assertEquals("<input type=\"checkbox\" name=\"otheroptions\" value=\"1\" />other option 1<input type=\"checkbox\" name=\"otheroptions\" value=\"3\" />3<input type=\"checkbox\" name=\"otheroptions\" value=\"2\" />other option 2", StringUtils.splitToArray(template.getContent(), "\n")[28]);
assertEquals("<div id=\"otheroptions[!V 'FORM:VALUE'/]\"></div>", StringUtils.splitToArray(template.getContent(), "\n")[57]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("otheroptions").inList(null, "1", null, "3", "2").defaultValue("3"), new String[] {"1", "2"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:CHECKBOX:otheroptions", set_values_it.next());
assertEquals("FORM:DISPLAY:otheroptions", set_values_it.next());
assertEquals("<input type=\"checkbox\" name=\"otheroptions\" value=\"1\" checked=\"checked\" />other option 1<input type=\"checkbox\" name=\"otheroptions\" value=\"3\" />3<input type=\"checkbox\" name=\"otheroptions\" value=\"2\" checked=\"checked\" />other option 2", StringUtils.splitToArray(template.getContent(), "\n")[28]);
assertEquals("<div id=\"otheroptions1\">other option 1</div><div id=\"otheroptions2\">other option 2</div>", StringUtils.splitToArray(template.getContent(), "\n")[57]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, CheckboxInListEnum.class, new ConstrainedProperty("otheroptions").defaultValue("3"), new String[] {"1", "2"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:CHECKBOX:otheroptions", set_values_it.next());
assertEquals("FORM:DISPLAY:otheroptions", set_values_it.next());
assertEquals("<input type=\"checkbox\" name=\"otheroptions\" value=\"1\" checked=\"checked\" />other option 1<input type=\"checkbox\" name=\"otheroptions\" value=\"3\" />3<input type=\"checkbox\" name=\"otheroptions\" value=\"2\" checked=\"checked\" />other option 2", StringUtils.splitToArray(template.getContent(), "\n")[28]);
assertEquals("<div id=\"otheroptions1\">other option 1</div><div id=\"otheroptions2\">other option 2</div>", StringUtils.splitToArray(template.getContent(), "\n")[57]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
}
public void testGenerateFieldCheckboxPrefix()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Iterator<String> set_values_it;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
set_values = builder.generateField(template, "options", null, "other");
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:CHECKBOX:otheroptions", set_values_it.next());
assertEquals("FORM:DISPLAY:otheroptions", set_values_it.next());
assertEquals("FORM:CHECKBOX:otheroptions", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"otheroptions\" />", StringUtils.splitToArray(template.getContent(), "\n")[28]);
assertEquals("<div id=\"otheroptions[!V 'FORM:VALUE'/]\"></div>", StringUtils.splitToArray(template.getContent(), "\n")[57]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("options"), null, "other");
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:CHECKBOX:otheroptions", set_values_it.next());
assertEquals("FORM:DISPLAY:otheroptions", set_values_it.next());
assertEquals("<input type=\"checkbox\" name=\"otheroptions\" />", StringUtils.splitToArray(template.getContent(), "\n")[28]);
assertEquals("<div id=\"otheroptions[!V 'FORM:VALUE'/]\"></div>", StringUtils.splitToArray(template.getContent(), "\n")[57]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("options").inList(null, "1", null, "3", "2"), null, "other");
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:CHECKBOX:otheroptions", set_values_it.next());
assertEquals("FORM:DISPLAY:otheroptions", set_values_it.next());
assertEquals("<input type=\"checkbox\" name=\"otheroptions\" value=\"1\" />other option 1<input type=\"checkbox\" name=\"otheroptions\" value=\"3\" />3<input type=\"checkbox\" name=\"otheroptions\" value=\"2\" />other option 2", StringUtils.splitToArray(template.getContent(), "\n")[28]);
assertEquals("<div id=\"otheroptions[!V 'FORM:VALUE'/]\"></div>", StringUtils.splitToArray(template.getContent(), "\n")[57]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, CheckboxInListEnum.class, "options", null, "other");
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:CHECKBOX:otheroptions", set_values_it.next());
assertEquals("FORM:DISPLAY:otheroptions", set_values_it.next());
assertEquals("<input type=\"checkbox\" name=\"otheroptions\" value=\"1\" />other option 1<input type=\"checkbox\" name=\"otheroptions\" value=\"3\" />3<input type=\"checkbox\" name=\"otheroptions\" value=\"2\" />other option 2", StringUtils.splitToArray(template.getContent(), "\n")[28]);
assertEquals("<div id=\"otheroptions[!V 'FORM:VALUE'/]\"></div>", StringUtils.splitToArray(template.getContent(), "\n")[57]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("options").inList(null, "1", null, "3", "2").defaultValue("3"), new String[] {"1", "2"}, "other");
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:CHECKBOX:otheroptions", set_values_it.next());
assertEquals("FORM:DISPLAY:otheroptions", set_values_it.next());
assertEquals("<input type=\"checkbox\" name=\"otheroptions\" value=\"1\" checked=\"checked\" />other option 1<input type=\"checkbox\" name=\"otheroptions\" value=\"3\" />3<input type=\"checkbox\" name=\"otheroptions\" value=\"2\" checked=\"checked\" />other option 2", StringUtils.splitToArray(template.getContent(), "\n")[28]);
assertEquals("<div id=\"otheroptions1\">other option 1</div><div id=\"otheroptions2\">other option 2</div>", StringUtils.splitToArray(template.getContent(), "\n")[57]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, CheckboxInListEnum.class, new ConstrainedProperty("options").defaultValue("3"), new String[] {"1", "2"}, "other");
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:CHECKBOX:otheroptions", set_values_it.next());
assertEquals("FORM:DISPLAY:otheroptions", set_values_it.next());
assertEquals("<input type=\"checkbox\" name=\"otheroptions\" value=\"1\" checked=\"checked\" />other option 1<input type=\"checkbox\" name=\"otheroptions\" value=\"3\" />3<input type=\"checkbox\" name=\"otheroptions\" value=\"2\" checked=\"checked\" />other option 2", StringUtils.splitToArray(template.getContent(), "\n")[28]);
assertEquals("<div id=\"otheroptions1\">other option 1</div><div id=\"otheroptions2\">other option 2</div>", StringUtils.splitToArray(template.getContent(), "\n")[57]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
template.setValue("FORM:CHECKBOX:otheroptions", "already set");
template.setValue("FORM:DISPLAY:otheroptions", "already set too");
set_values = builder.generateField(template, new ConstrainedProperty("options"), null, "other");
assertEquals(0, set_values.size());
assertEquals("already set", StringUtils.splitToArray(template.getContent(), "\n")[28]);
assertEquals("already set too", StringUtils.splitToArray(template.getContent(), "\n")[57]);
template.removeValue("FORM:DISPLAY:otheroptions");
template.removeValue("FORM:CHECKBOX:otheroptions");
}
public void testGenerateFieldCheckboxTemplateNameWithDefault()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields_templatename");
set_values = builder.replaceField(template, "templatenameoptions", "options", null, null);
assertEquals(2, set_values.size());
Iterator set_values_it = set_values.iterator();
assertEquals("FORM:CHECKBOX:templatenameoptions", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenameoptions", set_values_it.next());
assertEquals("<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" />", StringUtils.splitToArray(template.getContent(), "\n")[24]);
assertEquals("<div id=\"options[!V 'FORM:VALUE'/]\"></div>", StringUtils.splitToArray(template.getContent(), "\n")[57]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenameoptions", new ConstrainedProperty("options"), null, null);
assertEquals(2, set_values.size());
set_values_it = set_values.iterator();
assertEquals("FORM:CHECKBOX:templatenameoptions", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenameoptions", set_values_it.next());
assertEquals("<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" />", StringUtils.splitToArray(template.getContent(), "\n")[24]);
assertEquals("<div id=\"options[!V 'FORM:VALUE'/]\"></div>", StringUtils.splitToArray(template.getContent(), "\n")[57]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenameoptions", new ConstrainedProperty("options").inList(null, "1", null, "3", "2"), null, null);
assertEquals(2, set_values.size());
set_values_it = set_values.iterator();
assertEquals("FORM:CHECKBOX:templatenameoptions", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenameoptions", set_values_it.next());
assertEquals("<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"1\" />option1<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"3\" />3<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"2\" />option2", StringUtils.splitToArray(template.getContent(), "\n")[24]);
assertEquals("<div id=\"options[!V 'FORM:VALUE'/]\"></div>", StringUtils.splitToArray(template.getContent(), "\n")[57]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenameoptions", CheckboxInListEnum.class, "options", null, null);
assertEquals(2, set_values.size());
set_values_it = set_values.iterator();
assertEquals("FORM:CHECKBOX:templatenameoptions", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenameoptions", set_values_it.next());
assertEquals("<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"1\" />option1<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"3\" />3<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"2\" />option2", StringUtils.splitToArray(template.getContent(), "\n")[24]);
assertEquals("<div id=\"options[!V 'FORM:VALUE'/]\"></div>", StringUtils.splitToArray(template.getContent(), "\n")[57]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenameoptions", new ConstrainedProperty("options").inList(null, "1", null, "3", "2").defaultValue("2"), new String[] {null, "1"}, null);
assertEquals(2, set_values.size());
set_values_it = set_values.iterator();
assertEquals("FORM:CHECKBOX:templatenameoptions", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenameoptions", set_values_it.next());
assertEquals("<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"1\" checked=\"checked\" />option1<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"3\" />3<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"2\" />option2", StringUtils.splitToArray(template.getContent(), "\n")[24]);
assertEquals("<div id=\"options2\">option2</div><div id=\"options1\">option1</div>", StringUtils.splitToArray(template.getContent(), "\n")[57]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenameoptions", CheckboxInListEnum.class, new ConstrainedProperty("options").defaultValue("2"), new String[] {null, "1"}, null);
assertEquals(2, set_values.size());
set_values_it = set_values.iterator();
assertEquals("FORM:CHECKBOX:templatenameoptions", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenameoptions", set_values_it.next());
assertEquals("<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"1\" checked=\"checked\" />option1<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"3\" />3<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"2\" />option2", StringUtils.splitToArray(template.getContent(), "\n")[24]);
assertEquals("<div id=\"options2\">option2</div><div id=\"options1\">option1</div>", StringUtils.splitToArray(template.getContent(), "\n")[57]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenameoptions", new ConstrainedProperty("options").inList(null, "1", null, "3", "2"), new String[] {"1", "2"}, null);
assertEquals(2, set_values.size());
set_values_it = set_values.iterator();
assertEquals("FORM:CHECKBOX:templatenameoptions", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenameoptions", set_values_it.next());
assertEquals("<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"1\" checked=\"checked\" />option1<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"3\" />3<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"2\" checked=\"checked\" />option2", StringUtils.splitToArray(template.getContent(), "\n")[24]);
assertEquals("<div id=\"options1\">option1</div><div id=\"options2\">option2</div>", StringUtils.splitToArray(template.getContent(), "\n")[57]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenameoptions", CheckboxInListEnum.class, "options", new String[] {"1", "2"}, null);
assertEquals(2, set_values.size());
set_values_it = set_values.iterator();
assertEquals("FORM:CHECKBOX:templatenameoptions", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenameoptions", set_values_it.next());
assertEquals("<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"1\" checked=\"checked\" />option1<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"3\" />3<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"2\" checked=\"checked\" />option2", StringUtils.splitToArray(template.getContent(), "\n")[24]);
assertEquals("<div id=\"options1\">option1</div><div id=\"options2\">option2</div>", StringUtils.splitToArray(template.getContent(), "\n")[57]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenameoptions", new ConstrainedProperty("options").inList(null, "1", null, "3", "2").defaultValue("3"), new String[] {"1", "2"}, null);
assertEquals(2, set_values.size());
set_values_it = set_values.iterator();
assertEquals("FORM:CHECKBOX:templatenameoptions", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenameoptions", set_values_it.next());
assertEquals("<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"1\" checked=\"checked\" />option1<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"3\" />3<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"2\" checked=\"checked\" />option2", StringUtils.splitToArray(template.getContent(), "\n")[24]);
assertEquals("<div id=\"options1\">option1</div><div id=\"options2\">option2</div>", StringUtils.splitToArray(template.getContent(), "\n")[57]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenameoptions", CheckboxInListEnum.class, new ConstrainedProperty("options").defaultValue("3"), new String[] {"1", "2"}, null);
assertEquals(2, set_values.size());
set_values_it = set_values.iterator();
assertEquals("FORM:CHECKBOX:templatenameoptions", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenameoptions", set_values_it.next());
assertEquals("<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"1\" checked=\"checked\" />option1<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"3\" />3<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"2\" checked=\"checked\" />option2", StringUtils.splitToArray(template.getContent(), "\n")[24]);
assertEquals("<div id=\"options1\">option1</div><div id=\"options2\">option2</div>", StringUtils.splitToArray(template.getContent(), "\n")[57]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenameoptions", new ConstrainedProperty("options").inList(null, "1", null, "3", "2"), new String[] {"a4"}, null);
assertEquals(2, set_values.size());
set_values_it = set_values.iterator();
assertEquals("FORM:CHECKBOX:templatenameoptions", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenameoptions", set_values_it.next());
assertEquals("<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"1\" />option1<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"3\" />3<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"2\" />option2", StringUtils.splitToArray(template.getContent(), "\n")[24]);
assertEquals("<div id=\"optionsa4\">a4</div>", StringUtils.splitToArray(template.getContent(), "\n")[57]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenameoptions", CheckboxInListEnum.class, "options", new String[] {"a4"}, null);
assertEquals(2, set_values.size());
set_values_it = set_values.iterator();
assertEquals("FORM:CHECKBOX:templatenameoptions", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenameoptions", set_values_it.next());
assertEquals("<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"1\" />option1<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"3\" />3<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"2\" />option2", StringUtils.splitToArray(template.getContent(), "\n")[24]);
assertEquals("<div id=\"optionsa4\">a4</div>", StringUtils.splitToArray(template.getContent(), "\n")[57]);
template.removeValue(set_values.iterator().next());
set_values.clear();
template.setValue("FORM:CHECKBOX:templatenameoptions", "already set");
set_values = builder.replaceField(template, "templatenameoptions", new ConstrainedProperty("options"), null, null);
assertEquals(2, set_values.size());
set_values_it = set_values.iterator();
assertEquals("FORM:CHECKBOX:templatenameoptions", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenameoptions", set_values_it.next());
assertEquals("<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" />", StringUtils.splitToArray(template.getContent(), "\n")[24]);
assertEquals("<div id=\"options[!V 'FORM:VALUE'/]\"></div>", StringUtils.splitToArray(template.getContent(), "\n")[57]);
template.removeValue(set_values.iterator().next());
set_values.clear();
}
public void testGenerateFieldCheckboxDynamic()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
template.addResourceBundle(new ListResourceBundle() {
public Object[][] getContents()
{
return new Object[][] {
{"options:1", "dynamic first"},
{"options:2", "dynamic second"},
{"options:3", "dynamic third"}
};
}});
set_values = builder.generateField(template, new ConstrainedProperty("options").inList("1", "3", "2").defaultValue("2"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:options", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"1\" />dynamic first<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"3\" />dynamic third<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"2\" checked=\"checked\" />dynamic second", StringUtils.splitToArray(template.getContent(), "\n")[24]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, CheckboxInListEnum.class, new ConstrainedProperty("options").defaultValue("2"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:options", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"1\" />dynamic first<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"3\" />dynamic third<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"2\" checked=\"checked\" />dynamic second", StringUtils.splitToArray(template.getContent(), "\n")[24]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("options").inList("1", "3", "2").defaultValue("2"), new String[] {"3", "1"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:options", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"1\" checked=\"checked\" />dynamic first<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"3\" checked=\"checked\" />dynamic third<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"2\" />dynamic second", StringUtils.splitToArray(template.getContent(), "\n")[24]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, CheckboxInListEnum.class, new ConstrainedProperty("options").defaultValue("2"), new String[] {"3", "1"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:options", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"1\" checked=\"checked\" />dynamic first<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"3\" checked=\"checked\" />dynamic third<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"2\" />dynamic second", StringUtils.splitToArray(template.getContent(), "\n")[24]);
template.removeValue(set_values.iterator().next());
set_values.clear();
template.clear();
template.addResourceBundle(new ListResourceBundle() {
public Object[][] getContents()
{
return new Object[][] {
{"options:2", "dynamic second"},
};
}});
set_values = builder.generateField(template, new ConstrainedProperty("options").inList("1", "3", "2").defaultValue("2"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:options", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"1\" />option1<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"3\" />3<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"2\" checked=\"checked\" />dynamic second", StringUtils.splitToArray(template.getContent(), "\n")[24]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, CheckboxInListEnum.class, new ConstrainedProperty("options").defaultValue("2"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:options", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"1\" />option1<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"3\" />3<input type=\"checkbox\" name=\"options\" alt=\"someblurp\" value=\"2\" checked=\"checked\" />dynamic second", StringUtils.splitToArray(template.getContent(), "\n")[24]);
template.removeValue(set_values.iterator().next());
set_values.clear();
}
public void testGenerateFieldCheckboxCustomWithDefault()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
set_values = builder.generateField(template, "customoptions", null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:customoptions", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" />", StringUtils.splitToArray(template.getContent(), "\n")[32]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("customoptions"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:customoptions", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" />", StringUtils.splitToArray(template.getContent(), "\n")[32]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("customoptions").inList(null, "1", null, "3", "2"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:customoptions", set_values.iterator().next());
assertEquals("custom option 1 : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"1\" />3 : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"3\" />custom option 2 : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"2\" />", StringUtils.splitToArray(template.getContent(), "\n")[32]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, CheckboxInListEnum.class, "customoptions", null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:customoptions", set_values.iterator().next());
assertEquals("custom option 1 : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"1\" />3 : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"3\" />custom option 2 : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"2\" />", StringUtils.splitToArray(template.getContent(), "\n")[32]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("customoptions").inList(null, "1", null, "3", "2").defaultValue("2"), new String[] {null, "1"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:customoptions", set_values.iterator().next());
assertEquals("custom option 1 : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"1\" checked=\"checked\" />3 : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"3\" />custom option 2 : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"2\" />", StringUtils.splitToArray(template.getContent(), "\n")[32]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, CheckboxInListEnum.class, new ConstrainedProperty("customoptions").defaultValue("2"), new String[] {null, "1"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:customoptions", set_values.iterator().next());
assertEquals("custom option 1 : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"1\" checked=\"checked\" />3 : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"3\" />custom option 2 : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"2\" />", StringUtils.splitToArray(template.getContent(), "\n")[32]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("customoptions").inList(null, "1", null, "3", "2"), new String[] {"1", "2"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:customoptions", set_values.iterator().next());
assertEquals("custom option 1 : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"1\" checked=\"checked\" />3 : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"3\" />custom option 2 : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"2\" checked=\"checked\" />", StringUtils.splitToArray(template.getContent(), "\n")[32]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, CheckboxInListEnum.class, "customoptions", new String[] {"1", "2"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:customoptions", set_values.iterator().next());
assertEquals("custom option 1 : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"1\" checked=\"checked\" />3 : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"3\" />custom option 2 : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"2\" checked=\"checked\" />", StringUtils.splitToArray(template.getContent(), "\n")[32]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("customoptions").inList(null, "1", null, "3", "2").defaultValue("3"), new String[] {"1", "2"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:customoptions", set_values.iterator().next());
assertEquals("custom option 1 : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"1\" checked=\"checked\" />3 : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"3\" />custom option 2 : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"2\" checked=\"checked\" />", StringUtils.splitToArray(template.getContent(), "\n")[32]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, CheckboxInListEnum.class, new ConstrainedProperty("customoptions").defaultValue("3"), new String[] {"1", "2"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:customoptions", set_values.iterator().next());
assertEquals("custom option 1 : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"1\" checked=\"checked\" />3 : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"3\" />custom option 2 : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"2\" checked=\"checked\" />", StringUtils.splitToArray(template.getContent(), "\n")[32]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("customoptions").inList(null, "1", null, "3", "2"), new String[] {"a4"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:customoptions", set_values.iterator().next());
assertEquals("custom option 1 : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"1\" />3 : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"3\" />custom option 2 : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"2\" />", StringUtils.splitToArray(template.getContent(), "\n")[32]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, CheckboxInListEnum.class, "customoptions", new String[] {"a4"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:customoptions", set_values.iterator().next());
assertEquals("custom option 1 : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"1\" />3 : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"3\" />custom option 2 : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"2\" />", StringUtils.splitToArray(template.getContent(), "\n")[32]);
template.removeValue(set_values.iterator().next());
set_values.clear();
template.setValue("FORM:CHECKBOX:customoptions", "already set");
set_values = builder.generateField(template, new ConstrainedProperty("customoptions"), null, null);
assertEquals(0, set_values.size());
assertEquals("already set", StringUtils.splitToArray(template.getContent(), "\n")[32]);
template.removeValue("FORM:CHECKBOX:customoptions");
}
public void testGenerateFieldCheckboxCustomWithoutDefault()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
set_values = builder.generateField(template, "othercustomoptions", null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:othercustomoptions", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"othercustomoptions\" />", StringUtils.splitToArray(template.getContent(), "\n")[37]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("othercustomoptions"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:othercustomoptions", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"othercustomoptions\" />", StringUtils.splitToArray(template.getContent(), "\n")[37]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("othercustomoptions").inList(null, "1", null, "3", "2"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:othercustomoptions", set_values.iterator().next());
assertEquals("othercustom option 1 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"1\" />3 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"3\" />othercustom option 2 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"2\" />", StringUtils.splitToArray(template.getContent(), "\n")[37]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, CheckboxInListEnum.class, "othercustomoptions", null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:othercustomoptions", set_values.iterator().next());
assertEquals("othercustom option 1 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"1\" />3 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"3\" />othercustom option 2 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"2\" />", StringUtils.splitToArray(template.getContent(), "\n")[37]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("othercustomoptions").inList(null, "1", null, "3", "2").defaultValue("2"), new String[] {null, "1"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:othercustomoptions", set_values.iterator().next());
assertEquals("othercustom option 1 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"1\" checked=\"checked\" />3 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"3\" />othercustom option 2 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"2\" />", StringUtils.splitToArray(template.getContent(), "\n")[37]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, CheckboxInListEnum.class, new ConstrainedProperty("othercustomoptions").defaultValue("2"), new String[] {null, "1"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:othercustomoptions", set_values.iterator().next());
assertEquals("othercustom option 1 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"1\" checked=\"checked\" />3 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"3\" />othercustom option 2 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"2\" />", StringUtils.splitToArray(template.getContent(), "\n")[37]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("othercustomoptions").inList(null, "1", null, "3", "2"), new String[] {"1", "2"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:othercustomoptions", set_values.iterator().next());
assertEquals("othercustom option 1 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"1\" checked=\"checked\" />3 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"3\" />othercustom option 2 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"2\" checked=\"checked\" />", StringUtils.splitToArray(template.getContent(), "\n")[37]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, CheckboxInListEnum.class, "othercustomoptions", new String[] {"1", "2"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:othercustomoptions", set_values.iterator().next());
assertEquals("othercustom option 1 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"1\" checked=\"checked\" />3 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"3\" />othercustom option 2 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"2\" checked=\"checked\" />", StringUtils.splitToArray(template.getContent(), "\n")[37]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("othercustomoptions").inList(null, "1", null, "3", "2").defaultValue("3"), new String[] {"1", "2"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:othercustomoptions", set_values.iterator().next());
assertEquals("othercustom option 1 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"1\" checked=\"checked\" />3 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"3\" />othercustom option 2 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"2\" checked=\"checked\" />", StringUtils.splitToArray(template.getContent(), "\n")[37]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, CheckboxInListEnum.class, new ConstrainedProperty("othercustomoptions").defaultValue("3"), new String[] {"1", "2"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:othercustomoptions", set_values.iterator().next());
assertEquals("othercustom option 1 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"1\" checked=\"checked\" />3 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"3\" />othercustom option 2 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"2\" checked=\"checked\" />", StringUtils.splitToArray(template.getContent(), "\n")[37]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("othercustomoptions").inList(null, "1", null, "3", "2"), new String[] {"a4"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:othercustomoptions", set_values.iterator().next());
assertEquals("othercustom option 1 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"1\" />3 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"3\" />othercustom option 2 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"2\" />", StringUtils.splitToArray(template.getContent(), "\n")[37]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, CheckboxInListEnum.class, "othercustomoptions", new String[] {"a4"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:othercustomoptions", set_values.iterator().next());
assertEquals("othercustom option 1 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"1\" />3 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"3\" />othercustom option 2 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"2\" />", StringUtils.splitToArray(template.getContent(), "\n")[37]);
template.removeValue(set_values.iterator().next());
set_values.clear();
template.setValue("FORM:CHECKBOX:othercustomoptions", "already set");
set_values = builder.generateField(template, new ConstrainedProperty("othercustomoptions"), null, null);
assertEquals(0, set_values.size());
assertEquals("already set", StringUtils.splitToArray(template.getContent(), "\n")[37]);
template.removeValue("FORM:CHECKBOX:othercustomoptions");
}
public void testGenerateFieldCheckboxTemplatNameCustomWithoutDefault()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields_templatename");
set_values = builder.replaceField(template, "templatenameothercustomoptions", "othercustomoptions", null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:templatenameothercustomoptions", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"othercustomoptions\" />", StringUtils.splitToArray(template.getContent(), "\n")[37]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenameothercustomoptions", new ConstrainedProperty("othercustomoptions"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:templatenameothercustomoptions", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"othercustomoptions\" />", StringUtils.splitToArray(template.getContent(), "\n")[37]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenameothercustomoptions", new ConstrainedProperty("othercustomoptions").inList(null, "1", null, "3", "2"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:templatenameothercustomoptions", set_values.iterator().next());
assertEquals("othercustom option 1 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"1\" />3 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"3\" />othercustom option 2 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"2\" />", StringUtils.splitToArray(template.getContent(), "\n")[37]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenameothercustomoptions", CheckboxInListEnum.class, "othercustomoptions", null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:templatenameothercustomoptions", set_values.iterator().next());
assertEquals("othercustom option 1 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"1\" />3 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"3\" />othercustom option 2 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"2\" />", StringUtils.splitToArray(template.getContent(), "\n")[37]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenameothercustomoptions", new ConstrainedProperty("othercustomoptions").inList(null, "1", null, "3", "2").defaultValue("2"), new String[] {null, "1"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:templatenameothercustomoptions", set_values.iterator().next());
assertEquals("othercustom option 1 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"1\" checked=\"checked\" />3 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"3\" />othercustom option 2 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"2\" />", StringUtils.splitToArray(template.getContent(), "\n")[37]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenameothercustomoptions", CheckboxInListEnum.class, new ConstrainedProperty("othercustomoptions").defaultValue("2"), new String[] {null, "1"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:templatenameothercustomoptions", set_values.iterator().next());
assertEquals("othercustom option 1 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"1\" checked=\"checked\" />3 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"3\" />othercustom option 2 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"2\" />", StringUtils.splitToArray(template.getContent(), "\n")[37]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenameothercustomoptions", new ConstrainedProperty("othercustomoptions").inList(null, "1", null, "3", "2"), new String[] {"1", "2"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:templatenameothercustomoptions", set_values.iterator().next());
assertEquals("othercustom option 1 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"1\" checked=\"checked\" />3 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"3\" />othercustom option 2 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"2\" checked=\"checked\" />", StringUtils.splitToArray(template.getContent(), "\n")[37]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenameothercustomoptions", CheckboxInListEnum.class, "othercustomoptions", new String[] {"1", "2"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:templatenameothercustomoptions", set_values.iterator().next());
assertEquals("othercustom option 1 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"1\" checked=\"checked\" />3 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"3\" />othercustom option 2 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"2\" checked=\"checked\" />", StringUtils.splitToArray(template.getContent(), "\n")[37]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenameothercustomoptions", new ConstrainedProperty("othercustomoptions").inList(null, "1", null, "3", "2").defaultValue("3"), new String[] {"1", "2"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:templatenameothercustomoptions", set_values.iterator().next());
assertEquals("othercustom option 1 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"1\" checked=\"checked\" />3 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"3\" />othercustom option 2 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"2\" checked=\"checked\" />", StringUtils.splitToArray(template.getContent(), "\n")[37]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenameothercustomoptions", CheckboxInListEnum.class, new ConstrainedProperty("othercustomoptions").defaultValue("3"), new String[] {"1", "2"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:templatenameothercustomoptions", set_values.iterator().next());
assertEquals("othercustom option 1 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"1\" checked=\"checked\" />3 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"3\" />othercustom option 2 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"2\" checked=\"checked\" />", StringUtils.splitToArray(template.getContent(), "\n")[37]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenameothercustomoptions", new ConstrainedProperty("othercustomoptions").inList(null, "1", null, "3", "2"), new String[] {"a4"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:templatenameothercustomoptions", set_values.iterator().next());
assertEquals("othercustom option 1 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"1\" />3 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"3\" />othercustom option 2 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"2\" />", StringUtils.splitToArray(template.getContent(), "\n")[37]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenameothercustomoptions", CheckboxInListEnum.class, "othercustomoptions", new String[] {"a4"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:templatenameothercustomoptions", set_values.iterator().next());
assertEquals("othercustom option 1 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"1\" />3 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"3\" />othercustom option 2 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"2\" />", StringUtils.splitToArray(template.getContent(), "\n")[37]);
template.removeValue(set_values.iterator().next());
set_values.clear();
template.setValue("FORM:CHECKBOX:templatenameothercustomoptions", "already set");
set_values = builder.replaceField(template, "templatenameothercustomoptions", new ConstrainedProperty("othercustomoptions"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:templatenameothercustomoptions", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"othercustomoptions\" />", StringUtils.splitToArray(template.getContent(), "\n")[37]);
template.removeValue(set_values.iterator().next());
set_values.clear();
}
public void testGenerateFieldCheckboxCustomPrefix()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
set_values = builder.generateField(template, new ConstrainedProperty("customoptions").inList(null, "1", null, "3", "2"), null, "other");
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:othercustomoptions", set_values.iterator().next());
assertEquals("othercustom option 1 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"1\" />3 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"3\" />othercustom option 2 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"2\" />", StringUtils.splitToArray(template.getContent(), "\n")[37]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, CheckboxInListEnum.class, "customoptions", null, "other");
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:othercustomoptions", set_values.iterator().next());
assertEquals("othercustom option 1 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"1\" />3 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"3\" />othercustom option 2 : <input type=\"checkbox\" name=\"othercustomoptions\" value=\"2\" />", StringUtils.splitToArray(template.getContent(), "\n")[37]);
template.removeValue(set_values.iterator().next());
set_values.clear();
template.setValue("FORM:CHECKBOX:othercustomoptions", "already set");
set_values = builder.generateField(template, new ConstrainedProperty("customoptions"), null, "other");
assertEquals(0, set_values.size());
assertEquals("already set", StringUtils.splitToArray(template.getContent(), "\n")[37]);
template.removeValue("FORM:CHECKBOX:othercustomoptions");
}
public void testGenerateFieldCheckboxCustomDynamic()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
template.addResourceBundle(new ListResourceBundle() {
public Object[][] getContents()
{
return new Object[][] {
{"customoptions:1", "dynamic first"},
{"customoptions:2", "dynamic second"},
{"customoptions:3", "dynamic third"}
};
}});
set_values = builder.generateField(template, new ConstrainedProperty("customoptions").inList("1", "3", "2").defaultValue("2"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:customoptions", set_values.iterator().next());
assertEquals("dynamic first : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"1\" />dynamic third : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"3\" />dynamic second : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"2\" checked=\"checked\" />", StringUtils.splitToArray(template.getContent(), "\n")[32]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, CheckboxInListEnum.class, new ConstrainedProperty("customoptions").defaultValue("2"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:customoptions", set_values.iterator().next());
assertEquals("dynamic first : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"1\" />dynamic third : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"3\" />dynamic second : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"2\" checked=\"checked\" />", StringUtils.splitToArray(template.getContent(), "\n")[32]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("customoptions").inList("1", "3", "2").defaultValue("2"), new String[] {"1"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:customoptions", set_values.iterator().next());
assertEquals("dynamic first : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"1\" checked=\"checked\" />dynamic third : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"3\" />dynamic second : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"2\" />", StringUtils.splitToArray(template.getContent(), "\n")[32]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, CheckboxInListEnum.class, new ConstrainedProperty("customoptions").defaultValue("2"), new String[] {"1"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:customoptions", set_values.iterator().next());
assertEquals("dynamic first : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"1\" checked=\"checked\" />dynamic third : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"3\" />dynamic second : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"2\" />", StringUtils.splitToArray(template.getContent(), "\n")[32]);
template.removeValue(set_values.iterator().next());
set_values.clear();
template.clear();
template.addResourceBundle(new ListResourceBundle() {
public Object[][] getContents()
{
return new Object[][] {
{"customoptions:2", "dynamic second"},
};
}});
set_values = builder.generateField(template, new ConstrainedProperty("customoptions").inList("1", "3", "2").defaultValue("2"), new String[] {"1"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:customoptions", set_values.iterator().next());
assertEquals("custom option 1 : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"1\" checked=\"checked\" />3 : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"3\" />dynamic second : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"2\" />", StringUtils.splitToArray(template.getContent(), "\n")[32]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, CheckboxInListEnum.class, new ConstrainedProperty("customoptions").defaultValue("2"), new String[] {"1"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:customoptions", set_values.iterator().next());
assertEquals("custom option 1 : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"1\" checked=\"checked\" />3 : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"3\" />dynamic second : <input type=\"checkbox\" name=\"customoptions\" alt=\"customblurp\" value=\"2\" />", StringUtils.splitToArray(template.getContent(), "\n")[32]);
template.removeValue(set_values.iterator().next());
set_values.clear();
}
public void testGenerateFieldCheckboxEmptyCustomWithDefault()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields_emptycustom");
set_values = builder.generateField(template, "emptycustomoptions", null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:emptycustomoptions", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"emptycustomoptions\" alt=\"emptycustomblurp\" />", StringUtils.splitToArray(template.getContent(), "\n")[4]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("emptycustomoptions"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:emptycustomoptions", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"emptycustomoptions\" alt=\"emptycustomblurp\" />", StringUtils.splitToArray(template.getContent(), "\n")[4]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("emptycustomoptions").inList(null, "1", null, "3", "2"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:emptycustomoptions", set_values.iterator().next());
assertEquals(" - - - ", StringUtils.splitToArray(template.getContent(), "\n")[4]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, CheckboxInListEnum.class, "emptycustomoptions", null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:emptycustomoptions", set_values.iterator().next());
assertEquals(" - - - ", StringUtils.splitToArray(template.getContent(), "\n")[4]);
template.removeValue(set_values.iterator().next());
set_values.clear();
template.setValue("FORM:CHECKBOX:emptycustomoptions", "already set");
set_values = builder.generateField(template, new ConstrainedProperty("emptycustomoptions"), null, null);
assertEquals(0, set_values.size());
assertEquals("already set", StringUtils.splitToArray(template.getContent(), "\n")[4]);
template.removeValue("FORM:CHECKBOX:emptycustomoptions");
}
public void testGenerateFieldCheckboxEmptyCustomWithoutDefault()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields_emptycustom");
set_values = builder.generateField(template, "otheremptycustomoptions", null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:otheremptycustomoptions", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"otheremptycustomoptions\" />", StringUtils.splitToArray(template.getContent(), "\n")[6]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("otheremptycustomoptions"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:otheremptycustomoptions", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"otheremptycustomoptions\" />", StringUtils.splitToArray(template.getContent(), "\n")[6]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("otheremptycustomoptions").inList(null, "1", null, "3", "2"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:otheremptycustomoptions", set_values.iterator().next());
assertEquals(" - - - ", StringUtils.splitToArray(template.getContent(), "\n")[6]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, CheckboxInListEnum.class, "otheremptycustomoptions", null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:otheremptycustomoptions", set_values.iterator().next());
assertEquals(" - - - ", StringUtils.splitToArray(template.getContent(), "\n")[6]);
template.removeValue(set_values.iterator().next());
set_values.clear();
template.setValue("FORM:CHECKBOX:otheremptycustomoptions", "already set");
set_values = builder.generateField(template, new ConstrainedProperty("otheremptycustomoptions"), null, null);
assertEquals(0, set_values.size());
assertEquals("already set", StringUtils.splitToArray(template.getContent(), "\n")[6]);
template.removeValue("FORM:CHECKBOX:otheremptycustomoptions");
}
public void testGenerateFieldCheckboxEmptyCustomPrefix()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields_emptycustom");
set_values = builder.generateField(template, "emptycustomoptions", null, "other");
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:otheremptycustomoptions", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"otheremptycustomoptions\" />", StringUtils.splitToArray(template.getContent(), "\n")[6]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("emptycustomoptions").inList(null, "1", null, "3", "2"), null, "other");
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:otheremptycustomoptions", set_values.iterator().next());
assertEquals(" - - - ", StringUtils.splitToArray(template.getContent(), "\n")[6]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, CheckboxInListEnum.class, "emptycustomoptions", null, "other");
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:otheremptycustomoptions", set_values.iterator().next());
assertEquals(" - - - ", StringUtils.splitToArray(template.getContent(), "\n")[6]);
template.removeValue(set_values.iterator().next());
set_values.clear();
template.setValue("FORM:CHECKBOX:otheremptycustomoptions", "already set");
set_values = builder.generateField(template, new ConstrainedProperty("emptycustomoptions"), null, "other");
assertEquals(0, set_values.size());
assertEquals("already set", StringUtils.splitToArray(template.getContent(), "\n")[6]);
template.removeValue("FORM:CHECKBOX:otheremptycustomoptions");
}
public void testGenerateFieldCheckboxBooleanWithDefault()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
set_values = builder.generateField(template, "invoice", null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:invoice", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"invoice\" alt=\"atext\" />I want an invoice", StringUtils.splitToArray(template.getContent(), "\n")[42]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("invoice"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:invoice", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"invoice\" alt=\"atext\" />I want an invoice", StringUtils.splitToArray(template.getContent(), "\n")[42]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("invoice").defaultValue(true), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:invoice", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"invoice\" alt=\"atext\" checked=\"checked\" />I want an invoice", StringUtils.splitToArray(template.getContent(), "\n")[42]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("invoice").defaultValue("false"), new String[] {"true"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:invoice", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"invoice\" alt=\"atext\" checked=\"checked\" />I want an invoice", StringUtils.splitToArray(template.getContent(), "\n")[42]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("invoice").defaultValue("flam"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:invoice", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"invoice\" alt=\"atext\" />I want an invoice", StringUtils.splitToArray(template.getContent(), "\n")[42]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("invoice").defaultValue("false"), new String[] {"flum"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:invoice", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"invoice\" alt=\"atext\" />I want an invoice", StringUtils.splitToArray(template.getContent(), "\n")[42]);
template.removeValue(set_values.iterator().next());
set_values.clear();
template.setValue("FORM:CHECKBOX:invoice", "set : ");
set_values = builder.generateField(template, new ConstrainedProperty("invoice"), null, null);
assertEquals(0, set_values.size());
assertEquals("set : I want an invoice", StringUtils.splitToArray(template.getContent(), "\n")[42]);
template.removeValue("FORM:CHECKBOX:invoice");
}
public void testGenerateFieldCheckboxBooleanWithoutDefault()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
set_values = builder.generateField(template, "onemoreinvoice", null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:onemoreinvoice", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"onemoreinvoice\" />I want one more invoice", StringUtils.splitToArray(template.getContent(), "\n")[43]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("onemoreinvoice"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:onemoreinvoice", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"onemoreinvoice\" />I want one more invoice", StringUtils.splitToArray(template.getContent(), "\n")[43]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("onemoreinvoice").defaultValue("false"), new String[] {"true"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:onemoreinvoice", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"onemoreinvoice\" checked=\"checked\" />I want one more invoice", StringUtils.splitToArray(template.getContent(), "\n")[43]);
template.removeValue(set_values.iterator().next());
set_values.clear();
template.setValue("FORM:CHECKBOX:onemoreinvoice", "set : ");
set_values = builder.generateField(template, new ConstrainedProperty("onemoreinvoice"), null, null);
assertEquals(0, set_values.size());
assertEquals("set : I want one more invoice", StringUtils.splitToArray(template.getContent(), "\n")[43]);
template.removeValue("FORM:CHECKBOX:onemoreinvoice");
}
public void testGenerateFieldCheckboxTemplateNameBooleanWithDefault()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields_templatename");
set_values = builder.replaceField(template, "templatenameinvoice", "invoice", null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:templatenameinvoice", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"invoice\" alt=\"atext\" />I want an invoice", StringUtils.splitToArray(template.getContent(), "\n")[42]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenameinvoice", new ConstrainedProperty("invoice"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:templatenameinvoice", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"invoice\" alt=\"atext\" />I want an invoice", StringUtils.splitToArray(template.getContent(), "\n")[42]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenameinvoice", new ConstrainedProperty("invoice").defaultValue(true), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:templatenameinvoice", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"invoice\" alt=\"atext\" checked=\"checked\" />I want an invoice", StringUtils.splitToArray(template.getContent(), "\n")[42]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenameinvoice", new ConstrainedProperty("invoice").defaultValue("false"), new String[] {"true"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:templatenameinvoice", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"invoice\" alt=\"atext\" checked=\"checked\" />I want an invoice", StringUtils.splitToArray(template.getContent(), "\n")[42]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenameinvoice", new ConstrainedProperty("invoice").defaultValue("flam"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:templatenameinvoice", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"invoice\" alt=\"atext\" />I want an invoice", StringUtils.splitToArray(template.getContent(), "\n")[42]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.replaceField(template, "templatenameinvoice", new ConstrainedProperty("invoice").defaultValue("false"), new String[] {"flum"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:templatenameinvoice", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"invoice\" alt=\"atext\" />I want an invoice", StringUtils.splitToArray(template.getContent(), "\n")[42]);
template.removeValue(set_values.iterator().next());
set_values.clear();
template.setValue("FORM:CHECKBOX:templatenameinvoice", "set : ");
set_values = builder.replaceField(template, "templatenameinvoice", new ConstrainedProperty("invoice"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:templatenameinvoice", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"invoice\" alt=\"atext\" />I want an invoice", StringUtils.splitToArray(template.getContent(), "\n")[42]);
template.removeValue(set_values.iterator().next());
set_values.clear();
}
public void testGenerateFieldCheckboxBooleanPrefix()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
set_values = builder.generateField(template, "invoice", null, "onemore");
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:onemoreinvoice", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"onemoreinvoice\" />I want one more invoice", StringUtils.splitToArray(template.getContent(), "\n")[43]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("invoice"), null, "onemore");
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:onemoreinvoice", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"onemoreinvoice\" />I want one more invoice", StringUtils.splitToArray(template.getContent(), "\n")[43]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("invoice").defaultValue("false"), new String[] {"true"}, "onemore");
assertEquals(1, set_values.size());
assertEquals("FORM:CHECKBOX:onemoreinvoice", set_values.iterator().next());
assertEquals("<input type=\"checkbox\" name=\"onemoreinvoice\" checked=\"checked\" />I want one more invoice", StringUtils.splitToArray(template.getContent(), "\n")[43]);
template.removeValue(set_values.iterator().next());
set_values.clear();
template.setValue("FORM:CHECKBOX:onemoreinvoice", "set : ");
set_values = builder.generateField(template, new ConstrainedProperty("invoice"), null, "onemore");
assertEquals(0, set_values.size());
assertEquals("set : I want one more invoice", StringUtils.splitToArray(template.getContent(), "\n")[43]);
template.removeValue("FORM:CHECKBOX:onemoreinvoice");
}
public void testRemoveFieldCheckbox()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
String raw_content = template.getContent();
builder.generateField(template, new ConstrainedProperty("options").inList(null, "1", null, "3", "2"), new String[] {"a4"}, null);
assertFalse(raw_content.equals(template.getContent()));
builder.removeField(template, "options", null);
assertEquals(raw_content, template.getContent());
builder.generateField(template, CheckboxInListEnum.class, "options", new String[] {"a4"}, null);
assertFalse(raw_content.equals(template.getContent()));
builder.removeField(template, "options", null);
assertEquals(raw_content, template.getContent());
}
public void testRemoveFieldCheckboxTemplateName()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields_templatename");
String raw_content = template.getContent();
builder.replaceField(template, "templatenameoptions", new ConstrainedProperty("options").inList(null, "1", null, "3", "2"), new String[] {"a4"}, null);
assertFalse(raw_content.equals(template.getContent()));
builder.removeField(template, "templatenameoptions");
assertEquals(raw_content, template.getContent());
builder.replaceField(template, "templatenameoptions", CheckboxInListEnum.class, "options", new String[] {"a4"}, null);
assertFalse(raw_content.equals(template.getContent()));
builder.removeField(template, "templatenameoptions");
assertEquals(raw_content, template.getContent());
}
public void testRemoveFieldCheckboxPrefix()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
String raw_content = template.getContent();
builder.generateField(template, new ConstrainedProperty("options").inList(null, "1", null, "3", "2"), new String[] {"a4"}, "other");
assertFalse(raw_content.equals(template.getContent()));
builder.removeField(template, "options", "other");
assertEquals(raw_content, template.getContent());
builder.generateField(template, CheckboxInListEnum.class, "options", new String[] {"a4"}, "other");
assertFalse(raw_content.equals(template.getContent()));
builder.removeField(template, "options", "other");
assertEquals(raw_content, template.getContent());
}
public void testGenerateFieldSelectWithDefault()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Iterator<String> set_values_it;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
set_values = builder.generateField(template, "colors", null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:colors", set_values_it.next());
assertEquals("FORM:DISPLAY:colors", set_values_it.next());
assertEquals("<select name=\"colors\"></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div></div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("colors"), null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:colors", set_values_it.next());
assertEquals("FORM:DISPLAY:colors", set_values_it.next());
assertEquals("<select name=\"colors\"></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div></div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, RadioInListEnum.class, new ConstrainedProperty("colors").inList("black", "red", null, "green", "blue"), null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:colors", set_values_it.next());
assertEquals("FORM:DISPLAY:colors", set_values_it.next());
assertEquals("<select name=\"colors\" size=\"3\" multiple=\"multiple\"><option value=\"black\">black</option><option value=\"red\">red spots</option><option value=\"green\">green spots</option><option value=\"blue\">blue spots</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div></div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("colors").inList("black", "red", null, "green", "blue"), null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:colors", set_values_it.next());
assertEquals("FORM:DISPLAY:colors", set_values_it.next());
assertEquals("<select name=\"colors\" size=\"3\" multiple=\"multiple\"><option value=\"black\">black</option><option value=\"red\">red spots</option><option value=\"green\">green spots</option><option value=\"blue\">blue spots</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div></div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, SelectInListEnum.class, "colors", null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:colors", set_values_it.next());
assertEquals("FORM:DISPLAY:colors", set_values_it.next());
assertEquals("<select name=\"colors\" size=\"3\" multiple=\"multiple\"><option value=\"black\">black</option><option value=\"red\">red spots</option><option value=\"green\">green spots</option><option value=\"blue\">blue spots</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div></div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("colors").inList("black", "red", null, "green", "blue").defaultValue("green"), null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:colors", set_values_it.next());
assertEquals("FORM:DISPLAY:colors", set_values_it.next());
assertEquals("<select name=\"colors\" size=\"3\" multiple=\"multiple\"><option value=\"black\">black</option><option value=\"red\">red spots</option><option value=\"green\" selected=\"selected\">green spots</option><option value=\"blue\">blue spots</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div>green spots</div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, SelectInListEnum.class, new ConstrainedProperty("colors").defaultValue("green"), null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:colors", set_values_it.next());
assertEquals("FORM:DISPLAY:colors", set_values_it.next());
assertEquals("<select name=\"colors\" size=\"3\" multiple=\"multiple\"><option value=\"black\">black</option><option value=\"red\">red spots</option><option value=\"green\" selected=\"selected\">green spots</option><option value=\"blue\">blue spots</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div>green spots</div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("colors").inList("black", "red", null, "green", "blue").defaultValue("green"), new String[] {null, "red"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:colors", set_values_it.next());
assertEquals("FORM:DISPLAY:colors", set_values_it.next());
assertEquals("<select name=\"colors\" size=\"3\" multiple=\"multiple\"><option value=\"black\">black</option><option value=\"red\" selected=\"selected\">red spots</option><option value=\"green\">green spots</option><option value=\"blue\">blue spots</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div>green spots</div><div>red spots</div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, SelectInListEnum.class, new ConstrainedProperty("colors").defaultValue("green"), new String[] {null, "red"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:colors", set_values_it.next());
assertEquals("FORM:DISPLAY:colors", set_values_it.next());
assertEquals("<select name=\"colors\" size=\"3\" multiple=\"multiple\"><option value=\"black\">black</option><option value=\"red\" selected=\"selected\">red spots</option><option value=\"green\">green spots</option><option value=\"blue\">blue spots</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div>green spots</div><div>red spots</div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("colors").inList("black", "red", null, "green", "blue"), new String[] {"red", "blue"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:colors", set_values_it.next());
assertEquals("FORM:DISPLAY:colors", set_values_it.next());
assertEquals("<select name=\"colors\" size=\"3\" multiple=\"multiple\"><option value=\"black\">black</option><option value=\"red\" selected=\"selected\">red spots</option><option value=\"green\">green spots</option><option value=\"blue\" selected=\"selected\">blue spots</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div>red spots</div><div>blue spots</div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, SelectInListEnum.class, "colors", new String[] {"red", "blue"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:colors", set_values_it.next());
assertEquals("FORM:DISPLAY:colors", set_values_it.next());
assertEquals("<select name=\"colors\" size=\"3\" multiple=\"multiple\"><option value=\"black\">black</option><option value=\"red\" selected=\"selected\">red spots</option><option value=\"green\">green spots</option><option value=\"blue\" selected=\"selected\">blue spots</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div>red spots</div><div>blue spots</div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("colors").inList("black", "red", null, "green", "blue").defaultValue("green"), new String[] {"black", "red"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:colors", set_values_it.next());
assertEquals("FORM:DISPLAY:colors", set_values_it.next());
assertEquals("<select name=\"colors\" size=\"3\" multiple=\"multiple\"><option value=\"black\" selected=\"selected\">black</option><option value=\"red\" selected=\"selected\">red spots</option><option value=\"green\">green spots</option><option value=\"blue\">blue spots</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div>black</div><div>red spots</div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, SelectInListEnum.class, new ConstrainedProperty("colors").defaultValue("green"), new String[] {"black", "red"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:colors", set_values_it.next());
assertEquals("FORM:DISPLAY:colors", set_values_it.next());
assertEquals("<select name=\"colors\" size=\"3\" multiple=\"multiple\"><option value=\"black\" selected=\"selected\">black</option><option value=\"red\" selected=\"selected\">red spots</option><option value=\"green\">green spots</option><option value=\"blue\">blue spots</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div>black</div><div>red spots</div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("colors").inList("black", "red", null, "green", "blue"), new String[] {"orange"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:colors", set_values_it.next());
assertEquals("FORM:DISPLAY:colors", set_values_it.next());
assertEquals("<select name=\"colors\" size=\"3\" multiple=\"multiple\"><option value=\"black\">black</option><option value=\"red\">red spots</option><option value=\"green\">green spots</option><option value=\"blue\">blue spots</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div>orange</div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, SelectInListEnum.class, "colors", new String[] {"orange"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:colors", set_values_it.next());
assertEquals("FORM:DISPLAY:colors", set_values_it.next());
assertEquals("<select name=\"colors\" size=\"3\" multiple=\"multiple\"><option value=\"black\">black</option><option value=\"red\">red spots</option><option value=\"green\">green spots</option><option value=\"blue\">blue spots</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div>orange</div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
template.setValue("FORM:SELECT:colors", "already set");
template.setValue("FORM:DISPLAY:colors", "already set too");
set_values = builder.generateField(template, new ConstrainedProperty("colors"), null, null);
assertEquals(0, set_values.size());
assertEquals("already set", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("already set too", StringUtils.splitToArray(template.getContent(), "\n")[58]);
template.removeValue("FORM:SELECT:colors");
template.removeValue("FORM:DISPLAY:colors");
}
public void testGenerateFieldSelectWithoutDefault()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
set_values = builder.generateField(template, "morecolors", null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:SELECT:morecolors", set_values.iterator().next());
assertEquals("<select name=\"morecolors\"></select>", StringUtils.splitToArray(template.getContent(), "\n")[48]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("morecolors"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:SELECT:morecolors", set_values.iterator().next());
assertEquals("<select name=\"morecolors\"></select>", StringUtils.splitToArray(template.getContent(), "\n")[48]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("morecolors").inList("black", "red", null, "green", "blue"), null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:SELECT:morecolors", set_values.iterator().next());
assertEquals("<select name=\"morecolors\"><option value=\"black\">black</option><option value=\"red\">more red spots</option><option value=\"green\">more green spots</option><option value=\"blue\">more blue spots</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[48]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, SelectInListEnum.class, "morecolors", null, null);
assertEquals(1, set_values.size());
assertEquals("FORM:SELECT:morecolors", set_values.iterator().next());
assertEquals("<select name=\"morecolors\"><option value=\"black\">black</option><option value=\"red\">more red spots</option><option value=\"green\">more green spots</option><option value=\"blue\">more blue spots</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[48]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("morecolors").inList("black", "red", null, "green", "blue").defaultValue("green"), new String[] {"black", "red"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:SELECT:morecolors", set_values.iterator().next());
assertEquals("<select name=\"morecolors\"><option value=\"black\" selected=\"selected\">black</option><option value=\"red\" selected=\"selected\">more red spots</option><option value=\"green\">more green spots</option><option value=\"blue\">more blue spots</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[48]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, SelectInListEnum.class, new ConstrainedProperty("morecolors").defaultValue("green"), new String[] {"black", "red"}, null);
assertEquals(1, set_values.size());
assertEquals("FORM:SELECT:morecolors", set_values.iterator().next());
assertEquals("<select name=\"morecolors\"><option value=\"black\" selected=\"selected\">black</option><option value=\"red\" selected=\"selected\">more red spots</option><option value=\"green\">more green spots</option><option value=\"blue\">more blue spots</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[48]);
template.removeValue(set_values.iterator().next());
set_values.clear();
template.setValue("FORM:SELECT:morecolors", "already set");
set_values = builder.generateField(template, new ConstrainedProperty("morecolors"), null, null);
assertEquals(0, set_values.size());
assertEquals("already set", StringUtils.splitToArray(template.getContent(), "\n")[48]);
template.removeValue("FORM:SELECT:morecolors");
}
public void testGenerateFieldSelectTemplateNameWithDefault()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Iterator<String> set_values_it;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields_templatename");
set_values = builder.replaceField(template, "templatenamecolors", "colors", null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:templatenamecolors", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenamecolors", set_values_it.next());
assertEquals("<select name=\"colors\"></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div></div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamecolors", new ConstrainedProperty("colors"), null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:templatenamecolors", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenamecolors", set_values_it.next());
assertEquals("<select name=\"colors\"></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div></div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamecolors", new ConstrainedProperty("colors").inList("black", "red", null, "green", "blue"), null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:templatenamecolors", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenamecolors", set_values_it.next());
assertEquals("<select name=\"colors\" size=\"3\" multiple=\"multiple\"><option value=\"black\">black</option><option value=\"red\">red spots</option><option value=\"green\">green spots</option><option value=\"blue\">blue spots</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div></div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamecolors", SelectInListEnum.class, "colors", null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:templatenamecolors", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenamecolors", set_values_it.next());
assertEquals("<select name=\"colors\" size=\"3\" multiple=\"multiple\"><option value=\"black\">black</option><option value=\"red\">red spots</option><option value=\"green\">green spots</option><option value=\"blue\">blue spots</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div></div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamecolors", new ConstrainedProperty("colors").inList("black", "red", null, "green", "blue").defaultValue("green"), null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:templatenamecolors", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenamecolors", set_values_it.next());
assertEquals("<select name=\"colors\" size=\"3\" multiple=\"multiple\"><option value=\"black\">black</option><option value=\"red\">red spots</option><option value=\"green\" selected=\"selected\">green spots</option><option value=\"blue\">blue spots</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div>green spots</div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamecolors", SelectInListEnum.class, new ConstrainedProperty("colors").defaultValue("green"), null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:templatenamecolors", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenamecolors", set_values_it.next());
assertEquals("<select name=\"colors\" size=\"3\" multiple=\"multiple\"><option value=\"black\">black</option><option value=\"red\">red spots</option><option value=\"green\" selected=\"selected\">green spots</option><option value=\"blue\">blue spots</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div>green spots</div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamecolors", new ConstrainedProperty("colors").inList("black", "red", null, "green", "blue").defaultValue("green"), new String[] {null, "red"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:templatenamecolors", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenamecolors", set_values_it.next());
assertEquals("<select name=\"colors\" size=\"3\" multiple=\"multiple\"><option value=\"black\">black</option><option value=\"red\" selected=\"selected\">red spots</option><option value=\"green\">green spots</option><option value=\"blue\">blue spots</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div>green spots</div><div>red spots</div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamecolors", SelectInListEnum.class, new ConstrainedProperty("colors").defaultValue("green"), new String[] {null, "red"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:templatenamecolors", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenamecolors", set_values_it.next());
assertEquals("<select name=\"colors\" size=\"3\" multiple=\"multiple\"><option value=\"black\">black</option><option value=\"red\" selected=\"selected\">red spots</option><option value=\"green\">green spots</option><option value=\"blue\">blue spots</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div>green spots</div><div>red spots</div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamecolors", new ConstrainedProperty("colors").inList("black", "red", null, "green", "blue"), new String[] {"red", "blue"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:templatenamecolors", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenamecolors", set_values_it.next());
assertEquals("<select name=\"colors\" size=\"3\" multiple=\"multiple\"><option value=\"black\">black</option><option value=\"red\" selected=\"selected\">red spots</option><option value=\"green\">green spots</option><option value=\"blue\" selected=\"selected\">blue spots</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div>red spots</div><div>blue spots</div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamecolors", SelectInListEnum.class, "colors", new String[] {"red", "blue"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:templatenamecolors", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenamecolors", set_values_it.next());
assertEquals("<select name=\"colors\" size=\"3\" multiple=\"multiple\"><option value=\"black\">black</option><option value=\"red\" selected=\"selected\">red spots</option><option value=\"green\">green spots</option><option value=\"blue\" selected=\"selected\">blue spots</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div>red spots</div><div>blue spots</div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamecolors", new ConstrainedProperty("colors").inList("black", "red", null, "green", "blue").defaultValue("green"), new String[] {"black", "red"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:templatenamecolors", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenamecolors", set_values_it.next());
assertEquals("<select name=\"colors\" size=\"3\" multiple=\"multiple\"><option value=\"black\" selected=\"selected\">black</option><option value=\"red\" selected=\"selected\">red spots</option><option value=\"green\">green spots</option><option value=\"blue\">blue spots</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div>black</div><div>red spots</div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamecolors", SelectInListEnum.class, new ConstrainedProperty("colors").defaultValue("green"), new String[] {"black", "red"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:templatenamecolors", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenamecolors", set_values_it.next());
assertEquals("<select name=\"colors\" size=\"3\" multiple=\"multiple\"><option value=\"black\" selected=\"selected\">black</option><option value=\"red\" selected=\"selected\">red spots</option><option value=\"green\">green spots</option><option value=\"blue\">blue spots</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div>black</div><div>red spots</div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamecolors", new ConstrainedProperty("colors").inList("black", "red", null, "green", "blue"), new String[] {"orange"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:templatenamecolors", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenamecolors", set_values_it.next());
assertEquals("<select name=\"colors\" size=\"3\" multiple=\"multiple\"><option value=\"black\">black</option><option value=\"red\">red spots</option><option value=\"green\">green spots</option><option value=\"blue\">blue spots</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div>orange</div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.replaceField(template, "templatenamecolors", SelectInListEnum.class, "colors", new String[] {"orange"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:templatenamecolors", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenamecolors", set_values_it.next());
assertEquals("<select name=\"colors\" size=\"3\" multiple=\"multiple\"><option value=\"black\">black</option><option value=\"red\">red spots</option><option value=\"green\">green spots</option><option value=\"blue\">blue spots</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div>orange</div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
template.setValue("FORM:SELECT:templatenamecolors", "already set");
template.setValue("FORM:DISPLAY:templatenamecolors", "already set too");
set_values = builder.replaceField(template, "templatenamecolors", new ConstrainedProperty("colors"), null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:templatenamecolors", set_values_it.next());
assertEquals("FORM:DISPLAY:templatenamecolors", set_values_it.next());
assertEquals("<select name=\"colors\"></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div></div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
}
public void testGenerateFieldSelectWithOutOfListDefault()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Iterator<String> set_values_it;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
set_values = builder.generateField(template, new ConstrainedProperty("colors").inList("black", "red", null, "blue").defaultValue("green"), null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:colors", set_values_it.next());
assertEquals("FORM:DISPLAY:colors", set_values_it.next());
assertEquals("<select name=\"colors\" size=\"3\" multiple=\"multiple\"><option value=\"green\" selected=\"selected\">green spots</option><option value=\"black\">black</option><option value=\"red\">red spots</option><option value=\"blue\">blue spots</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div>green spots</div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, SelectInListEnum2.class, new ConstrainedProperty("colors").defaultValue("green"), null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:colors", set_values_it.next());
assertEquals("FORM:DISPLAY:colors", set_values_it.next());
assertEquals("<select name=\"colors\" size=\"3\" multiple=\"multiple\"><option value=\"green\" selected=\"selected\">green spots</option><option value=\"black\">black</option><option value=\"red\">red spots</option><option value=\"blue\">blue spots</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div>green spots</div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("colors").inList("black", "red", null, "blue").defaultValue("green"), new String[] {null, "red"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:colors", set_values_it.next());
assertEquals("FORM:DISPLAY:colors", set_values_it.next());
assertEquals("<select name=\"colors\" size=\"3\" multiple=\"multiple\"><option value=\"green\">green spots</option><option value=\"black\">black</option><option value=\"red\" selected=\"selected\">red spots</option><option value=\"blue\">blue spots</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div>green spots</div><div>red spots</div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, SelectInListEnum2.class, new ConstrainedProperty("colors").defaultValue("green"), new String[] {null, "red"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:colors", set_values_it.next());
assertEquals("FORM:DISPLAY:colors", set_values_it.next());
assertEquals("<select name=\"colors\" size=\"3\" multiple=\"multiple\"><option value=\"green\">green spots</option><option value=\"black\">black</option><option value=\"red\" selected=\"selected\">red spots</option><option value=\"blue\">blue spots</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div>green spots</div><div>red spots</div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("colors").inList("black", "red", null, "blue"), new String[] {"red", "blue"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:colors", set_values_it.next());
assertEquals("FORM:DISPLAY:colors", set_values_it.next());
assertEquals("<select name=\"colors\" size=\"3\" multiple=\"multiple\"><option value=\"black\">black</option><option value=\"red\" selected=\"selected\">red spots</option><option value=\"blue\" selected=\"selected\">blue spots</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div>red spots</div><div>blue spots</div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, SelectInListEnum2.class, "colors", new String[] {"red", "blue"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:colors", set_values_it.next());
assertEquals("FORM:DISPLAY:colors", set_values_it.next());
assertEquals("<select name=\"colors\" size=\"3\" multiple=\"multiple\"><option value=\"black\">black</option><option value=\"red\" selected=\"selected\">red spots</option><option value=\"blue\" selected=\"selected\">blue spots</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div>red spots</div><div>blue spots</div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("colors").inList("black", "red", null, "blue").defaultValue("green"), new String[] {"black", "red"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:colors", set_values_it.next());
assertEquals("FORM:DISPLAY:colors", set_values_it.next());
assertEquals("<select name=\"colors\" size=\"3\" multiple=\"multiple\"><option value=\"green\">green spots</option><option value=\"black\" selected=\"selected\">black</option><option value=\"red\" selected=\"selected\">red spots</option><option value=\"blue\">blue spots</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div>black</div><div>red spots</div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, SelectInListEnum2.class, new ConstrainedProperty("colors").defaultValue("green"), new String[] {"black", "red"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:colors", set_values_it.next());
assertEquals("FORM:DISPLAY:colors", set_values_it.next());
assertEquals("<select name=\"colors\" size=\"3\" multiple=\"multiple\"><option value=\"green\">green spots</option><option value=\"black\" selected=\"selected\">black</option><option value=\"red\" selected=\"selected\">red spots</option><option value=\"blue\">blue spots</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div>black</div><div>red spots</div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("colors").inList("black", "red", null, "blue"), new String[] {"orange"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:colors", set_values_it.next());
assertEquals("FORM:DISPLAY:colors", set_values_it.next());
assertEquals("<select name=\"colors\" size=\"3\" multiple=\"multiple\"><option value=\"black\">black</option><option value=\"red\">red spots</option><option value=\"blue\">blue spots</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div>orange</div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, SelectInListEnum2.class, "colors", new String[] {"orange"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:colors", set_values_it.next());
assertEquals("FORM:DISPLAY:colors", set_values_it.next());
assertEquals("<select name=\"colors\" size=\"3\" multiple=\"multiple\"><option value=\"black\">black</option><option value=\"red\">red spots</option><option value=\"blue\">blue spots</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div>orange</div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
}
public void testGenerateFieldSelectPrefix()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
set_values = builder.generateField(template, "colors", null, "more");
assertEquals(1, set_values.size());
assertEquals("FORM:SELECT:morecolors", set_values.iterator().next());
assertEquals("<select name=\"morecolors\"></select>", StringUtils.splitToArray(template.getContent(), "\n")[48]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("colors"), null, "more");
assertEquals(1, set_values.size());
assertEquals("FORM:SELECT:morecolors", set_values.iterator().next());
assertEquals("<select name=\"morecolors\"></select>", StringUtils.splitToArray(template.getContent(), "\n")[48]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("colors").inList("black", "red", null, "green", "blue"), null, "more");
assertEquals(1, set_values.size());
assertEquals("FORM:SELECT:morecolors", set_values.iterator().next());
assertEquals("<select name=\"morecolors\"><option value=\"black\">black</option><option value=\"red\">more red spots</option><option value=\"green\">more green spots</option><option value=\"blue\">more blue spots</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[48]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, SelectInListEnum.class, "colors", null, "more");
assertEquals(1, set_values.size());
assertEquals("FORM:SELECT:morecolors", set_values.iterator().next());
assertEquals("<select name=\"morecolors\"><option value=\"black\">black</option><option value=\"red\">more red spots</option><option value=\"green\">more green spots</option><option value=\"blue\">more blue spots</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[48]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("colors").inList("black", "red", null, "green", "blue").defaultValue("green"), new String[] {"black", "red"}, "more");
assertEquals(1, set_values.size());
assertEquals("FORM:SELECT:morecolors", set_values.iterator().next());
assertEquals("<select name=\"morecolors\"><option value=\"black\" selected=\"selected\">black</option><option value=\"red\" selected=\"selected\">more red spots</option><option value=\"green\">more green spots</option><option value=\"blue\">more blue spots</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[48]);
template.removeValue(set_values.iterator().next());
set_values.clear();
set_values = builder.generateField(template, SelectInListEnum.class, new ConstrainedProperty("colors").defaultValue("green"), new String[] {"black", "red"}, "more");
assertEquals(1, set_values.size());
assertEquals("FORM:SELECT:morecolors", set_values.iterator().next());
assertEquals("<select name=\"morecolors\"><option value=\"black\" selected=\"selected\">black</option><option value=\"red\" selected=\"selected\">more red spots</option><option value=\"green\">more green spots</option><option value=\"blue\">more blue spots</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[48]);
template.removeValue(set_values.iterator().next());
set_values.clear();
template.setValue("FORM:SELECT:morecolors", "already set");
set_values = builder.generateField(template, new ConstrainedProperty("colors"), null, "more");
assertEquals(0, set_values.size());
assertEquals("already set", StringUtils.splitToArray(template.getContent(), "\n")[48]);
template.removeValue("FORM:SELECT:morecolors");
}
public void testGenerateFieldSelectDynamic()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Collection<String> set_values;
Iterator<String> set_values_it;
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
template.addResourceBundle(new ListResourceBundle() {
public Object[][] getContents()
{
return new Object[][] {
{"colors:1", "one"},
{"colors:3", "three"},
{"colors:5", "five"},
{"colors:9", "nine"},
};
}});
set_values = builder.generateField(template, new ConstrainedProperty("colors").inList("1", "3", "5", "9").defaultValue("5"), null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:colors", set_values_it.next());
assertEquals("FORM:DISPLAY:colors", set_values_it.next());
assertEquals("<select name=\"colors\" size=\"3\" multiple=\"multiple\"><option value=\"1\">one</option><option value=\"3\">three</option><option value=\"5\" selected=\"selected\">five</option><option value=\"9\">nine</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div>five</div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, SelectInListEnum3.class, new ConstrainedProperty("colors").defaultValue("5"), null, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:colors", set_values_it.next());
assertEquals("FORM:DISPLAY:colors", set_values_it.next());
assertEquals("<select name=\"colors\" size=\"3\" multiple=\"multiple\"><option value=\"1\">one</option><option value=\"3\">three</option><option value=\"5\" selected=\"selected\">five</option><option value=\"9\">nine</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div>five</div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, new ConstrainedProperty("colors").inList("1", "3", "5", "9").defaultValue("5"), new String[] {"3", "9"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:colors", set_values_it.next());
assertEquals("FORM:DISPLAY:colors", set_values_it.next());
assertEquals("<select name=\"colors\" size=\"3\" multiple=\"multiple\"><option value=\"1\">one</option><option value=\"3\" selected=\"selected\">three</option><option value=\"5\">five</option><option value=\"9\" selected=\"selected\">nine</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div>three</div><div>nine</div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, SelectInListEnum3.class, new ConstrainedProperty("colors").defaultValue("5"), new String[] {"3", "9"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:colors", set_values_it.next());
assertEquals("FORM:DISPLAY:colors", set_values_it.next());
assertEquals("<select name=\"colors\" size=\"3\" multiple=\"multiple\"><option value=\"1\">one</option><option value=\"3\" selected=\"selected\">three</option><option value=\"5\">five</option><option value=\"9\" selected=\"selected\">nine</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div>three</div><div>nine</div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
template.clear();
template.addResourceBundle(new ListResourceBundle() {
public Object[][] getContents()
{
return new Object[][] {
{"colors:blue", "blue waves"},
{"colors:red", "red waves"}
};
}});
set_values = builder.generateField(template, new ConstrainedProperty("colors").inList("black", "red", null, "green", "blue").defaultValue("green"), new String[] {null, "red"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:colors", set_values_it.next());
assertEquals("FORM:DISPLAY:colors", set_values_it.next());
assertEquals("<select name=\"colors\" size=\"3\" multiple=\"multiple\"><option value=\"black\">black</option><option value=\"red\" selected=\"selected\">red waves</option><option value=\"green\">green spots</option><option value=\"blue\">blue waves</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div>green spots</div><div>red waves</div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
set_values = builder.generateField(template, SelectInListEnum.class, new ConstrainedProperty("colors").defaultValue("green"), new String[] {null, "red"}, null);
set_values_it = set_values.iterator();
assertEquals(2, set_values.size());
assertEquals("FORM:SELECT:colors", set_values_it.next());
assertEquals("FORM:DISPLAY:colors", set_values_it.next());
assertEquals("<select name=\"colors\" size=\"3\" multiple=\"multiple\"><option value=\"black\">black</option><option value=\"red\" selected=\"selected\">red waves</option><option value=\"green\">green spots</option><option value=\"blue\">blue waves</option></select>", StringUtils.splitToArray(template.getContent(), "\n")[44]);
assertEquals("<div>green spots</div><div>red waves</div>", StringUtils.splitToArray(template.getContent(), "\n")[58]);
set_values_it = set_values.iterator();
template.removeValue(set_values_it.next());
template.removeValue(set_values_it.next());
set_values.clear();
}
public void testRemoveFieldSelect()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
String raw_content = template.getContent();
builder.generateField(template, new ConstrainedProperty("colors").inList("black", "red", null, "green", "blue"), new String[] {"orange"}, null);
assertFalse(raw_content.equals(template.getContent()));
builder.removeField(template, "colors", null);
assertEquals(raw_content, template.getContent());
builder.generateField(template, SelectInListEnum.class, "colors", new String[] {"orange"}, null);
assertFalse(raw_content.equals(template.getContent()));
builder.removeField(template, "colors", null);
assertEquals(raw_content, template.getContent());
}
public void testRemoveFieldSelectRTemplateName()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields_templatename");
String raw_content = template.getContent();
builder.generateField(template, new ConstrainedProperty("templatenamecolors").inList("black", "red", null, "green", "blue"), new String[] {"orange"}, null);
assertFalse(raw_content.equals(template.getContent()));
builder.removeField(template, "templatenamecolors");
assertEquals(raw_content, template.getContent());
builder.generateField(template, SelectInListEnum.class, "templatenamecolors", new String[] {"orange"}, null);
assertFalse(raw_content.equals(template.getContent()));
builder.removeField(template, "templatenamecolors");
assertEquals(raw_content, template.getContent());
}
public void testRemoveFieldSelectPrefix()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
String raw_content = template.getContent();
builder.generateField(template, new ConstrainedProperty("colors").inList("black", "red", null, "green", "blue"), new String[] {"orange"}, "more");
assertFalse(raw_content.equals(template.getContent()));
builder.removeField(template, "colors", "more");
assertEquals(raw_content, template.getContent());
builder.generateField(template, SelectInListEnum.class, "colors", new String[] {"orange"}, "more");
assertFalse(raw_content.equals(template.getContent()));
builder.removeField(template, "colors", "more");
assertEquals(raw_content, template.getContent());
}
public void testGenerateFormClassInvalidArguments()
{
try
{
FormBuilderXhtml builder = new FormBuilderXhtml();
assertEquals(0, builder.generateForm(null, null, null, null).size());
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
String raw_content = template.getContent();
assertNotNull(template);
assertEquals(0, builder.generateForm(template, null, null, null).size());
assertEquals(raw_content, template.getContent());
}
catch (BeanUtilsException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testGenerateFormBeanInvalidArguments()
{
try
{
FormBuilderXhtml builder = new FormBuilderXhtml();
assertEquals(0, builder.generateForm(null, (Object)null, null, null).size());
assertEquals(0, builder.generateForm(null, new Object(), null, null).size());
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
String raw_content = template.getContent();
assertNotNull(template);
assertEquals(0, builder.generateForm(template, (Object)null, null, null).size());
assertEquals(0, builder.generateForm(template, null, null, null).size());
assertEquals(raw_content, template.getContent());
try
{
builder.generateForm(template, (Object)Object.class, null, null);
fail();
}
catch (IllegalArgumentException e)
{
assertTrue(true);
}
}
catch (BeanUtilsException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testGenerateFormBeanNotInstantiatable()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
try
{
builder.generateForm(template, PrivateBeanImpl.class, null, null);
assertEquals(TemplateFactory.ENGINEHTML.get("formbuilder_fields_out_regular_empty").getContent(), template.getContent());
}
catch (BeanUtilsException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testRemoveFormInvalidArguments()
{
try
{
FormBuilderXhtml builder = new FormBuilderXhtml();
builder.removeForm(null, null, null);
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
String raw_content = template.getContent();
assertNotNull(template);
builder.removeForm(template, null, null);
assertEquals(raw_content, template.getContent());
}
catch (BeanUtilsException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testRemoveFormBeanNotInstantiatable()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
String raw_content = template.getContent();
try
{
builder.generateForm(template, RegularBeanImpl.class, null, null);
assertFalse(raw_content.equals(template.getContent()));
builder.removeForm(template, PrivateBeanImpl.class, null);
assertEquals(raw_content, template.getContent());
}
catch (BeanUtilsException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
private static class PrivateBeanImpl extends RegularBeanImpl
{
private PrivateBeanImpl()
{
}
}
public void testGenerateFormConstrainedEmpty()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
try
{
builder.generateForm(template, ConstrainedBeanImpl.class, null, null);
assertEquals(TemplateFactory.ENGINEHTML.get("formbuilder_fields_out_constrained_empty").getContent(), template.getContent());
}
catch (BeanUtilsException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testRemoveFormConstrainedEmpty()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
String raw_content = template.getContent();
try
{
builder.generateForm(template, ConstrainedBeanImpl.class, null, null);
assertFalse(raw_content.equals(template.getContent()));
builder.removeForm(template, ConstrainedBeanImpl.class, null);
assertEquals(raw_content, template.getContent());
}
catch (BeanUtilsException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testGenerateFormConstrainedExternalValues()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
HashMap<String, String[]> values = new HashMap<String, String[]>();
values.put("hidden", new String[] {"canyouseeme"});
values.put("anotherhidden", new String[] {"I can't see you"});
values.put("login", new String[] {"ikke"});
values.put("anotherlogin", new String[] {"jullie"});
values.put("password", new String[] {"secret"});
values.put("anotherpassword", new String[] {"real secret"});
values.put("comment", new String[] {"één comment"});
values.put("anothercomment", new String[] {"this comment"});
values.put("question", new String[] {"a2"});
values.put("anotherquestion", new String[] {"a3"});
values.put("customquestion", new String[] {"a1"});
values.put("anothercustomquestion", new String[] {"a2"});
values.put("options", new String[] {"2"});
values.put("otheroptions", new String[] {"2", "0"});
values.put("customoptions", new String[] {"1"});
values.put("othercustomoptions", new String[] {"2"});
values.put("invoice", new String[] {"1"});
values.put("onemoreinvoice", new String[] {"0"});
values.put("colors", new String[] {"red", "green"});
values.put("morecolors", new String[] {"black"});
values.put("yourcolors", new String[] {"brown"});
try
{
builder.generateForm(template, ConstrainedBeanImpl.class, values, null);
assertEquals(TemplateFactory.ENGINEHTML.get("formbuilder_fields_out_constrained_values").getContent(), template.getContent());
}
catch (BeanUtilsException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testGenerateFormConstrainedBeanValues()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
ConstrainedBeanImpl bean = new ConstrainedBeanImpl();
bean.setHidden("canyouseeme");
bean.setAnotherhidden("I can't see you");
bean.setLogin("ikke");
bean.setAnotherlogin("jullie");
bean.setPassword("secret");
bean.setAnotherpassword("real secret");
bean.setComment("één comment");
bean.setAnothercomment("this comment");
bean.setQuestion(ConstrainedBeanImpl.Question.a2);
bean.setAnotherquestion("a3");
bean.setCustomquestion("a1");
bean.setAnothercustomquestion("a2");
bean.setOptions(new int[] {2});
bean.setOtheroptions(new int[] {2, 0});
bean.setCustomoptions(new int[] {1});
bean.setOthercustomoptions(new int[] {2});
bean.setInvoice(true);
bean.setOnemoreinvoice(false);
bean.setColors(new String[] {"red", "green"});
bean.setMorecolors(new String[] {"black"});
bean.setYourcolors(new String[] {"brown"});
try
{
builder.generateForm(template, bean, null, null);
assertEquals(TemplateFactory.ENGINEHTML.get("formbuilder_fields_out_constrained_values").getContent(), template.getContent());
}
catch (BeanUtilsException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testGenerateFormConstrainedBeanValuesInvalid()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
ConstrainedBeanImpl bean = new ConstrainedBeanImpl();
bean.addValidationError(new ValidationError.INCOMPLETE("that"));
Set<ValidationError> errors = bean.getValidationErrors();
bean.setLogin("1234567");
bean.setAnotherlogin(null);
bean.setPassword(null);
bean.setAnotherpassword("123456789abcd");
bean.setComment(null);
bean.setAnothercomment(null);
bean.setQuestion(null);
bean.setAnotherquestion("a5");
bean.setCustomquestion(null);
bean.setAnothercustomquestion("a6");
bean.setOptions(new int[] {1});
bean.setOtheroptions(null);
bean.setCustomoptions(new int[] {1, 0});
bean.setOthercustomoptions(new int[] {4});
bean.setInvoice(false);
bean.setOnemoreinvoice(true);
bean.setColors(new String[] {"red", "green", "black"});
bean.setMorecolors(null);
bean.setYourcolors(new String[] {"white"});
try
{
builder.generateForm(template, bean, null, null);
assertEquals(TemplateFactory.ENGINEHTML.get("formbuilder_fields_out_constrained_invalid").getContent(), template.getContent());
}
catch (BeanUtilsException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
assertSame(errors, bean.getValidationErrors());
}
public void testGenerateFormConstrainedEmptyPrefix()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_form_prefix");
try
{
builder.generateForm(template, ConstrainedBeanImpl.class, null, "prefix_");
assertEquals(TemplateFactory.ENGINEHTML.get("formbuilder_form_prefix_out_constrained_empty").getContent(), template.getContent());
}
catch (BeanUtilsException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testGenerateFormConstrainedExternalValuesPrefix()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_form_prefix");
HashMap<String, String[]> values = new HashMap<String, String[]>();
values.put("prefix_hidden", new String[] {"canyouseeme"});
values.put("prefix_login", new String[] {"ikke"});
values.put("prefix_password", new String[] {"secret"});
values.put("prefix_comment", new String[] {"één comment"});
values.put("prefix_question", new String[] {"a2"});
values.put("prefix_options", new String[] {"2"});
values.put("prefix_invoice", new String[] {"1"});
values.put("prefix_colors", new String[] {"red", "green"});
values.put("prefix_yourcolors", new String[] {"brown", "orange"});
try
{
builder.generateForm(template, ConstrainedBeanImpl.class, values, "prefix_");
assertEquals(TemplateFactory.ENGINEHTML.get("formbuilder_form_prefix_out_constrained_values").getContent(), template.getContent());
}
catch (BeanUtilsException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testGenerateFormConstrainedBeanValuesPrefix()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_form_prefix");
ConstrainedBeanImpl bean = new ConstrainedBeanImpl();
bean.setHidden("canyouseeme");
bean.setLogin("ikke");
bean.setPassword("secret");
bean.setComment("één comment");
bean.setQuestion(ConstrainedBeanImpl.Question.a2);
bean.setOptions(new int[] {2});
bean.setInvoice(true);
bean.setColors(new String[] {"red", "green"});
bean.setYourcolors(new String[] {"orange", "brown"});
try
{
builder.generateForm(template, bean, null, "prefix_");
assertEquals(TemplateFactory.ENGINEHTML.get("formbuilder_form_prefix_out_constrained_values").getContent(), template.getContent());
}
catch (BeanUtilsException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testRemoveFormConstrainedBeanValuesPrefix()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_form_prefix");
String raw_content = template.getContent();
ConstrainedBeanImpl bean = new ConstrainedBeanImpl();
bean.setHidden("canyouseeme");
bean.setLogin("ikke");
bean.setPassword("secret");
bean.setComment("één comment");
bean.setQuestion(ConstrainedBeanImpl.Question.a2);
bean.setOptions(new int[] {2});
bean.setInvoice(true);
bean.setColors(new String[] {"red", "green"});
bean.setYourcolors(new String[] {"orange", "brown"});
try
{
builder.generateForm(template, bean, null, "prefix_");
assertEquals(TemplateFactory.ENGINEHTML.get("formbuilder_form_prefix_out_constrained_values").getContent(), template.getContent());
assertFalse(raw_content.equals(template.getContent()));
builder.removeForm(template, RegularBeanImpl.class, "prefix_");
assertEquals(raw_content, template.getContent());
}
catch (BeanUtilsException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testRemoveFormConstrainedValues()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
String raw_content = template.getContent();
HashMap<String, String[]> values = new HashMap<String, String[]>();
values.put("hidden", new String[] {"canyouseeme"});
values.put("anotherhidden", new String[] {"I can't see you"});
values.put("login", new String[] {"ikke"});
values.put("anotherlogin", new String[] {"jullie"});
values.put("password", new String[] {"secret"});
values.put("anotherpassword", new String[] {"real secret"});
values.put("comment", new String[] {"één comment"});
values.put("anothercomment", new String[] {"this comment"});
values.put("question", new String[] {"a2"});
values.put("anotherquestion", new String[] {"a3"});
values.put("customquestion", new String[] {"a1"});
values.put("anothercustomquestion", new String[] {"a2"});
values.put("options", new String[] {"2"});
values.put("otheroptions", new String[] {"2", "0"});
values.put("customoptions", new String[] {"1"});
values.put("othercustomoptions", new String[] {"2"});
values.put("invoice", new String[] {"1"});
values.put("onemoreinvoice", new String[] {"0"});
values.put("colors", new String[] {"red", "green"});
values.put("morecolors", new String[] {"black"});
try
{
builder.generateForm(template, ConstrainedBeanImpl.class, values, null);
assertFalse(raw_content.equals(template.getContent()));
builder.removeForm(template, ConstrainedBeanImpl.class, null);
assertEquals(raw_content, template.getContent());
}
catch (BeanUtilsException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testGenerateFormRegularEmpty()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
try
{
builder.generateForm(template, RegularBeanImpl.class, null, null);
assertEquals(TemplateFactory.ENGINEHTML.get("formbuilder_fields_out_regular_empty").getContent(), template.getContent());
}
catch (BeanUtilsException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testRemoveFormRegularEmpty()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
String raw_content = template.getContent();
try
{
builder.generateForm(template, RegularBeanImpl.class, null, null);
assertFalse(raw_content.equals(template.getContent()));
builder.removeForm(template, RegularBeanImpl.class, null);
assertEquals(raw_content, template.getContent());
}
catch (BeanUtilsException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testGenerateFormRegularExternalValues()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
HashMap<String, String[]> values = new HashMap<String, String[]>();
values.put("hidden", new String[] {"canyouseeme"});
values.put("anotherhidden", new String[] {"I can't see you"});
values.put("login", new String[] {"ikke"});
values.put("anotherlogin", new String[] {"jullie"});
values.put("password", new String[] {"secret"});
values.put("anotherpassword", new String[] {"real secret"});
values.put("comment", new String[] {"één comment"});
values.put("anothercomment", new String[] {"this comment"});
values.put("question", new String[] {"a2"});
values.put("anotherquestion", new String[] {"a3"});
values.put("customquestion", new String[] {"a1"});
values.put("anothercustomquestion", new String[] {"a2"});
values.put("options", new String[] {"2"});
values.put("otheroptions", new String[] {"2", "0"});
values.put("customoptions", new String[] {"1"});
values.put("othercustomoptions", new String[] {"2"});
values.put("invoice", new String[] {"1"});
values.put("onemoreinvoice", new String[] {"0"});
values.put("colors", new String[] {"red", "green"});
values.put("morecolors", new String[] {"black"});
values.put("yourcolors", new String[] {"brown"});
try
{
builder.generateForm(template, RegularBeanImpl.class, values, null);
assertEquals(TemplateFactory.ENGINEHTML.get("formbuilder_fields_out_regular_values").getContent(), template.getContent());
}
catch (BeanUtilsException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testGenerateFormRegularBeanValues()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
RegularBeanImpl bean = new RegularBeanImpl();
bean.setHidden("canyouseeme");
bean.setAnotherhidden("I can't see you");
bean.setLogin("ikke");
bean.setAnotherlogin("jullie");
bean.setPassword("secret");
bean.setAnotherpassword("real secret");
bean.setComment("één comment");
bean.setAnothercomment("this comment");
bean.setQuestion("a2");
bean.setAnotherquestion("a3");
bean.setCustomquestion("a1");
bean.setAnothercustomquestion("a2");
bean.setOptions(new int[] {2});
bean.setOtheroptions(new int[] {2, 0});
bean.setCustomoptions(new int[] {1});
bean.setOthercustomoptions(new int[] {2});
bean.setInvoice(true);
bean.setOnemoreinvoice(false);
bean.setColors(new RegularBeanImpl.Color[] {RegularBeanImpl.Color.red, RegularBeanImpl.Color.green});
bean.setMorecolors(new String[] {"black"});
bean.setYourcolors(new String[] {"brown"});
try
{
builder.generateForm(template, bean, null, null);
assertEquals(TemplateFactory.ENGINEHTML.get("formbuilder_fields_out_regular_values").getContent(), template.getContent());
}
catch (BeanUtilsException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testGenerateFormRegularEmptyPrefix()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_form_prefix");
try
{
builder.generateForm(template, RegularBeanImpl.class, null, "prefix_");
assertEquals(TemplateFactory.ENGINEHTML.get("formbuilder_form_prefix_out_regular_empty").getContent(), template.getContent());
}
catch (BeanUtilsException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testGenerateFormRegularExternalValuesPrefix()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_form_prefix");
HashMap<String, String[]> values = new HashMap<String, String[]>();
values.put("prefix_hidden", new String[] {"canyouseeme"});
values.put("prefix_login", new String[] {"ikke"});
values.put("prefix_password", new String[] {"secret"});
values.put("prefix_comment", new String[] {"één comment"});
values.put("prefix_question", new String[] {"a2"});
values.put("prefix_options", new String[] {"2"});
values.put("prefix_invoice", new String[] {"1"});
values.put("prefix_colors", new String[] {"red", "green"});
values.put("prefix_yourcolors", new String[] {"brown"});
try
{
builder.generateForm(template, RegularBeanImpl.class, values, "prefix_");
assertEquals(TemplateFactory.ENGINEHTML.get("formbuilder_form_prefix_out_regular_values").getContent(), template.getContent());
}
catch (BeanUtilsException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testGenerateFormRegularBeanValuesPrefix()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_form_prefix");
RegularBeanImpl bean = new RegularBeanImpl();
bean.setHidden("canyouseeme");
bean.setLogin("ikke");
bean.setPassword("secret");
bean.setComment("één comment");
bean.setQuestion("a2");
bean.setOptions(new int[] {2});
bean.setInvoice(true);
bean.setColors(new RegularBeanImpl.Color[] {RegularBeanImpl.Color.red, RegularBeanImpl.Color.green});
bean.setYourcolors(new String[] {"brown"});
try
{
builder.generateForm(template, bean, null, "prefix_");
assertEquals(TemplateFactory.ENGINEHTML.get("formbuilder_form_prefix_out_regular_values").getContent(), template.getContent());
}
catch (BeanUtilsException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testRemoveFormRegularBeanValuesPrefix()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_form_prefix");
String raw_content = template.getContent();
RegularBeanImpl bean = new RegularBeanImpl();
bean.setHidden("canyouseeme");
bean.setLogin("ikke");
bean.setPassword("secret");
bean.setComment("één comment");
bean.setQuestion("a2");
bean.setOptions(new int[] {2});
bean.setInvoice(true);
bean.setColors(new RegularBeanImpl.Color[] {RegularBeanImpl.Color.red, RegularBeanImpl.Color.green});
bean.setYourcolors(new String[] {"brown"});
try
{
builder.generateForm(template, bean, null, "prefix_");
assertEquals(TemplateFactory.ENGINEHTML.get("formbuilder_form_prefix_out_regular_values").getContent(), template.getContent());
assertFalse(raw_content.equals(template.getContent()));
builder.removeForm(template, RegularBeanImpl.class, "prefix_");
assertEquals(raw_content, template.getContent());
}
catch (BeanUtilsException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testRemoveFormRegularValues()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_fields");
String raw_content = template.getContent();
HashMap<String, String[]> values = new HashMap<String, String[]>();
values.put("hidden", new String[] {"canyouseeme"});
values.put("anotherhidden", new String[] {"I can't see you"});
values.put("login", new String[] {"ikke"});
values.put("anotherlogin", new String[] {"jullie"});
values.put("password", new String[] {"secret"});
values.put("anotherpassword", new String[] {"real secret"});
values.put("comment", new String[] {"één comment"});
values.put("anothercomment", new String[] {"this comment"});
values.put("question", new String[] {"a2"});
values.put("anotherquestion", new String[] {"a3"});
values.put("customquestion", new String[] {"a1"});
values.put("anothercustomquestion", new String[] {"a2"});
values.put("options", new String[] {"2"});
values.put("otheroptions", new String[] {"2", "0"});
values.put("customoptions", new String[] {"1"});
values.put("othercustomoptions", new String[] {"2"});
values.put("invoice", new String[] {"1"});
values.put("onemoreinvoice", new String[] {"0"});
values.put("colors", new String[] {"red", "green"});
values.put("morecolors", new String[] {"black"});
try
{
builder.generateForm(template, RegularBeanImpl.class, values, null);
assertFalse(raw_content.equals(template.getContent()));
builder.removeForm(template, RegularBeanImpl.class, null);
assertEquals(raw_content, template.getContent());
}
catch (BeanUtilsException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
}
public void testSelectParameterInvalidArguments()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
assertEquals(0, builder.selectParameter(null, null, null).size());
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_parameters");
String raw_content = template.getContent();
assertNotNull(template);
assertEquals(0, builder.selectParameter(template, null, null).size());
assertEquals(raw_content, template.getContent());
assertEquals(0, builder.selectParameter(template, "", null).size());
assertEquals(raw_content, template.getContent());
assertEquals(0, builder.selectParameter(template, "name", null).size());
assertEquals(raw_content, template.getContent());
assertEquals(0, builder.selectParameter(template, "name", new String[0]).size());
assertEquals(raw_content, template.getContent());
}
public void testSelectParameterChecked()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_parameters");
assertEquals(0, builder.selectParameter(template, "wantsupdates", new String[] {"false", null}).size());
Collection<String> set_values = builder.selectParameter(template, "wantsupdates", new String[] {"true"});
assertEquals(1, set_values.size());
assertEquals("wantsupdates:CHECKED", set_values.iterator().next());
assertEquals("wantsupdates checked=\"checked\"\n"+
"orange\n"+
"blue\n"+
"red\n"+
"lastname\n"+
"lastname\n", template.getContent());
}
public void testSelectParameterCheckedValues()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_parameters");
assertEquals(0, builder.selectParameter(template, "colors", new String[] {"green"}).size());
Collection<String> set_values = builder.selectParameter(template, "colors", new String[] {"orange", "red", null, "black"});
assertEquals(2, set_values.size());
Iterator<String> it = set_values.iterator();
assertEquals("colors:orange:CHECKED", it.next());
assertEquals("colors:red:CHECKED", it.next());
assertEquals("wantsupdates\n"+
"orange checked=\"checked\"\n"+
"blue\n"+
"red checked=\"checked\"\n"+
"lastname\n"+
"lastname\n", template.getContent());
}
public void testSelectParameterSelectedValues()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_parameters");
assertEquals(0, builder.selectParameter(template, "lastname", new String[] {"Smith"}).size());
Collection<String> set_values = builder.selectParameter(template, "lastname", new String[] {"Smith", null, "Mafessoni"});
assertEquals(1, set_values.size());
Iterator<String> it = set_values.iterator();
assertEquals("lastname:Mafessoni:SELECTED", it.next());
assertEquals("wantsupdates\n"+
"orange\n"+
"blue\n"+
"red\n"+
"lastname\n"+
"lastname selected=\"selected\"\n", template.getContent());
}
public void testUnselectParameterInvalidArguments()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
builder.unselectParameter(null, null, null);
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_parameters");
template.setValue("wantsupdates:CHECKED", "1");
template.setValue("colors:orange:CHECKED", "1");
template.setValue("colors:blue:CHECKED", "1");
template.setValue("colors:red:CHECKED", "1");
template.setValue("lastname:Bevin:SELECTED", "1");
template.setValue("lastname:Mafessoni:SELECTED", "1");
String raw_content = template.getContent();
assertEquals("wantsupdates1\n"+
"orange1\n"+
"blue1\n"+
"red1\n"+
"lastname1\n"+
"lastname1\n", raw_content);
assertNotNull(template);
builder.unselectParameter(template, null, null);
assertEquals(raw_content, template.getContent());
builder.unselectParameter(template, "", null);
assertEquals(raw_content, template.getContent());
builder.unselectParameter(template, "name", null);
assertEquals(raw_content, template.getContent());
builder.unselectParameter(template, "name", new String[0]);
assertEquals(raw_content, template.getContent());
}
public void testUnselectParameterChecked()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
builder.unselectParameter(null, null, null);
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_parameters");
template.setValue("wantsupdates:CHECKED", "1");
template.setValue("colors:orange:CHECKED", "1");
template.setValue("colors:blue:CHECKED", "1");
template.setValue("colors:red:CHECKED", "1");
template.setValue("lastname:Bevin:SELECTED", "1");
template.setValue("lastname:Mafessoni:SELECTED", "1");
String raw_content = template.getContent();
assertEquals("wantsupdates1\n"+
"orange1\n"+
"blue1\n"+
"red1\n"+
"lastname1\n"+
"lastname1\n", raw_content);
builder.unselectParameter(template, "wantsupdates", new String[] {"false", null});
builder.unselectParameter(template, "wantsupdates", new String[] {"true"});
assertEquals("wantsupdates\n"+
"orange1\n"+
"blue1\n"+
"red1\n"+
"lastname1\n"+
"lastname1\n", template.getContent());
}
public void testUnselectParameterCheckedValues()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
builder.unselectParameter(null, null, null);
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_parameters");
template.setValue("wantsupdates:CHECKED", "1");
template.setValue("colors:orange:CHECKED", "1");
template.setValue("colors:blue:CHECKED", "1");
template.setValue("colors:red:CHECKED", "1");
template.setValue("lastname:Bevin:SELECTED", "1");
template.setValue("lastname:Mafessoni:SELECTED", "1");
String raw_content = template.getContent();
assertEquals("wantsupdates1\n"+
"orange1\n"+
"blue1\n"+
"red1\n"+
"lastname1\n"+
"lastname1\n", raw_content);
builder.unselectParameter(template, "colors", new String[] {"green"});
builder.unselectParameter(template, "colors", new String[] {"orange", "red", null, "black"});
assertEquals("wantsupdates1\n"+
"orange\n"+
"blue1\n"+
"red\n"+
"lastname1\n"+
"lastname1\n", template.getContent());
}
public void testUnselectParameterSelectedValues()
{
FormBuilderXhtml builder = new FormBuilderXhtml();
builder.unselectParameter(null, null, null);
Template template = TemplateFactory.ENGINEHTML.get("formbuilder_parameters");
template.setValue("wantsupdates:CHECKED", "1");
template.setValue("colors:orange:CHECKED", "1");
template.setValue("colors:blue:CHECKED", "1");
template.setValue("colors:red:CHECKED", "1");
template.setValue("lastname:Bevin:SELECTED", "1");
template.setValue("lastname:Mafessoni:SELECTED", "1");
String raw_content = template.getContent();
assertEquals("wantsupdates1\n"+
"orange1\n"+
"blue1\n"+
"red1\n"+
"lastname1\n"+
"lastname1\n", raw_content);
builder.unselectParameter(template, "lastname", new String[] {"Smith"});
builder.unselectParameter(template, "lastname", new String[] {"Smith", null, "Mafessoni"});
assertEquals("wantsupdates1\n"+
"orange1\n"+
"blue1\n"+
"red1\n"+
"lastname1\n"+
"lastname\n", template.getContent());
}
}