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