1   package org.seasar.cubby.tags;
2   
3   import java.util.HashMap;
4   
5   import javax.servlet.jsp.PageContext;
6   
7   import org.jdom.Element;
8   import org.seasar.framework.util.StringUtil;
9   
10  public class InputTagTest extends JspTagTestCase {
11  
12  	InputTag tag;
13  	
14  	@Override
15  	protected void setUp() throws Exception {
16  		super.setUp();
17  		tag = new InputTag();
18  		setupSimpleTag(tag);
19  		context.setAttribute("fieldErrors", new HashMap<String, String>(), PageContext.REQUEST_SCOPE);
20  	}
21  
22  	public void testDoTagCheckbox1() throws Exception {
23  		tag.setDynamicAttribute(null, "name", "stringField");
24  		tag.setDynamicAttribute(null, "value", "value1");
25  		tag.setDynamicAttribute(null, "checkedValue", "value1");
26  		tag.setType("checkbox");
27  		tag.doTag();
28  
29  		Element element = getResultAsElementFromContext();
30  		String message = "valueが指定";
31  		assertTrue(message, StringUtil.isEmpty(element.getValue()));
32  		assertEquals(message, 4, element.getAttributes().size());
33  		assertEquals(message, "checkbox", element.getAttributeValue("type"));
34  		assertEquals(message, "value1", element.getAttributeValue("value"));
35  		assertEquals(message, "stringField", element.getAttributeValue("name"));
36  		assertEquals(message, "true", element.getAttributeValue("checked"));
37  //		assertEquals("valueが指定",
38  //				"<input type=\"checkbox\" value=\"value1\" name=\"stringField\"  checked=\"true\"/>\n", context.getResult());
39  	}
40  
41  	public void testDoTagCheckbox2() throws Exception {
42  		tag.setDynamicAttribute(null, "name", "stringField");
43  		tag.setDynamicAttribute(null, "value", "value1");
44  		tag.setDynamicAttribute(null, "checkedValue", "value2");
45  		tag.setType("checkbox");
46  		tag.doTag();
47  
48  		Element element = getResultAsElementFromContext();
49  		String message = "valueが指定";
50  		assertTrue(message, StringUtil.isEmpty(element.getValue()));
51  		assertEquals(message, 3, element.getAttributes().size());
52  		assertEquals(message, "checkbox", element.getAttributeValue("type"));
53  		assertEquals(message, "value1", element.getAttributeValue("value"));
54  		assertEquals(message, "stringField", element.getAttributeValue("name"));
55  //		assertEquals("valueが指定",
56  //				"<input type=\"checkbox\" value=\"value1\" name=\"stringField\"  />\n", context.getResult());
57  	}
58  
59  	public void testDoTagCheckbox3() throws Exception {
60  		FormDto form = new FormDto();
61  		form.setStringField("value1");
62  		context.setAttribute("__form", form, PageContext.REQUEST_SCOPE);
63  		tag.setDynamicAttribute(null, "name", "stringField");
64  		tag.setDynamicAttribute(null, "value", "value1");
65  		tag.setType("checkbox");
66  		tag.doTag();
67  
68  		Element element = getResultAsElementFromContext();
69  		String message = "valueが指定";
70  		assertTrue(message, StringUtil.isEmpty(element.getValue()));
71  		assertEquals(message, 4, element.getAttributes().size());
72  		assertEquals(message, "checkbox", element.getAttributeValue("type"));
73  		assertEquals(message, "value1", element.getAttributeValue("value"));
74  		assertEquals(message, "stringField", element.getAttributeValue("name"));
75  		assertEquals(message, "true", element.getAttributeValue("checked"));
76  //		assertEquals("valueが指定",
77  //				"<input type=\"checkbox\" value=\"value1\" name=\"stringField\"  checked=\"true\"/>\n", context.getResult());
78  	}
79  
80  	public void testDoTagCheckbox4() throws Exception {
81  		FormDto form = new FormDto();
82  		form.setStringField("value2");
83  		context.setAttribute("__form", form, PageContext.REQUEST_SCOPE);
84  		tag.setDynamicAttribute(null, "name", "stringField");
85  		tag.setDynamicAttribute(null, "value", "value1");
86  		tag.setType("checkbox");
87  		tag.doTag();
88  
89  		Element element = getResultAsElementFromContext();
90  		String message = "valueが指定";
91  		assertTrue(message, StringUtil.isEmpty(element.getValue()));
92  		assertEquals(message, 3, element.getAttributes().size());
93  		assertEquals(message, "checkbox", element.getAttributeValue("type"));
94  		assertEquals(message, "value1", element.getAttributeValue("value"));
95  		assertEquals(message, "stringField", element.getAttributeValue("name"));
96  //		assertEquals("valueが指定",
97  //				"<input type=\"checkbox\" value=\"value1\" name=\"stringField\"  />\n", context.getResult());
98  	}
99  
100 	public void testDoTagText1() throws Exception {
101 		tag.setDynamicAttribute(null, "name", "stringField");
102 		tag.setDynamicAttribute(null, "value", "value1");
103 		tag.setType("text");
104 		tag.doTag();
105 
106 		Element element = getResultAsElementFromContext();
107 		String message = "valueが指定";
108 		assertTrue(message, StringUtil.isEmpty(element.getValue()));
109 		assertEquals(message, 3, element.getAttributes().size());
110 		assertEquals(message, "text", element.getAttributeValue("type"));
111 		assertEquals(message, "value1", element.getAttributeValue("value"));
112 		assertEquals(message, "stringField", element.getAttributeValue("name"));
113 //		assertEquals("valueが指定",
114 //				"<input type=\"text\" value=\"value1\" name=\"stringField\" />\n", context.getResult());
115 	}
116 
117 	public void testDoTagText2() throws Exception {
118 		FormDto form = new FormDto();
119 		form.setStringField("value1");
120 		context.setAttribute("__form", form, PageContext.REQUEST_SCOPE);
121 		tag.setDynamicAttribute(null, "name", "stringField");
122 		tag.setDynamicAttribute(null, "value", "value1");
123 		tag.setType("text");
124 		tag.doTag();
125 
126 		Element element = getResultAsElementFromContext();
127 		String message = "valueが指定";
128 		assertTrue(message, StringUtil.isEmpty(element.getValue()));
129 		assertEquals(message, 3, element.getAttributes().size());
130 		assertEquals(message, "text", element.getAttributeValue("type"));
131 		assertEquals(message, "value1", element.getAttributeValue("value"));
132 		assertEquals(message, "stringField", element.getAttributeValue("name"));
133 //		assertEquals("valueが指定",
134 //				"<input type=\"text\" value=\"value1\" name=\"stringField\" />\n", context.getResult());
135 	}
136 }