package test;
import java.util.ArrayList;
import java.util.List;
import junit.framework.TestCase;
import com.akjava.lib.common.tag.LabelAndValue;
import com.akjava.lib.common.tag.Tag;
import com.akjava.lib.common.tag.TagBuilder;
public class TagTest extends TestCase{
public void doTest(String collect,Tag tag){
assertEquals(collect, tag.toString());
}
//text
//empty
public void testInputText1(){
Tag tag=TagBuilder.createText("name", "");
doTest("<input type=\"text\" name=\"name\" value=\"\"/>",tag);
}
//null
public void testInputText2(){
Tag tag=TagBuilder.createText("name", null);
doTest("<input type=\"text\" name=\"name\"/>",tag);
}
//multiline
public void testInputText3(){
Tag tag=TagBuilder.createText("name", "hello world\nline2");
doTest("<input type=\"text\" name=\"name\" value=\"hello world\nline2\"/>",tag);
}
public void testInputQuot(){
Tag tag=TagBuilder.createText("name", "\"");
doTest("<input type=\"text\" name=\"name\" value=\""\"/>",tag);
}
//hidden
//empty
public void testHidden1(){
Tag tag=TagBuilder.createHidden("name", "");
doTest("<input type=\"hidden\" name=\"name\" value=\"\"/>",tag);
}
//null
public void testHidden2(){
Tag tag=TagBuilder.createHidden("name", null);
doTest("<input type=\"hidden\" name=\"name\"/>",tag);
}
//empty not allowed
public void testAttribute1(){
Tag tag=TagBuilder.createHidden("name", null);
try{
tag.setAttribute("");
}catch(IllegalArgumentException e){
assertTrue(true);
return;
}
fail();
}
//not start it
public void testAttribute2(){
Tag tag=TagBuilder.createHidden("name", null);
try{
tag.setAttribute("_");
}catch(IllegalArgumentException e){
assertTrue(true);
return;
}
fail();
}
//this ok
public void testAttribute3(){
Tag tag=TagBuilder.createHidden("name", null);
try{
tag.setAttribute("a_9");
}catch(IllegalArgumentException e){
fail();
return;
}
assertTrue(true);
}
//checkbox
//simple
public void testCheckbox1(){
Tag tag=TagBuilder.createCheckbox("name", "v",false);
doTest("<input type=\"checkbox\" name=\"name\" value=\"v\"/>",tag);
}
//empty
public void testCheckbox2(){
Tag tag=TagBuilder.createCheckbox("name", "",false);
doTest("<input type=\"checkbox\" name=\"name\" value=\"\"/>",tag);
}
//null
public void testCheckbox3(){
Tag tag=TagBuilder.createCheckbox("name", null,false);
doTest("<input type=\"checkbox\" name=\"name\"/>",tag);
}
//checkd
public void testCheckbox4(){
Tag tag=TagBuilder.createCheckbox("name", "v",true);
doTest("<input type=\"checkbox\" name=\"name\" value=\"v\" checked=\"checked\"/>",tag);
}
//radio
//single
public void testRadio(){
LabelAndValue lvalue=new LabelAndValue("test", "TEST");
Tag tag=TagBuilder.createRadio("name", lvalue);
doTest("<input type=\"radio\" name=\"name\" value=\"TEST\"/>",tag);
}
public void testRadioText(){
LabelAndValue lvalue=new LabelAndValue("test", "TEST");
String tagText=TagBuilder.createRadioText("name", lvalue);
assertEquals("<input type=\"radio\" name=\"name\" value=\"TEST\"/>test",tagText);
}
//double
public void testRadio2Text(){
List<LabelAndValue> lvalues=new ArrayList<LabelAndValue>();
lvalues.add(new LabelAndValue("test1", "TEST1"));
lvalues.add(new LabelAndValue("test2", "TEST2"));
String tagText=TagBuilder.createRadioText("name", lvalues);
assertEquals("<input type=\"radio\" name=\"name\" value=\"TEST1\"/>test1\n<input type=\"radio\" name=\"name\" value=\"TEST2\"/>test2",tagText);
}
//one selected
public void testRadio3Text(){
List<LabelAndValue> lvalues=new ArrayList<LabelAndValue>();
lvalues.add(new LabelAndValue("test1", "TEST1"));
lvalues.add(new LabelAndValue("test2", "TEST2",true));
String tagText=TagBuilder.createRadioText("name", lvalues);
assertEquals("<input type=\"radio\" name=\"name\" value=\"TEST1\"/>test1\n<input type=\"radio\" name=\"name\" value=\"TEST2\" checked=\"checked\"/>test2",tagText);
}
//textarea
//empty
public void testTextArea1(){
Tag tag=TagBuilder.createTextArea("name", "hello");
doTest("<textarea name=\"name\">hello</textarea>",tag);
}
//null
public void testTextArea2(){
Tag tag=TagBuilder.createTextArea("name", null);
doTest("<textarea name=\"name\"></textarea>",tag);
}
//multiline
public void testTextArea3(){
Tag tag=TagBuilder.createTextArea("name", "hello world\nline2");
doTest("<textarea name=\"name\">hello world\nline2</textarea>",tag);
}
//select
//single
public void testSelect1(){
List<LabelAndValue> lvalues=new ArrayList<LabelAndValue>();
lvalues.add(new LabelAndValue("test1", "TEST1"));
Tag tag=TagBuilder.createSelect("name",lvalues,false);
doTest("<select name=\"name\"><option value=\"TEST1\">test1</select>",tag);
}
//double
public void testSelect2(){
List<LabelAndValue> lvalues=new ArrayList<LabelAndValue>();
lvalues.add(new LabelAndValue("test1", "TEST1"));
lvalues.add(new LabelAndValue("test2", "TEST2"));
Tag tag=TagBuilder.createSelect("name",lvalues,false);
doTest("<select name=\"name\"><option value=\"TEST1\">test1\n<option value=\"TEST2\">test2</select>",tag);
}
//selected
public void testSelect3(){
List<LabelAndValue> lvalues=new ArrayList<LabelAndValue>();
lvalues.add(new LabelAndValue("test1", "TEST1"));
lvalues.add(new LabelAndValue("test2", "TEST2",true));
Tag tag=TagBuilder.createSelect("name",lvalues,false);
doTest("<select name=\"name\"><option value=\"TEST1\">test1\n<option value=\"TEST2\" selected>test2</select>",tag);
}
//multiple
public void testSelect4(){
List<LabelAndValue> lvalues=new ArrayList<LabelAndValue>();
lvalues.add(new LabelAndValue("test1", "TEST1",true));
lvalues.add(new LabelAndValue("test2", "TEST2",true));
Tag tag=TagBuilder.createSelect("name",lvalues,true);
doTest("<select name=\"name\" multiple=\"multiple\"><option value=\"TEST1\" selected>test1\n<option value=\"TEST2\" selected>test2</select>",tag);
}
//TODO
//submit
//reset
//form
}