1 7 package com.inversoft.verge.mvc.view.jsp.form.test; 8 9 10 import javax.servlet.jsp.JspException ; 11 import javax.servlet.jsp.tagext.Tag ; 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 35 public class FormTagTest extends JspTestCase { 36 37 40 public FormTagTest(String name) { 41 super(name); 42 setLocal(true); 43 } 44 45 46 49 public void testForm() { 50 FormMVCBuilderTest2 test = new FormMVCBuilderTest2("testValidate"); 52 test.setRequest(request); 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 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 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 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 99 public void testAction() { 100 FormTag tag = new FormTag(); 101 tag.setPageContext(pageContext); 102 tag.setAction("/testAction"); tag.setForm("form1"); 104 105 try { 106 assertEquals("Should return EVAL_PAGE", runTag(tag), Tag.EVAL_PAGE); 107 String tagStr = getPageContext().getMockOut().getText(); 108 String 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 e) { 116 fail(e.toString()); 117 } 118 } 119 120 123 public void testBadForm() { 124 FormMVCBuilderTest2 test = new FormMVCBuilderTest2("testValidate"); 126 test.setRequest(request); 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 e) { 138 System.out.println(e.toString()); 139 } 140 } 141 142 145 public void testName() { 146 FormMVCBuilderTest2 test = new FormMVCBuilderTest2("testValidate"); 148 test.setRequest(request); 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 tagStr = getPageContext().getMockOut().getText(); 158 159 System.out.println("Form tag: " + tagStr); 160 String 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 e) { 173 fail(e.toString()); 174 } 175 } 176 177 180 public void testFormBeans() { 181 FormMVCBuilderTest test = new FormMVCBuilderTest("testValidate"); 183 test.setRequest(request); 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 e) { 223 fail(e.toString()); 224 } 225 } 226 } | Popular Tags |