1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.seasar.cubby.tags;
17
18 import java.util.HashMap;
19 import java.util.Map;
20
21 import javax.servlet.jsp.JspContext;
22 import javax.servlet.jsp.JspException;
23 import javax.servlet.jsp.PageContext;
24
25 import org.jdom.Element;
26 import org.seasar.cubby.CubbyConstants;
27 import org.seasar.framework.util.StringUtil;
28
29 public class InputTagTest extends SimpleTagTestCase {
30
31 private InputTag tag;
32
33 @Override
34 protected void setUp() throws Exception {
35 super.setUp();
36 tag = new InputTag();
37 setupSimpleTag(tag);
38 setupErrors(context);
39 setUpParams(context);
40 Map<String, String[]> map = new HashMap<String, String[]>();
41 map.put("stringField", new String[] { "outputValue" });
42 tag.setParent(new MockFormTag(map));
43 }
44
45 void setUpParams(JspContext context) {
46 Map<String, Object[]> map = new HashMap<String, Object[]>();
47 map.put("stringField", new String[] { "paramsValue" });
48 context.setAttribute(CubbyConstants.ATTR_PARAMS, map,
49 PageContext.REQUEST_SCOPE);
50 }
51
52 void setValidationFail() {
53 context.setAttribute(CubbyConstants.ATTR_VALIDATION_FAIL, Boolean.TRUE,
54 PageContext.REQUEST_SCOPE);
55 }
56
57 public void testDoTagCheckboxValueRequred() throws Exception {
58 tag.setName("stringField");
59 tag.setCheckedValue("value1");
60 tag.setType("checkbox");
61 try {
62 tag.doTag();
63 fail("checkboxではvalue属性は必須");
64 } catch (JspException ex) {
65 System.out.println(ex);
66 assertTrue(true);
67 }
68 }
69
70 public void testDoTagCheckbox1() throws Exception {
71 tag.setType("checkbox");
72 tag.setName("stringField");
73 tag.setValue("outputValue");
74 tag.doTag();
75
76 System.out.println(context.getResult());
77
78 Element element = getResultAsElementFromContext();
79 String message = "valueが指定";
80 assertTrue(message, StringUtil.isEmpty(element.getValue()));
81 assertEquals(message, 4, element.getAttributes().size());
82 assertEquals(message, "checkbox", element.getAttributeValue("type"));
83 assertEquals(message, "outputValue", element.getAttributeValue("value"));
84 assertEquals(message, "stringField", element.getAttributeValue("name"));
85 assertEquals(message, "checked", element.getAttributeValue("checked"));
86
87
88
89 }
90
91 public void testDoTagCheckbox2() throws Exception {
92 tag.setType("checkbox");
93 tag.setName("stringField");
94 tag.setValue("value1");
95 tag.doTag();
96
97 System.out.println(context.getResult());
98
99 Element element = getResultAsElementFromContext();
100 String message = "valueが指定";
101 assertTrue(message, StringUtil.isEmpty(element.getValue()));
102 assertEquals(message, 3, element.getAttributes().size());
103 assertEquals(message, "checkbox", element.getAttributeValue("type"));
104 assertEquals(message, "value1", element.getAttributeValue("value"));
105 assertEquals(message, "stringField", element.getAttributeValue("name"));
106
107
108
109 }
110
111 public void testDoTagCheckboxWithCheckedValue1() throws Exception {
112 tag.setType("checkbox");
113 tag.setName("stringField");
114 tag.setValue("value1");
115 tag.setCheckedValue("checkedValue");
116 tag.doTag();
117
118 System.out.println(context.getResult());
119
120 Element element = getResultAsElementFromContext();
121 String message = "valueが指定";
122 assertTrue(message, StringUtil.isEmpty(element.getValue()));
123 assertEquals(message, 3, element.getAttributes().size());
124 assertEquals(message, "checkbox", element.getAttributeValue("type"));
125 assertEquals(message, "value1", element.getAttributeValue("value"));
126 assertEquals(message, "stringField", element.getAttributeValue("name"));
127
128
129
130 }
131
132 public void testDoTagCheckboxWithCheckedValue2() throws Exception {
133 tag.setType("checkbox");
134 tag.setName("stringField");
135 tag.setValue("value1");
136 tag.setCheckedValue("value1");
137 tag.doTag();
138
139 System.out.println(context.getResult());
140
141 Element element = getResultAsElementFromContext();
142 String message = "valueが指定";
143 assertTrue(message, StringUtil.isEmpty(element.getValue()));
144 assertEquals(message, 4, element.getAttributes().size());
145 assertEquals(message, "checkbox", element.getAttributeValue("type"));
146 assertEquals(message, "value1", element.getAttributeValue("value"));
147 assertEquals(message, "stringField", element.getAttributeValue("name"));
148 assertEquals(message, "checked", element.getAttributeValue("checked"));
149
150
151
152 }
153
154 public void testDoTagCheckboxWithCheckedValueError1() throws Exception {
155 setValidationFail();
156
157 tag.setType("checkbox");
158 tag.setName("stringField");
159 tag.setValue("value1");
160 tag.setCheckedValue("value1");
161 tag.doTag();
162 System.out.println(context.getResult());
163
164 Element element = getResultAsElementFromContext();
165 String message = "valueが指定";
166 assertTrue(message, StringUtil.isEmpty(element.getValue()));
167 assertEquals(message, 3, element.getAttributes().size());
168 assertEquals(message, "checkbox", element.getAttributeValue("type"));
169 assertEquals(message, "value1", element.getAttributeValue("value"));
170 assertEquals(message, "stringField", element.getAttributeValue("name"));
171
172
173
174 }
175
176 public void testDoTagCheckboxError1() throws Exception {
177 setValidationFail();
178
179 tag.setType("checkbox");
180 tag.setName("stringField");
181 tag.setValue("paramsValue");
182 tag.doTag();
183
184 System.out.println(context.getResult());
185
186 Element element = getResultAsElementFromContext();
187 String message = "valueが指定";
188 assertTrue(message, StringUtil.isEmpty(element.getValue()));
189 assertEquals(message, 4, element.getAttributes().size());
190 assertEquals(message, "checkbox", element.getAttributeValue("type"));
191 assertEquals(message, "paramsValue", element.getAttributeValue("value"));
192 assertEquals(message, "stringField", element.getAttributeValue("name"));
193 assertEquals(message, "checked", element.getAttributeValue("checked"));
194
195
196
197 }
198
199 public void testDoTagCheckboxError2() throws Exception {
200 setValidationFail();
201
202 tag.setType("checkbox");
203 tag.setName("stringField");
204 tag.setValue("value1");
205 tag.doTag();
206
207 System.out.println(context.getResult());
208
209 Element element = getResultAsElementFromContext();
210 String message = "valueが指定";
211 assertTrue(message, StringUtil.isEmpty(element.getValue()));
212 assertEquals(message, 3, element.getAttributes().size());
213 assertEquals(message, "checkbox", element.getAttributeValue("type"));
214 assertEquals(message, "value1", element.getAttributeValue("value"));
215 assertEquals(message, "stringField", element.getAttributeValue("name"));
216
217
218
219 }
220
221 public void testDoTagRadioValueRequred() throws Exception {
222 tag.setName("stringField");
223 tag.setCheckedValue("value1");
224 tag.setType("radio");
225 try {
226 tag.doTag();
227 fail("radioではvalue属性は必須");
228 } catch (JspException ex) {
229 assertTrue(true);
230 }
231 }
232
233 public void testDoTagRadio1() throws Exception {
234 tag.setType("radio");
235 tag.setName("stringField");
236 tag.setValue("outputValue");
237 tag.doTag();
238
239 System.out.println(context.getResult());
240
241 Element element = getResultAsElementFromContext();
242 String message = "valueが指定";
243 assertTrue(message, StringUtil.isEmpty(element.getValue()));
244 assertEquals(message, 4, element.getAttributes().size());
245 assertEquals(message, "radio", element.getAttributeValue("type"));
246 assertEquals(message, "outputValue", element.getAttributeValue("value"));
247 assertEquals(message, "stringField", element.getAttributeValue("name"));
248 assertEquals(message, "checked", element.getAttributeValue("checked"));
249
250
251
252 }
253
254 public void testDoTagRadio2() throws Exception {
255 tag.setType("radio");
256 tag.setName("stringField");
257 tag.setValue("value1");
258 tag.doTag();
259
260 System.out.println(context.getResult());
261
262 Element element = getResultAsElementFromContext();
263 String message = "valueが指定";
264 assertTrue(message, StringUtil.isEmpty(element.getValue()));
265 assertEquals(message, 3, element.getAttributes().size());
266 assertEquals(message, "radio", element.getAttributeValue("type"));
267 assertEquals(message, "value1", element.getAttributeValue("value"));
268 assertEquals(message, "stringField", element.getAttributeValue("name"));
269
270
271
272 }
273
274 public void testDoTagRadioError1() throws Exception {
275 setValidationFail();
276
277 tag.setType("radio");
278 tag.setName("stringField");
279 tag.setValue("paramsValue");
280 tag.doTag();
281
282 System.out.println(context.getResult());
283
284 Element element = getResultAsElementFromContext();
285 String message = "valueが指定";
286 assertTrue(message, StringUtil.isEmpty(element.getValue()));
287 assertEquals(message, 4, element.getAttributes().size());
288 assertEquals(message, "radio", element.getAttributeValue("type"));
289 assertEquals(message, "paramsValue", element.getAttributeValue("value"));
290 assertEquals(message, "stringField", element.getAttributeValue("name"));
291 assertEquals(message, "checked", element.getAttributeValue("checked"));
292
293
294
295 }
296
297 public void testDoTagRadioError2() throws Exception {
298 setValidationFail();
299
300 tag.setType("radio");
301 tag.setName("stringField");
302 tag.setValue("value1");
303 tag.doTag();
304
305 System.out.println(context.getResult());
306
307 Element element = getResultAsElementFromContext();
308 String message = "valueが指定";
309 assertTrue(message, StringUtil.isEmpty(element.getValue()));
310 assertEquals(message, 3, element.getAttributes().size());
311 assertEquals(message, "radio", element.getAttributeValue("type"));
312 assertEquals(message, "value1", element.getAttributeValue("value"));
313 assertEquals(message, "stringField", element.getAttributeValue("name"));
314
315
316
317 }
318
319 public void testDoTagText1() throws Exception {
320 tag.setType("text");
321 tag.setName("stringField");
322 tag.setValue("value1");
323 tag.doTag();
324
325 System.out.println(context.getResult());
326
327 Element element = getResultAsElementFromContext();
328 String message = "valueが指定";
329 assertTrue(message, StringUtil.isEmpty(element.getValue()));
330 assertEquals(message, 3, element.getAttributes().size());
331 assertEquals(message, "text", element.getAttributeValue("type"));
332 assertEquals(message, "value1", element.getAttributeValue("value"));
333 assertEquals(message, "stringField", element.getAttributeValue("name"));
334
335
336
337 }
338
339 public void testDoTagText2() throws Exception {
340 tag.setType("text");
341 tag.setName("stringField");
342
343 tag.doTag();
344
345 System.out.println(context.getResult());
346
347 Element element = getResultAsElementFromContext();
348 String message = "valueが指定";
349 assertTrue(message, StringUtil.isEmpty(element.getValue()));
350 assertEquals(message, 3, element.getAttributes().size());
351 assertEquals(message, "text", element.getAttributeValue("type"));
352 assertEquals(message, "outputValue", element.getAttributeValue("value"));
353 assertEquals(message, "stringField", element.getAttributeValue("name"));
354
355
356
357 }
358
359 public void testDoTagTextError1() throws Exception {
360 setValidationFail();
361
362 tag.setType("text");
363 tag.setName("stringField");
364 tag.setValue("value1");
365 tag.doTag();
366
367 System.out.println(context.getResult());
368
369 Element element = getResultAsElementFromContext();
370 String message = "valueが指定";
371 assertTrue(message, StringUtil.isEmpty(element.getValue()));
372 assertEquals(message, 3, element.getAttributes().size());
373 assertEquals(message, "text", element.getAttributeValue("type"));
374 assertEquals(message, "paramsValue", element.getAttributeValue("value"));
375 assertEquals(message, "stringField", element.getAttributeValue("name"));
376
377
378
379 }
380
381 public void testDoTagTextError2() throws Exception {
382 setValidationFail();
383
384 tag.setType("text");
385 tag.setName("stringField");
386
387 tag.doTag();
388
389 System.out.println(context.getResult());
390
391 Element element = getResultAsElementFromContext();
392 String message = "valueが指定";
393 assertTrue(message, StringUtil.isEmpty(element.getValue()));
394 assertEquals(message, 3, element.getAttributes().size());
395 assertEquals(message, "text", element.getAttributeValue("type"));
396 assertEquals(message, "paramsValue", element.getAttributeValue("value"));
397 assertEquals(message, "stringField", element.getAttributeValue("name"));
398
399
400
401 }
402
403 }