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