Author: mrdon
Date: Fri Jan 25 04:05:37 2008
New Revision: 615195
URL: http://svn.apache.org/viewvc?rev=615195&view=rev
Log:
Making retrieval of theme and templateDir more safe
WW-2366
Modified:
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/UIBean.java
struts/struts2/trunk/core/src/test/java/org/apache/struts2/components/UIBeanTest.java
Modified:
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/UIBean.java
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/UIBean.java?rev=615195&r1=615194&r2=615195&view=diff
==============================================================================
---
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/UIBean.java
(original)
+++
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/UIBean.java
Fri Jan 25 04:05:37 2008
@@ -552,7 +552,7 @@
// If templateDir is not explicitly given,
// try to find attribute which states the dir set to use
if ((templateDir == null) || (templateDir.equals(""))) {
- templateDir = (String) stack.findValue("#attr.templateDir");
+ templateDir = stack.findString("#attr.templateDir");
}
// Default template set
@@ -585,7 +585,7 @@
// If theme set is not explicitly given,
// try to find attribute which states the theme set to use
if ((theme == null) || (theme.equals(""))) {
- theme = (String) stack.findValue("#attr.theme");
+ theme = stack.findString("#attr.theme");
}
// Default theme set
Modified:
struts/struts2/trunk/core/src/test/java/org/apache/struts2/components/UIBeanTest.java
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/components/UIBeanTest.java?rev=615195&r1=615194&r2=615195&view=diff
==============================================================================
---
struts/struts2/trunk/core/src/test/java/org/apache/struts2/components/UIBeanTest.java
(original)
+++
struts/struts2/trunk/core/src/test/java/org/apache/struts2/components/UIBeanTest.java
Fri Jan 25 04:05:37 2008
@@ -28,6 +28,9 @@
import com.opensymphony.xwork2.util.ValueStack;
import com.opensymphony.xwork2.util.ValueStackFactory;
+import java.util.Map;
+import java.util.Collections;
+
/**
*
* @version $Date$ $Id$
@@ -80,5 +83,39 @@
txtFld.populateComponentHtmlId(form);
assertEquals("formId_txtFldName", txtFld.getParameters().get("id"));
+ }
+
+ public void testGetThemeFromForm() throws Exception {
+ ValueStack stack = ActionContext.getContext().getValueStack();
+ MockHttpServletRequest req = new MockHttpServletRequest();
+ MockHttpServletResponse res = new MockHttpServletResponse();
+
+ Form form = new Form(stack, req, res);
+ form.setTheme("foo");
+
+ TextField txtFld = new TextField(stack, req, res);
+ assertEquals("foo", txtFld.getTheme());
+ }
+
+ public void testGetThemeFromContext() throws Exception {
+ ValueStack stack = ActionContext.getContext().getValueStack();
+ MockHttpServletRequest req = new MockHttpServletRequest();
+ MockHttpServletResponse res = new MockHttpServletResponse();
+ Map context = Collections.singletonMap("theme", "bar");
+ ActionContext.getContext().put("attr", context);
+
+ TextField txtFld = new TextField(stack, req, res);
+ assertEquals("bar", txtFld.getTheme());
+ }
+
+ public void testGetThemeFromContextNonString() throws Exception {
+ ValueStack stack = ActionContext.getContext().getValueStack();
+ MockHttpServletRequest req = new MockHttpServletRequest();
+ MockHttpServletResponse res = new MockHttpServletResponse();
+ Map context = Collections.singletonMap("theme", new Integer(12));
+ ActionContext.getContext().put("attr", context);
+
+ TextField txtFld = new TextField(stack, req, res);
+ assertEquals("12", txtFld.getTheme());
}
}