KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > inversoft > verge > mvc > view > jsp > form > test > FormTagTest


1 /*
2  * Copyright (c) 2003, Inversoft
3  *
4  * This software is distribuable under the GNU Lesser General Public License.
5  * For more information visit gnu.org.
6  */

7 package com.inversoft.verge.mvc.view.jsp.form.test;
8
9
10 import javax.servlet.jsp.JspException JavaDoc;
11 import javax.servlet.jsp.tagext.Tag JavaDoc;
12
13 import com.inversoft.junit.JspTestCase;
14 import com.inversoft.junit.Request;
15 import com.inversoft.junit.URL;
16 import com.inversoft.verge.mvc.controller.form.FormURLTools;
17 import com.inversoft.verge.mvc.controller.form.config.test.FormMVCBuilderTest;
18 import com.inversoft.verge.mvc.controller.form.config.test.FormMVCBuilderTest2;
19 import com.inversoft.verge.mvc.model.MetaData;
20 import com.inversoft.verge.mvc.model.ModelResolution;
21 import com.inversoft.verge.mvc.model.form.FormMetaData;
22 import com.inversoft.verge.mvc.view.jsp.form.FormTag;
23 import com.inversoft.verge.mvc.view.jsp.model.ModelResolutionRegistry;
24
25
26 /**
27  * <p>
28  * This class has the test cases for the form tag
29  * </p>
30  *
31  * @author Brian Pontarelli
32  * @since 2.0
33  * @version 2.0
34  */

35 public class FormTagTest extends JspTestCase {
36
37     /**
38      * Constructs a new <code>FormTagTest</code>.
39      */

40     public FormTagTest(String JavaDoc name) {
41         super(name);
42         setLocal(true);
43     }
44
45
46     /**
47      * Tests that the form tag is correct
48      */

49     public void testForm() {
50         // Build the config to test
51
FormMVCBuilderTest2 test = new FormMVCBuilderTest2("testValidate");
52         test.setRequest(request); // For ConfigRegistry stuff
53
test.testValidate();
54
55         FormTag tag = new FormTag();
56         tag.setPageContext(pageContext);
57         tag.setForm("form1");
58         tag.setName("formName");
59         tag.setAction("Should-be-overwritten");
60         tag.setVar("foo");
61
62         try {
63             assertEquals("Should return EVAL_PAGE", runTag(tag), Tag.EVAL_PAGE);
64             String JavaDoc tagStr = getPageContext().getMockOut().getText();
65
66             System.out.println("Form tag: " + tagStr);
67             assertEquals("Should have tag", tagStr,
68                 "<form action=\"" + FormURLTools.generateURL("form1", null) +
69                 "\" name=\"formName\"><input type=\"hidden\" " +
70                 "name=\"_v_h1\" value=\"\"/><input type=\"hidden\" " +
71                 "name=\"_v_h2\" value=\"\"/></form>");
72
73             // FormBean is in request under testFormBean. This is setup in the
74
// FormMVCBuilderTest
75
assertNotNull(pageContext.getAttribute("foo"));
76             ModelResolution mr = ModelResolutionRegistry.lookup("foo", pageContext);
77             assertNotNull(mr);
78             MetaData md = mr.getMetaData();
79             assertNotNull(md);
80             assertEquals("testFormBean", md.getID());
81
82             FormMetaData fmd = (FormMetaData) md;
83             assertNotNull("Should have form meta data", fmd);
84             assertNotNull("Should have form bean", mr.getModel());
85             assertEquals("Form meta data should have correct ID", "testFormBean", fmd.getID());
86         } catch (JspException JavaDoc e) {
87             fail(e.toString());
88         }
89     }
90
91     public void beginAction(Request request) {
92         URL url = new URL("MyContext", null, "https", null, "www.inversoft.com", null);
93         request.setURL(url);
94     }
95
96     /**
97      * Tests that the repository tag is correctly finding the repository items
98      */

99     public void testAction() {
100         FormTag tag = new FormTag();
101         tag.setPageContext(pageContext);
102         tag.setAction("/testAction"); // Ignored!
103
tag.setForm("form1");
104
105         try {
106             assertEquals("Should return EVAL_PAGE", runTag(tag), Tag.EVAL_PAGE);
107             String JavaDoc tagStr = getPageContext().getMockOut().getText();
108             String JavaDoc expected = "<form action=\"/MyContext" +
109                 FormURLTools.generateURL("form1", null) + "\" name=\"form1\">" +
110                 "<input type=\"hidden\" name=\"_v_h1\" value=\"\"/>" +
111                 "<input type=\"hidden\" name=\"_v_h2\" value=\"\"/></form>";
112             System.out.println("Form tag: " + tagStr);
113             System.out.println("Expected: " + expected);
114             assertEquals("Should have tag", tagStr, expected);
115         } catch (JspException JavaDoc e) {
116             fail(e.toString());
117         }
118     }
119
120     /**
121      * Tests that the form tag fails with an invalid form name
122      */

123     public void testBadForm() {
124         // Build the config to test
125
FormMVCBuilderTest2 test = new FormMVCBuilderTest2("testValidate");
126         test.setRequest(request); // For ConfigRegistry stuff
127
test.testValidate();
128
129         FormTag tag = new FormTag();
130         tag.setPageContext(pageContext);
131         tag.setForm("notAVaildForm");
132         tag.setAction("Should-be-overwritten");
133
134         try {
135             runTag(tag);
136             fail("Should have failed");
137         } catch (JspException JavaDoc e) {
138             System.out.println(e.toString());
139         }
140     }
141
142     /**
143      * Tests that the form tag uses the form name for the name attribute
144      */

145     public void testName() {
146         // Build the config to test
147
FormMVCBuilderTest2 test = new FormMVCBuilderTest2("testValidate");
148         test.setRequest(request); // For ConfigRegistry stuff
149
test.testValidate();
150
151         FormTag tag = new FormTag();
152         tag.setPageContext(pageContext);
153         tag.setForm("form1");
154
155         try {
156             assertEquals("Should return EVAL_PAGE", runTag(tag), Tag.EVAL_PAGE);
157             String JavaDoc tagStr = getPageContext().getMockOut().getText();
158
159             System.out.println("Form tag: " + tagStr);
160             String JavaDoc expected = "<form action=\"" +
161                 FormURLTools.generateURL("form1", null) + "\" name=\"form1\">" +
162                 "<input type=\"hidden\" name=\"_v_h1\" value=\"\"/>" +
163                 "<input type=\"hidden\" name=\"_v_h2\" value=\"\"/></form>";
164
165             assertEquals(expected, tagStr);
166             assertNotNull(pageContext.getAttribute("testFormBean"));
167             ModelResolution mr = ModelResolutionRegistry.lookup("testFormBean", pageContext);
168             assertNotNull(mr);
169             MetaData md = mr.getMetaData();
170             assertNotNull(md);
171             assertEquals("testFormBean", md.getID());
172         } catch (JspException JavaDoc e) {
173            fail(e.toString());
174         }
175     }
176
177     /**
178      * Tests that the form tag sets up multi form beans
179      */

180     public void testFormBeans() {
181         // Build the config to test
182
FormMVCBuilderTest test = new FormMVCBuilderTest("testValidate");
183         test.setRequest(request); // For ConfigRegistry stuff
184
test.setResponse(response);
185         test.setContext(context);
186         test.testValidate();
187
188         FormTag tag = new FormTag();
189         tag.setPageContext(pageContext);
190         tag.setForm("multiFormBeanForm");
191
192         try {
193            assertEquals("Should return EVAL_PAGE", runTag(tag), Tag.EVAL_PAGE);
194            assertNotNull(pageContext.getAttribute("formBean"));
195            assertNotNull(pageContext.getAttribute("formBean2"));
196            assertNotNull(pageContext.getAttribute("item1"));
197            assertNotNull(pageContext.getAttribute("item2"));
198
199            ModelResolution mr = ModelResolutionRegistry.lookup("formBean", pageContext);
200            assertNotNull(mr);
201            MetaData md = mr.getMetaData();
202            assertNotNull(md);
203            assertEquals("formBean", md.getID());
204
205            mr = ModelResolutionRegistry.lookup("formBean2", pageContext);
206            assertNotNull(mr);
207            md = mr.getMetaData();
208            assertNotNull(md);
209            assertEquals("formBean2", md.getID());
210
211            mr = ModelResolutionRegistry.lookup("item1", pageContext);
212            assertNotNull(mr);
213            md = mr.getMetaData();
214            assertNotNull(md);
215            assertEquals("item1", md.getID());
216
217            mr = ModelResolutionRegistry.lookup("item2", pageContext);
218            assertNotNull(mr);
219            md = mr.getMetaData();
220            assertNotNull(md);
221            assertEquals("item2", md.getID());
222         } catch (JspException JavaDoc e) {
223            fail(e.toString());
224         }
225     }
226 }
Popular Tags