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