Author: musachy Date: Fri Dec 12 19:39:15 2008 New Revision: 726166 URL: http://svn.apache.org/viewvc?rev=726166&view=rev Log: Reorgannize testcases. Start improving select tag.
Added: struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/AbstractTestCase.java struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/SelectTest.java struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/TextFieldTest.java (contents, props changed) - copied, changed from r683696, struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/SimpleThemeTest.java Removed: struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/SimpleThemeTest.java Modified: struts/sandbox/trunk/struts2-javatemplates-plugin/pom.xml struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/Attributes.java struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/AbstractTagHandler.java struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/SelectHandler.java struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/TextFieldHandler.java Modified: struts/sandbox/trunk/struts2-javatemplates-plugin/pom.xml URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-javatemplates-plugin/pom.xml?rev=726166&r1=726165&r2=726166&view=diff ============================================================================== --- struts/sandbox/trunk/struts2-javatemplates-plugin/pom.xml (original) +++ struts/sandbox/trunk/struts2-javatemplates-plugin/pom.xml Fri Dec 12 19:39:15 2008 @@ -5,17 +5,17 @@ <parent> <groupId>org.apache.struts</groupId> <artifactId>struts2-plugins</artifactId> - <version>2.0.2-SNAPSHOT</version> + <version>2.1.3-SNAPSHOT</version> </parent> <groupId>org.apache.struts</groupId> <artifactId>struts2-javatemplates-plugin</artifactId> <packaging>jar</packaging> <name>Struts 2 Java Templates Plugin</name> - + <scm> - <connection>scm:svn:http://svn.apache.org/repos/asf/struts/sandbox/trunk/struts2-javatemplates-plugin/</connection> - <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/sandbox/trunk/struts2-javatemplates-plugin/</developerConnection> - <url>http://svn.apache.org/viewcvs.cgi/struts/sandbox/trunk/struts2-javatemplates-plugin/</url> + <connection>scm:svn:http://svn.apache.org/repos/asf/struts/sandbox/trunk/struts2-javatemplates-plugin/</connection> + <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/sandbox/trunk/struts2-javatemplates-plugin/</developerConnection> + <url>http://svn.apache.org/viewcvs.cgi/struts/sandbox/trunk/struts2-javatemplates-plugin/</url> </scm> <dependencies> @@ -37,5 +37,23 @@ <scope>test</scope> <version>2.2</version> </dependency> - </dependencies> + </dependencies> + + <build> + <plugins> + <plugin> + <inherited>true</inherited> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-source-plugin</artifactId> + <executions> + <execution> + <id>attach-sources</id> + <goals> + <goal>jar</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> </project> Modified: struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/Attributes.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/Attributes.java?rev=726166&r1=726165&r2=726166&view=diff ============================================================================== --- struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/Attributes.java (original) +++ struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/Attributes.java Fri Dec 12 19:39:15 2008 @@ -44,7 +44,8 @@ public Attributes addIfExists(String attrName, Object paramValue, boolean encode) { if (paramValue != null) { String val = paramValue.toString(); - put(attrName, (encode ? TextUtils.htmlEncode(val) : val)); + if (val.trim().length() > 0) + put(attrName, (encode ? TextUtils.htmlEncode(val) : val)); } return this; } Modified: struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/AbstractTagHandler.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/AbstractTagHandler.java?rev=726166&r1=726165&r2=726166&view=diff ============================================================================== --- struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/AbstractTagHandler.java (original) +++ struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/AbstractTagHandler.java Fri Dec 12 19:39:15 2008 @@ -21,15 +21,23 @@ package org.apache.struts2.views.java.simple; import java.io.IOException; +import java.util.Map; import org.apache.struts2.components.template.TemplateRenderingContext; import org.apache.struts2.views.java.TagHandler; import org.apache.struts2.views.java.Attributes; +import org.apache.struts2.views.util.ContextUtil; +import org.apache.struts2.StrutsConstants; +import com.opensymphony.xwork2.util.TextParseUtil; +import com.opensymphony.xwork2.util.ValueStack; +import com.opensymphony.xwork2.inject.Container; +import com.opensymphony.xwork2.ActionContext; public class AbstractTagHandler implements TagHandler { - + protected TagHandler nextTagHandler; protected TemplateRenderingContext context; + protected boolean altSyntax; public void characters(String text) throws IOException { if (nextTagHandler != null) { @@ -58,6 +66,47 @@ public void setup(TemplateRenderingContext context) { this.context = context; + this.altSyntax = ContextUtil.isUseAltSyntax(context.getStack().getContext()); + processParams(); + } + + protected void processParams() { + } + + protected String findString(String expr) { + return (String) findValue(expr, String.class); } + protected Object findValue(String expr) { + if (expr == null) { + return null; + } + + ValueStack stack = context.getStack(); + if (altSyntax) { + // does the expression start with %{ and end with }? if so, just cut it off! + if (expr.startsWith("%{") && expr.endsWith("}")) { + expr = expr.substring(2, expr.length() - 1); + } + } + + return stack.findValue(expr); + } + + private Object findValue(String expr, Class toType) { + ValueStack stack = context.getStack(); + + if (altSyntax && toType == String.class) { + return TextParseUtil.translateVariables('%', expr, stack); + } else { + if (altSyntax) { + // does the expression start with %{ and end with }? if so, just cut it off! + if (expr.startsWith("%{") && expr.endsWith("}")) { + expr = expr.substring(2, expr.length() - 1); + } + } + + return stack.findValue(expr, toType); + } + } } Modified: struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/SelectHandler.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/SelectHandler.java?rev=726166&r1=726165&r2=726166&view=diff ============================================================================== --- struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/SelectHandler.java (original) +++ struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/SelectHandler.java Fri Dec 12 19:39:15 2008 @@ -22,19 +22,32 @@ import org.apache.struts2.views.java.TagGenerator; import org.apache.struts2.views.java.Attributes; +import org.apache.struts2.views.util.TextUtil; +import org.apache.struts2.components.template.TemplateRenderingContext; +import org.apache.struts2.util.ContainUtil; import java.io.IOException; +import java.io.Writer; import java.util.Map; public class SelectHandler extends AbstractTagHandler implements TagGenerator { + private Writer writer; + + @Override + public void setup(TemplateRenderingContext context) { + super.setup(context); + this.writer = context.getWriter(); + } public void generate() throws IOException { Map<String,Object> params = context.getParameters(); Attributes a = new Attributes(); + Object value = params.get("nameValue"); + a.addDefaultToEmpty("name", params.get("name")) .addIfExists("size", params.get("size")) - .addIfExists("value", params.get("nameValue"), false) + .addIfExists("value", value, false) .addIfTrue("disabled", params.get("disabled")) .addIfTrue("readonly", params.get("readonly")) .addIfTrue("multiple", params.get("multiple")) @@ -44,6 +57,28 @@ .addIfExists("style", params.get("cssStyle")) .addIfExists("title", params.get("title")); super.start("select", a); + + //options + + //header + String headerKey = (String) params.get("headerKey"); + String headerValue = (String) params.get("headerValue"); + if (headerKey != null && headerValue != null) { + boolean selected = ContainUtil.contains(value, params.get("headerKey")); + writeOption(headerKey, headerValue, selected); + } + super.end("select"); } + + private void writeOption(String value, String text, boolean selected) throws IOException { + writer.write("<option value=\""); + writer.write(TextUtil.escapeHTML(value)); + writer.write("\""); + if (selected) + writer.write(" selected=\"selected\" "); + writer.write(">"); + writer.write(TextUtil.escapeHTML(text)); + writer.write("</option>"); + } } Modified: struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/TextFieldHandler.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/TextFieldHandler.java?rev=726166&r1=726165&r2=726166&view=diff ============================================================================== --- struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/TextFieldHandler.java (original) +++ struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/TextFieldHandler.java Fri Dec 12 19:39:15 2008 @@ -41,7 +41,7 @@ .addIfExists("value", params.get("nameValue"), false) .addIfTrue("disabled", params.get("disabled")) .addIfTrue("readonly", params.get("readonly")) - .addIfExists("tabindex", params.get("tagindex")) + .addIfExists("tabindex", params.get("tabindex")) .addIfExists("id", params.get("id")) .addIfExists("class", params.get("cssClass")) .addIfExists("style", params.get("cssStyle")) Added: struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/AbstractTestCase.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/AbstractTestCase.java?rev=726166&view=auto ============================================================================== --- struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/AbstractTestCase.java (added) +++ struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/AbstractTestCase.java Fri Dec 12 19:39:15 2008 @@ -0,0 +1,151 @@ +package org.apache.struts2.views.java.simple; + +import junit.framework.TestCase; +import org.apache.struts2.components.Component; +import org.apache.struts2.components.UIBean; +import org.apache.struts2.components.template.Template; +import org.apache.struts2.components.template.TemplateRenderingContext; +import org.apache.struts2.StrutsConstants; +import org.easymock.EasyMock; + +import java.util.Map; +import java.util.HashMap; +import java.util.Stack; +import java.io.StringWriter; + +import com.opensymphony.xwork2.util.ValueStack; +import com.opensymphony.xwork2.ActionContext; +import com.opensymphony.xwork2.conversion.impl.XWorkConverter; +import com.opensymphony.xwork2.inject.Container; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +public abstract class AbstractTestCase extends TestCase { + private Map<String, String> scriptingAttrs = new HashMap<String, String>(); + private Map<String, String> commonAttrs = new HashMap<String, String>(); + + protected SimpleTheme theme; + + protected StringWriter writer; + protected Map map; + + protected Template template; + protected Map stackContext; + protected ValueStack stack; + protected TemplateRenderingContext context; + protected HttpServletRequest request; + protected HttpServletResponse response; + + + @Override + protected void setUp() throws Exception { + super.setUp(); //To change body of overridden methods use File | Settings | File Templates. + scriptingAttrs.put("onclick", "onclick_"); + scriptingAttrs.put("ondblclick", "ondblclick_"); + scriptingAttrs.put("onmousedown", "onmousedown_"); + scriptingAttrs.put("onmouseup", "onmouseup_"); + scriptingAttrs.put("onmouseover", "onmouseover_"); + scriptingAttrs.put("onmousemove", "onmousemove_"); + scriptingAttrs.put("onmouseout", "onmouseout_"); + scriptingAttrs.put("onfocus", "onfocus_"); + scriptingAttrs.put("onblur", "onblur_"); + scriptingAttrs.put("onkeypress", "onkeypress_"); + scriptingAttrs.put("onkeydown", "onkeydown_"); + scriptingAttrs.put("onkeyup", "onkeyup_"); + scriptingAttrs.put("onselect", "onselect_"); + scriptingAttrs.put("onchange", "onchange_"); + + commonAttrs.put("accesskey", "accesskey_"); + + theme = new SimpleTheme(); + writer = new StringWriter(); + map = new HashMap(); + + template = org.easymock.classextension.EasyMock.createMock(Template.class); + stack = EasyMock.createNiceMock(ValueStack.class); + setUpStack(); + stackContext = new HashMap(); + + context = new TemplateRenderingContext(template, writer, stack, map, null); + stackContext.put(Component.COMPONENT_STACK, new Stack()); + + request = EasyMock.createMock(HttpServletRequest.class); + response = EasyMock.createMock(HttpServletResponse.class); + + EasyMock.expect(stack.getContext()).andReturn(stackContext).anyTimes(); + + Container container = EasyMock.createNiceMock(Container.class); + XWorkConverter converter = new ConverterEx(); + EasyMock.expect(container.getInstance(String.class, StrutsConstants.STRUTS_TAG_ALTSYNTAX)).andReturn("true").anyTimes(); + EasyMock.expect(container.getInstance(XWorkConverter.class)).andReturn(converter).anyTimes(); + stackContext.put(ActionContext.CONTAINER, container); + + + + EasyMock.replay(stack); + EasyMock.replay(container); + } + + protected static String s(String input) { + return input.replaceAll("'", "\""); + } + + protected void expectFind(String expr, Class toClass, Object returnVal) { + EasyMock.expect(stack.findValue(expr, toClass)).andReturn(returnVal); + } + + protected void setUpStack() { + //TODO setup a config with stack and all..for real + } + + protected void applyScriptingAttrs(UIBean bean) { + bean.setOnclick(scriptingAttrs.get("onclick")); + bean.setOndblclick(scriptingAttrs.get("ondblclick")); + bean.setOnmousedown(scriptingAttrs.get("onmousedown")); + bean.setOnmouseup(scriptingAttrs.get("onmouseup")); + bean.setOnmouseover(scriptingAttrs.get("onmouseover")); + bean.setOnmousemove(scriptingAttrs.get("onmousemove")); + bean.setOnmouseout(scriptingAttrs.get("onmouseout")); + bean.setOnfocus(scriptingAttrs.get("onfocus")); + bean.setOnblur(scriptingAttrs.get("onblur")); + bean.setOnkeypress(scriptingAttrs.get("onkeypress")); + bean.setOnkeydown(scriptingAttrs.get("onkeydown")); + bean.setOnkeyup(scriptingAttrs.get("onkeyup")); + bean.setOnselect(scriptingAttrs.get("onselect")); + bean.setOnchange(scriptingAttrs.get("onchange")); + } + + protected void applyCommonAttrs(UIBean bean) { + bean.setAccesskey("accesskey_"); + } + + protected void assertScriptingAttrs(String str) { + for (Map.Entry<String, String> entry : scriptingAttrs.entrySet()) { + String substr = entry.getKey() + "=\"" + entry.getValue() + "\""; + assertTrue("String [" + substr + "] was not found in [" + str + "]", str.indexOf(substr) >= 0); + } + } + + protected void assertCommongAttrs(String str) { + for (Map.Entry<String, String> entry : commonAttrs.entrySet()) { + String substr = entry.getKey() + "=\"" + entry.getValue() + "\""; + assertTrue("String [" + substr + "] was not found in [" + str + "]", str.indexOf(substr) >= 0); + } + } + + protected Object doFindValue(String expr, Class toType) { + Object val = stack.findValue(expr); + + if (toType == String.class) + return val == null ? expr : val; + else + return val == null ? null : val; + } + + public class ConverterEx extends XWorkConverter { + public ConverterEx() { + + } + } +} Added: struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/SelectTest.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/SelectTest.java?rev=726166&view=auto ============================================================================== --- struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/SelectTest.java (added) +++ struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/SelectTest.java Fri Dec 12 19:39:15 2008 @@ -0,0 +1,50 @@ +package org.apache.struts2.views.java.simple; + +import org.apache.struts2.components.TextField; +import org.apache.struts2.components.Select; +import org.easymock.EasyMock; +import com.opensymphony.xwork2.util.ValueStack; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +public class SelectTest extends AbstractTestCase { + + public void testRenderSelectWithHeader() { + SelectEx tag = new SelectEx(stack, request, response); + + tag.setList("%{{'key0', 'key1'}}"); + tag.setHeaderKey("%{'key0'}"); + tag.setHeaderValue("%{'val'}"); + + tag.processParams(); + map.putAll(tag.getParameters()); + theme.renderTag("select", context); + String output = writer.getBuffer().toString(); + String expected = s("<select name=''><option value='key0'>val</option></select>"); + assertEquals(expected, output); + } + + @Override + protected void setUpStack() { + super.setUpStack(); + + expectFind("'key0'", String.class, "key0"); + expectFind("'val'", String.class, "val"); + } + + class SelectEx extends Select { + public SelectEx(ValueStack stack, HttpServletRequest request, HttpServletResponse response) { + super(stack, request, response); + } + + public void processParams() { + //these methods are protected + evaluateParams(); + } + + public boolean altSyntax() { + return true; + } + } +} Copied: struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/TextFieldTest.java (from r683696, struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/SimpleThemeTest.java) URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/TextFieldTest.java?p2=struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/TextFieldTest.java&p1=struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/SimpleThemeTest.java&r1=683696&r2=726166&rev=726166&view=diff ============================================================================== --- struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/SimpleThemeTest.java (original) +++ struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/TextFieldTest.java Fri Dec 12 19:39:15 2008 @@ -21,73 +21,92 @@ package org.apache.struts2.views.java.simple; import com.opensymphony.xwork2.util.ValueStack; +import com.opensymphony.xwork2.util.TextParseUtil; import junit.framework.TestCase; import org.apache.struts2.components.Component; +import org.apache.struts2.components.TextField; import org.apache.struts2.components.template.Template; import org.apache.struts2.components.template.TemplateRenderingContext; +import org.apache.struts2.views.util.ContextUtil; import org.easymock.EasyMock; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.io.StringWriter; import java.util.HashMap; import java.util.Map; import java.util.Stack; -public class SimpleThemeTest extends TestCase { +public class TextFieldTest extends AbstractTestCase { - private SimpleTheme theme; + public void testRenderTextField() { + TestFieldEx tag = new TestFieldEx(stack, request, response); - private StringWriter writer; - private Map map; + tag.setName("name"); + tag.setValue("val1"); + tag.setSize("10"); + tag.setMaxlength("11"); + tag.setDisabled("true"); + tag.setReadonly("true"); + tag.setTabindex("1"); + tag.setId("id1"); + tag.setCssClass("class1"); + tag.setCssStyle("style1"); + tag.setTitle("title"); - private Template template; - private Map stackContext; - private ValueStack stack; - private TemplateRenderingContext context; - public void setUp() { - theme = new SimpleTheme(); - writer = new StringWriter(); - map = new HashMap(); + tag.processParams(); + map.putAll(tag.getParameters()); + theme.renderTag("textfield", context); + String output = writer.getBuffer().toString(); + String expected = s("<input type='text' name='name' size='10' maxlength='11' value='val1' tabindex='1' id='id1' class='class1' style='style1' title='title'></input>"); + assertEquals(expected, output); + } - template = org.easymock.classextension.EasyMock.createMock(Template.class); - stack = EasyMock.createMock(ValueStack.class); - stackContext = new HashMap(); + public void testRenderTextFieldScriptingAttrs() { + TestFieldEx tag = new TestFieldEx(stack, request, response); - context = new TemplateRenderingContext(template, writer, stack, map, null); - stackContext.put(Component.COMPONENT_STACK, new Stack()); - } + applyScriptingAttrs(tag); - public void prepareForTest() { - EasyMock.expect(stack.getContext()).andReturn(stackContext).anyTimes(); - EasyMock.replay(stack); - writer.getBuffer().delete(0, writer.getBuffer().length()); + tag.processParams(); + map.putAll(tag.getParameters()); + theme.renderTag("textfield", context); + String output = writer.getBuffer().toString(); + + assertScriptingAttrs(output); } - public void testRenderTextField() { - prepareForTest(); - theme.renderTag("textfield", context); - assertEquals("<input type=\"text\" name=\"\"></input>", writer.getBuffer().toString()); + public void testRenderTextFieldCommonAttrs() { + TestFieldEx tag = new TestFieldEx(stack, request, response); + + applyCommonAttrs(tag); - EasyMock.reset(stack); - prepareForTest(); - map.put("name", "name"); - map.put("accesskey", "accesskey"); + tag.processParams(); + map.putAll(tag.getParameters()); theme.renderTag("textfield", context); - assertEquals("<input type=\"text\" name=\"name\" accesskey=\"accesskey\"></input>", writer.getBuffer().toString()); + String output = writer.getBuffer().toString(); + assertCommongAttrs(output); } - public void testRenderSelect() { - prepareForTest(); - map.put("name", "choose"); - theme.renderTag("select", context); - assertEquals("<select name=\"choose\"></select>", writer.getBuffer().toString()); - - EasyMock.reset(stack); - prepareForTest(); - map.put("multiple", true); - theme.renderTag("select", context); - assertEquals("<select name=\"choose\" multiple=\"multiple\"></select>", writer.getBuffer().toString()); + class TestFieldEx extends TextField { + public TestFieldEx(ValueStack stack, HttpServletRequest request, HttpServletResponse response) { + super(stack, request, response); + } + + public void processParams() { + //these methods are protected + evaluateParams(); + evaluateExtraParams(); + } + + public boolean altSyntax() { + return true; + } + + protected Object findValue(String expr, Class toType) { + return doFindValue(expr, toType); + } } } Propchange: struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/TextFieldTest.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/TextFieldTest.java ------------------------------------------------------------------------------ svn:keywords = Id Author Date Rev