static String form1(String form) { FormTag ft = new FormTag(); return ft.populateForm(form, foo); }
static String form(String form) { String result = new FormTag().populateForm(form, foo); assertEquals(result, form1(form)); return result; }
private void processTextareaStartTag(final Tag tag) { inTextArea = true; CharSequence name = tag.getAttributeValue(NAME); if (name == null) { return; } Object valueObject = resolver.value(name.toString()); if (valueObject != null) { textAreaValue = valueObject.toString(); } }
/** * Performs smart form population. */ @Override public int doAfterBody() throws JspException { BodyContent body = getBodyContent(); JspWriter out = body.getEnclosingWriter(); String bodytext = populateForm(body.getString(), name -> value(name, pageContext)); try { out.print(bodytext); } catch (IOException ioex) { throw new JspException(ioex); } return SKIP_BODY; }
Object valueObject = resolver.value(name); if (valueObject == null) { return; tagTypeName.equals(PASSWORD)) { String value = valueToString(name, valueObject);
@Test void testVariants() { assertEquals("<input type=\"text\"/>", form("<input type='text'/>")); assertEquals("<input type=\"text\"></input>", form("<input type='text'></input>")); assertEquals("<input type=\"text\"> </input>", form("<input type='text'> </input>")); assertEquals("<input type=\"text\"> ", form("<input type='text'> </input")); assertEquals("<input type=\"text\">", form("<input type='text'>")); assertEquals("<input type=\"\">", form("<input type=''>")); assertEquals("<input tYpE=\"text\">", form("<input tYpE='text'>")); assertEquals("<input type=\"text\"/>", form("<input type=\"text\" />")); }
protected String populateForm(final String formHtml, final FormFieldResolver resolver) { LagartoParser lagartoParser = new LagartoParser(formHtml); StringBuilder result = new StringBuilder(); lagartoParser.parse(new FormProcessorVisitor(result, resolver)); return result.toString(); }
static String form2(String form) { return new FormTag().populateForm(form, foo2); }
@Test void testInputText() { assertEquals("<input type=\"text\" name=\"foo\" value=\"*foo*\"/>", form("<input type='text' name='foo'/>")); assertEquals("<input tYpE=\"text\" nAmE=\"foo\" value=\"*foo*\"/>", form("<input tYpE='text' nAmE='foo'/>")); assertEquals("<input type=\"text\" name=\"foo\" value=\"*foo*\"/>", form("<input type = 'text' name = 'foo'/>")); assertEquals("<input type=\"text\" name=\""foo\" value=\"*"foo*\"/>", form("<input type = 'text' name = '\"foo'/>")); assertEquals("<input name=\"foo\" type=\"text\" value=\"*foo*\"/>", form("<input name='foo' type='text' />")); }
@Test void testMultipleInputs() { String form = "<input type=\"text\" name=\"cc\" id=\"cc1\"/>\n" + "<input type=\"text\" name=\"cc\" id=\"cc2\" />\n" + "<input type=\"text\" name=\"cc\" id=\"cc3\" />"; FormTag ft = new FormTag(); String populatedForm = ft.populateForm(form, new FormFieldResolver() { public Object value(String name) { return new String[] {"a@b.c", "c@d.e", "e@f.g"}; } }); assertEquals( "<input type=\"text\" name=\"cc\" id=\"cc1\" value=\"a@b.c\"/>\n" + "<input type=\"text\" name=\"cc\" id=\"cc2\" value=\"c@d.e\"/>\n" + "<input type=\"text\" name=\"cc\" id=\"cc3\" value=\"e@f.g\"/>", populatedForm); }
@Test void testParamLogType() { assertEquals( "<form><input type=\"hidden\" name=\"logTime>=\" value=\"*logTime>=*\"></form>", form("<form><input type='hidden' name='logTime>='></form>")); }
@Test void testInputHidden() { assertEquals("<input type=\"hidden\" name=\"foo\" value=\"*foo*\"/>", form("<input type='hidden' name='foo'/>")); }
@Test void testInputImage() { assertEquals("<input type=\"image\" name=\"foo\" value=\"*foo*\"/>", form("<input type='image' name='foo'/>")); }
@Test void testSelect() { assertEquals("<select name=\"foo\"><option value=\"1\"/><option value=\"2\"></option><option value=\"*foo*\" selected/></select>", form("<select name='foo'><option value='1'/><option value='2'></option><option value='*foo*'/></select>")); }
@Test void testWrongType() { assertEquals("<input type=\"textx\" name=\"foo\"/>", form("<input type='textx' name='foo'/>")); }
@Test void testInputPassword() { assertEquals("<input type=\"password\" name=\"foo\" value=\"*foo*\"/>", form("<input type='password' name='foo'/>")); }