1 package org.seasar.cubby.tags;
2
3 import java.util.Date;
4 import java.util.HashMap;
5
6 import javax.servlet.jsp.JspException;
7 import javax.servlet.jsp.PageContext;
8
9 import org.jdom.Element;
10 import org.seasar.framework.util.StringUtil;
11
12 public class InputTagTest extends JspTagTestCase {
13
14 InputTag tag;
15
16 @Override
17 protected void setUp() throws Exception {
18 super.setUp();
19 tag = new InputTag();
20 setupSimpleTag(tag);
21 context.setAttribute("fieldErrors", new HashMap<String, String>(), PageContext.REQUEST_SCOPE);
22 }
23
24 public void testDoTagCheckboxValueRequred() throws Exception {
25 tag.setDynamicAttribute(null, "name", "stringField");
26 tag.setDynamicAttribute(null, "checkedValue", "value1");
27 tag.setType("checkbox");
28 try {
29 tag.doTag();
30 fail("checkboxではvalue属性は必須");
31 } catch (JspException ex) {
32 assertTrue(true);
33 }
34 }
35
36 public void testDoTagCheckbox1() throws Exception {
37 tag.setDynamicAttribute(null, "name", "stringField");
38 tag.setDynamicAttribute(null, "value", "value1");
39 tag.setDynamicAttribute(null, "checkedValue", "value1");
40 tag.setType("checkbox");
41 tag.doTag();
42
43 Element element = getResultAsElementFromContext();
44 String message = "valueが指定";
45 assertTrue(message, StringUtil.isEmpty(element.getValue()));
46 assertEquals(message, 4, element.getAttributes().size());
47 assertEquals(message, "checkbox", element.getAttributeValue("type"));
48 assertEquals(message, "value1", element.getAttributeValue("value"));
49 assertEquals(message, "stringField", element.getAttributeValue("name"));
50 assertEquals(message, "true", element.getAttributeValue("checked"));
51
52
53 }
54
55 public void testDoTagCheckbox2() throws Exception {
56 tag.setDynamicAttribute(null, "name", "stringField");
57 tag.setDynamicAttribute(null, "value", "value1");
58 tag.setDynamicAttribute(null, "checkedValue", "value2");
59 tag.setType("checkbox");
60 tag.doTag();
61
62 Element element = getResultAsElementFromContext();
63 String message = "valueが指定";
64 assertTrue(message, StringUtil.isEmpty(element.getValue()));
65 assertEquals(message, 3, element.getAttributes().size());
66 assertEquals(message, "checkbox", element.getAttributeValue("type"));
67 assertEquals(message, "value1", element.getAttributeValue("value"));
68 assertEquals(message, "stringField", element.getAttributeValue("name"));
69
70
71 }
72
73 public void testDoTagCheckbox3() throws Exception {
74 FormDto form = new FormDto();
75 form.setStringField("value1");
76 context.setAttribute("__form", form, PageContext.REQUEST_SCOPE);
77 tag.setDynamicAttribute(null, "name", "stringField");
78 tag.setDynamicAttribute(null, "value", "value1");
79 tag.setType("checkbox");
80 tag.doTag();
81
82 Element element = getResultAsElementFromContext();
83 String message = "valueが指定";
84 assertTrue(message, StringUtil.isEmpty(element.getValue()));
85 assertEquals(message, 4, element.getAttributes().size());
86 assertEquals(message, "checkbox", element.getAttributeValue("type"));
87 assertEquals(message, "value1", element.getAttributeValue("value"));
88 assertEquals(message, "stringField", element.getAttributeValue("name"));
89 assertEquals(message, "true", element.getAttributeValue("checked"));
90
91
92 }
93
94 public void testDoTagCheckbox4() throws Exception {
95 FormDto form = new FormDto();
96 form.setStringField("value2");
97 context.setAttribute("__form", form, PageContext.REQUEST_SCOPE);
98 tag.setDynamicAttribute(null, "name", "stringField");
99 tag.setDynamicAttribute(null, "value", "value1");
100 tag.setType("checkbox");
101 tag.doTag();
102
103 Element element = getResultAsElementFromContext();
104 String message = "valueが指定";
105 assertTrue(message, StringUtil.isEmpty(element.getValue()));
106 assertEquals(message, 3, element.getAttributes().size());
107 assertEquals(message, "checkbox", element.getAttributeValue("type"));
108 assertEquals(message, "value1", element.getAttributeValue("value"));
109 assertEquals(message, "stringField", element.getAttributeValue("name"));
110
111
112 }
113
114 public void testDoTagRadioValueRequred() throws Exception {
115 tag.setDynamicAttribute(null, "name", "stringField");
116 tag.setDynamicAttribute(null, "checkedValue", "value1");
117 tag.setType("radio");
118 try {
119 tag.doTag();
120 fail("checkboxではvalue属性は必須");
121 } catch (JspException ex) {
122 assertTrue(true);
123 }
124 }
125
126 public void testDoTagRadio1() throws Exception {
127 tag.setDynamicAttribute(null, "name", "stringField");
128 tag.setDynamicAttribute(null, "value", "value1");
129 tag.setDynamicAttribute(null, "checkedValue", "value1");
130 tag.setType("radio");
131 tag.doTag();
132
133 Element element = getResultAsElementFromContext();
134 String message = "valueが指定";
135 assertTrue(message, StringUtil.isEmpty(element.getValue()));
136 assertEquals(message, 4, element.getAttributes().size());
137 assertEquals(message, "radio", element.getAttributeValue("type"));
138 assertEquals(message, "value1", element.getAttributeValue("value"));
139 assertEquals(message, "stringField", element.getAttributeValue("name"));
140 assertEquals(message, "true", element.getAttributeValue("checked"));
141
142
143 }
144
145 public void testDoTagRadio2() throws Exception {
146 tag.setDynamicAttribute(null, "name", "stringField");
147 tag.setDynamicAttribute(null, "value", "value1");
148 tag.setDynamicAttribute(null, "checkedValue", "value2");
149 tag.setType("radio");
150 tag.doTag();
151
152 Element element = getResultAsElementFromContext();
153 String message = "valueが指定";
154 assertTrue(message, StringUtil.isEmpty(element.getValue()));
155 assertEquals(message, 3, element.getAttributes().size());
156 assertEquals(message, "radio", element.getAttributeValue("type"));
157 assertEquals(message, "value1", element.getAttributeValue("value"));
158 assertEquals(message, "stringField", element.getAttributeValue("name"));
159
160
161 }
162
163 public void testDoTagRadio3() throws Exception {
164 FormDto form = new FormDto();
165 form.setStringField("value1");
166 context.setAttribute("__form", form, PageContext.REQUEST_SCOPE);
167 tag.setDynamicAttribute(null, "name", "stringField");
168 tag.setDynamicAttribute(null, "value", "value1");
169 tag.setType("radio");
170 tag.doTag();
171
172 Element element = getResultAsElementFromContext();
173 String message = "valueが指定";
174 assertTrue(message, StringUtil.isEmpty(element.getValue()));
175 assertEquals(message, 4, element.getAttributes().size());
176 assertEquals(message, "radio", element.getAttributeValue("type"));
177 assertEquals(message, "value1", element.getAttributeValue("value"));
178 assertEquals(message, "stringField", element.getAttributeValue("name"));
179 assertEquals(message, "true", element.getAttributeValue("checked"));
180
181
182 }
183
184 public void testDoTagRadio4() throws Exception {
185 FormDto form = new FormDto();
186 form.setStringField("value2");
187 context.setAttribute("__form", form, PageContext.REQUEST_SCOPE);
188 tag.setDynamicAttribute(null, "name", "stringField");
189 tag.setDynamicAttribute(null, "value", "value1");
190 tag.setType("radio");
191 tag.doTag();
192
193 Element element = getResultAsElementFromContext();
194 String message = "valueが指定";
195 assertTrue(message, StringUtil.isEmpty(element.getValue()));
196 assertEquals(message, 3, element.getAttributes().size());
197 assertEquals(message, "radio", element.getAttributeValue("type"));
198 assertEquals(message, "value1", element.getAttributeValue("value"));
199 assertEquals(message, "stringField", element.getAttributeValue("name"));
200
201
202 }
203
204 public void testDoTagText1() throws Exception {
205 tag.setDynamicAttribute(null, "name", "stringField");
206 tag.setDynamicAttribute(null, "value", "value1");
207 tag.setType("text");
208 tag.doTag();
209
210 Element element = getResultAsElementFromContext();
211 String message = "valueが指定";
212 assertTrue(message, StringUtil.isEmpty(element.getValue()));
213 assertEquals(message, 3, element.getAttributes().size());
214 assertEquals(message, "text", element.getAttributeValue("type"));
215 assertEquals(message, "value1", element.getAttributeValue("value"));
216 assertEquals(message, "stringField", element.getAttributeValue("name"));
217
218
219 }
220
221 public void testDoTagText2() throws Exception {
222 FormDto form = new FormDto();
223 form.setStringField("value1");
224 context.setAttribute("__form", form, PageContext.REQUEST_SCOPE);
225 tag.setDynamicAttribute(null, "name", "stringField");
226 tag.setDynamicAttribute(null, "value", "value1");
227 tag.setType("text");
228 tag.doTag();
229
230 Element element = getResultAsElementFromContext();
231 String message = "valueが指定";
232 assertTrue(message, StringUtil.isEmpty(element.getValue()));
233 assertEquals(message, 3, element.getAttributes().size());
234 assertEquals(message, "text", element.getAttributeValue("type"));
235 assertEquals(message, "value1", element.getAttributeValue("value"));
236 assertEquals(message, "stringField", element.getAttributeValue("name"));
237
238
239 }
240
241 public void testDoTagTextDate() throws Exception {
242 FormDto form = new FormDto();
243 form.setStringField("value1");
244 context.setAttribute("__form", form, PageContext.REQUEST_SCOPE);
245 tag.setDynamicAttribute(null, "name", "dateField");
246 tag.setDynamicAttribute(null, "value", new Date());
247 tag.setType("text");
248 tag.doTag();
249
250 Element element = getResultAsElementFromContext();
251 String message = "valueが指定";
252 assertTrue(message, StringUtil.isEmpty(element.getValue()));
253 assertEquals(message, 3, element.getAttributes().size());
254 assertEquals(message, "text", element.getAttributeValue("type"));
255
256 assertEquals(message, "dateField", element.getAttributeValue("name"));
257
258
259 }
260
261 }