1 package org.seasar.cubby.tags;
2
3 import java.util.HashMap;
4
5 import javax.servlet.jsp.PageContext;
6
7 import org.jdom.Element;
8
9 public class FormTagTest extends JspTagTestCase {
10
11 FormTag tag;
12
13 @Override
14 protected void setUp() throws Exception {
15 super.setUp();
16 tag = new FormTag();
17 setupBodyTag(tag);
18 context.setAttribute("fieldErrors", new HashMap<String, String>(), PageContext.REQUEST_SCOPE);
19 }
20
21 public void testDoTag1() throws Exception {
22 FormDto form = new FormDto();
23 form.setStringField("value1");
24 tag.setValue(form);
25 tag.setDynamicAttribute(null, "action", "/todo/save");
26 tag.doStartTag();
27 tag.doEndTag();
28
29 Element element = getResultAsElementFromContext();
30 String message = "フォームオブジェクトが指定";
31 assertEquals(message, 1, element.getAttributes().size());
32 assertEquals(message, "/todo/save", element.getAttributeValue("action"));
33 assertNull("フォームオブジェクトは除去されていること", context.findAttribute("__form"));
34
35
36 }
37
38 public void testDoTag2() throws Exception {
39 FormDto form = new FormDto();
40 form.setStringField("value1");
41 tag.setValue(form);
42 tag.setDynamicAttribute(null, "action", "/todo/save");
43 TextareaTag textareaTag = new TextareaTag();
44 setupSimpleTag(textareaTag);
45 textareaTag.setDynamicAttribute(null, "name", "stringField");
46 jspBody.addChildTag(textareaTag);
47 tag.doStartTag();
48 textareaTag.doTag();
49 tag.doEndTag();
50
51 Element element = getResultAsElementFromContext();
52 String message = "フォームオブジェクトが指定、子要素がある場合";
53 assertEquals(message, 1, element.getAttributes().size());
54 assertEquals(message, "/todo/save", element.getAttributeValue("action"));
55 assertEquals(message, 1, element.getChildren().size());
56 Element child = element.getChild("textarea");
57 assertEquals(message, 1, child.getAttributes().size());
58 assertEquals(message, "stringField", child.getAttributeValue("name"));
59 assertEquals(message, "value1", child.getValue());
60
61
62
63
64 }
65 public void testDoTagEmptyBody() throws Exception {
66 FormDto form = new FormDto();
67 form.setStringField("value1");
68 tag.setValue(form);
69 tag.setDynamicAttribute(null, "action", "/todo/save");
70 tag.doStartTag();
71 tag.doEndTag();
72
73 Element element = getResultAsElementFromContext();
74 String message = "Bodyが空の場合";
75 assertEquals(message, 1, element.getAttributes().size());
76 assertEquals(message, "/todo/save", element.getAttributeValue("action"));
77
78
79 }
80 }