You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by mu...@apache.org on 2008/12/13 04:39:15 UTC
svn commit: r726166 - in /struts/sandbox/trunk/struts2-javatemplates-plugin:
./ src/main/java/org/apache/struts2/views/java/
src/main/java/org/apache/struts2/views/java/simple/
src/test/java/org/apache/struts2/views/java/simple/
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