svn commit: r1486576 - in /struts/struts2/branches/STRUTS_2_3_14_X/core/src/test/java/org/apache/struts2/views: jsp/URLTagTest.java util/DefaultUrlHelperTest.java

2013-05-27 Thread rgielen
Author: rgielen
Date: Mon May 27 11:14:37 2013
New Revision: 1486576

URL: http://svn.apache.org/r1486576
Log:
WW-4063
Testcases for double parameter evaluation problems

Modified:

struts/struts2/branches/STRUTS_2_3_14_X/core/src/test/java/org/apache/struts2/views/jsp/URLTagTest.java

struts/struts2/branches/STRUTS_2_3_14_X/core/src/test/java/org/apache/struts2/views/util/DefaultUrlHelperTest.java

Modified: 
struts/struts2/branches/STRUTS_2_3_14_X/core/src/test/java/org/apache/struts2/views/jsp/URLTagTest.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/branches/STRUTS_2_3_14_X/core/src/test/java/org/apache/struts2/views/jsp/URLTagTest.java?rev=1486576&r1=1486575&r2=1486576&view=diff
==
--- 
struts/struts2/branches/STRUTS_2_3_14_X/core/src/test/java/org/apache/struts2/views/jsp/URLTagTest.java
 (original)
+++ 
struts/struts2/branches/STRUTS_2_3_14_X/core/src/test/java/org/apache/struts2/views/jsp/URLTagTest.java
 Mon May 27 11:14:37 2013
@@ -21,16 +21,12 @@
 
 package org.apache.struts2.views.jsp;
 
-import java.io.File;
-import java.io.StringWriter;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.servlet.http.HttpSession;
-import javax.servlet.jsp.JspWriter;
-
+import com.mockobjects.dynamic.Mock;
+import com.opensymphony.xwork2.ActionContext;
+import com.opensymphony.xwork2.ActionProxy;
+import com.opensymphony.xwork2.DefaultActionInvocation;
+import com.opensymphony.xwork2.DefaultActionProxyFactory;
+import com.opensymphony.xwork2.inject.Container;
 import org.apache.struts2.ServletActionContext;
 import org.apache.struts2.components.URL;
 import org.apache.struts2.dispatcher.ApplicationMap;
@@ -40,15 +36,14 @@ import org.apache.struts2.dispatcher.Ses
 import org.apache.struts2.dispatcher.mapper.ActionMapping;
 import org.apache.struts2.dispatcher.mapper.DefaultActionMapper;
 
-import com.mockobjects.dynamic.Mock;
-import com.opensymphony.xwork2.ActionContext;
-import com.opensymphony.xwork2.ActionProxy;
-import com.opensymphony.xwork2.DefaultActionInvocation;
-import com.opensymphony.xwork2.DefaultActionProxy;
-import com.opensymphony.xwork2.DefaultActionProxyFactory;
-import com.opensymphony.xwork2.config.providers.XWorkConfigurationProvider;
-import com.opensymphony.xwork2.config.providers.XmlConfigurationProvider;
-import com.opensymphony.xwork2.inject.Container;
+import javax.servlet.http.HttpSession;
+import javax.servlet.jsp.JspWriter;
+import java.io.File;
+import java.io.StringWriter;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * Unit test for {@link URLTag}.
@@ -619,6 +614,69 @@ public class URLTagTest extends Abstract
 
 }
 
+   public void testEmbeddedParamTagExpressionGetsEvaluatedCorrectly() 
throws Exception {
+   request.setRequestURI("/public/about");
+   request.setQueryString("section=team&company=acme inc");
+
+   tag.setAction("team");
+   tag.setIncludeParams("all");
+
+   tag.doStartTag();
+
+   Foo foo = new Foo("test");
+   stack.push(foo);
+
+   // include nested param tag
+   ParamTag paramTag = new ParamTag();
+   paramTag.setPageContext(pageContext);
+   paramTag.setName("title");
+   paramTag.setValue("%{title}");
+   paramTag.doStartTag();
+   paramTag.doEndTag();
+
+   tag.doEndTag();
+
+   
assertEquals("/team.action?section=team&company=acme+inc&title=test", 
writer.toString());
+   }
+
+   public void testAccessToStackInternalsGetsHandledCorrectly() throws 
Exception {
+   Map params = new HashMap();
+   params.put("aaa", new String[] 
{"1${#session[\"foo\"]='true'}"});
+   params.put("aab", new String[] {"1${#session[\"bar\"]}"});
+   params.put("aac", new String[] 
{"1${#_memberAccess[\"allowStaticMethodAccess\"]='true'}"});
+   params.put("aad", new String[] 
{"1${#_memberAccess[\"allowStaticMethodAccess\"]}"});
+
+   request.setParameterMap(params);
+   request.setRequestURI("/public/about");
+   
request.setQueryString("aae${%23session[\"bar\"]}=1%24%7B%23session%5B%22bar%22%5D%7D");
+   session.put("bar", "rab");
+
+   tag.setAction("team");
+   tag.setIncludeParams("all");
+
+   tag.doStartTag();
+   tag.doEndTag();
+
+   Object allowMethodAccess = 
stack.findValue("\u0023_memberAccess['allowStaticMethodAccess']");
+   assertNotNull(allowMethodAccess);
+   assertEquals(Boolean.FALSE, allowMethodAccess);
+
+   assertNull(session.get("foo"));
+
+   assertEquals("/team.action?" +
+  

svn commit: r1486633 - in /struts/struts2/trunk: ./ core/src/main/java/org/apache/struts2/views/util/ core/src/test/java/org/apache/struts2/views/jsp/ core/src/test/java/org/apache/struts2/views/util/

2013-05-27 Thread rgielen
Author: rgielen
Date: Mon May 27 14:11:10 2013
New Revision: 1486633

URL: http://svn.apache.org/r1486633
Log:
Merged from STRUTS_2_3_14_X
Disable eval expressions [from revision 1469249]
WW-4063
Improved security  by making static method attribute immutable [from revision 
1486054]
WW-4063
Skipping unneeded translation for included parameters [from revision 1486076]
WW-4063
Testcase modification after refactoring [from revision 1486164]
WW-4063
Testcases for double parameter evaluation problems [from revision 1486576]

Modified:
struts/struts2/trunk/   (props changed)

struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/util/DefaultUrlHelper.java

struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/URLTagTest.java

struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/util/DefaultUrlHelperTest.java

struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/SecurityMemberAccess.java

Propchange: struts/struts2/trunk/
--
  Merged 
/struts/struts2/branches/STRUTS_2_3_14_X:r1486054,1486076,1486164,1486576

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/util/DefaultUrlHelper.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/util/DefaultUrlHelper.java?rev=1486633&r1=1486632&r2=1486633&view=diff
==
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/util/DefaultUrlHelper.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/util/DefaultUrlHelper.java
 Mon May 27 14:11:10 2013
@@ -241,47 +241,45 @@ public class DefaultUrlHelper implements
 
 private String buildParameterSubstring(String name, String value) {
 StringBuilder builder = new StringBuilder();
-builder.append(translateAndEncode(name));
+builder.append(encode(name));
 builder.append('=');
-builder.append(translateAndEncode(value));
+builder.append(encode(value));
 return builder.toString();
 }
 
-/**
- * Translates any script expressions using {@link 
com.opensymphony.xwork2.util.TextParseUtil#translateVariables} and
- * encodes the URL using {@link java.net.URLEncoder#encode} with the 
encoding specified in the configuration.
- *
- * @param input
- * @return the translated and encoded string
- */
-public String translateAndEncode(String input) {
-String translatedInput = translateVariable(input);
-try {
-return URLEncoder.encode(translatedInput, encoding);
-} catch (UnsupportedEncodingException e) {
-if (LOG.isWarnEnabled()) {
-LOG.warn("Could not encode URL parameter '#0', returning value 
un-encoded", input);
-}
-return translatedInput;
-}
-}
-
-public String translateAndDecode(String input) {
-String translatedInput = translateVariable(input);
-try {
-return URLDecoder.decode(translatedInput, encoding);
-} catch (UnsupportedEncodingException e) {
-if (LOG.isWarnEnabled()) {
-LOG.warn("Could not encode URL parameter '#0', returning value 
un-encoded", input);
-}
-return translatedInput;
-}
-}
-
-private String translateVariable(String input) {
-ValueStack valueStack = 
ServletActionContext.getContext().getValueStack();
-return TextParseUtil.translateVariables(input, valueStack);
-}
+   /**
+* Encodes the URL using {@link java.net.URLEncoder#encode} with the 
encoding specified in the configuration.
+*
+* @param input the input to encode
+* @return the encoded string
+*/
+   public String encode( String input ) {
+   try {
+   return URLEncoder.encode(input, encoding);
+   } catch (UnsupportedEncodingException e) {
+   if (LOG.isWarnEnabled()) {
+   LOG.warn("Could not encode URL parameter '#0', 
returning value un-encoded", input);
+   }
+   return input;
+   }
+   }
+
+   /**
+* Decodes the URL using {@link java.net.URLDecoder#decode(String, 
String)} with the encoding specified in the configuration.
+*
+* @param input the input to decode
+* @return the encoded string
+*/
+   public String decode( String input ) {
+   try {
+   return URLDecoder.decode(input, encoding);
+   } catch (UnsupportedEncodingException e) {
+   if (LOG.isWarnEnabled()) {
+   LOG.warn("Could not decode URL parameter '#0', 
returning value un-decoded", input);
+  

[CONF] Confluence Changes in the last 24 hours

2013-05-27 Thread confluence
This is a daily summary of all recent changes in Confluence.

-
Updated Spaces:
-


Apache Camel (https://cwiki.apache.org/confluence/display/CAMEL)

Pages
-
Camel 2.12.0 Release edited by  bvahdat  (03:46 PM)
https://cwiki.apache.org/confluence/display/CAMEL/Camel+2.12.0+Release

Weather edited by  bvahdat  (03:12 PM)
https://cwiki.apache.org/confluence/display/CAMEL/Weather

JSON edited by  bvahdat  (08:27 AM)
https://cwiki.apache.org/confluence/display/CAMEL/JSON



Apache Cloudstack (https://cwiki.apache.org/confluence/display/CLOUDSTACK)

Pages
-
Enabling Storage XenMotion for XenServer edited by  sateeshc  (11:00 AM)
https://cwiki.apache.org/confluence/display/CLOUDSTACK/Enabling+Storage+XenMotion+for+XenServer

Granular   Global Configuration Parameters edited by  prashantkm  (07:56 AM)
https://cwiki.apache.org/confluence/display/CLOUDSTACK/Granular+++Global+Configuration+Parameters

Stratosphere SSP Network Plugin created by ka...@stratosphere.co.jp (07:08 AM)
https://cwiki.apache.org/confluence/display/CLOUDSTACK/Stratosphere+SSP+Network+Plugin

Dynamic scaling of CPU and RAM edited by  nitin.me...@citrix.com  (06:27 AM)
https://cwiki.apache.org/confluence/display/CLOUDSTACK/Dynamic+scaling+of+CPU+and+RAM



Apache Flex (https://cwiki.apache.org/confluence/display/FLEX)

Pages
-
FlexUnit Developer Documentation edited by  cyrill  (02:02 PM)
https://cwiki.apache.org/confluence/display/FLEX/FlexUnit+Developer+Documentation

FlexUnit Advanced Terminology edited by  cyrill  (02:02 PM)
https://cwiki.apache.org/confluence/display/FLEX/FlexUnit+Advanced+Terminology

FlexUnit Project Structure created by cyrill (01:58 PM)
https://cwiki.apache.org/confluence/display/FLEX/FlexUnit+Project+Structure

FlexUnit Continuous Integration Support edited by  cyrill  (01:55 PM)
https://cwiki.apache.org/confluence/display/FLEX/FlexUnit+Continuous+Integration+Support

FlexUnit 4 CI Sample Project Information edited by  cyrill  (01:55 PM)
https://cwiki.apache.org/confluence/display/FLEX/FlexUnit+4+CI+Sample+Project+Information

FlexUnit Metadata edited by  cyrill  (01:53 PM)
https://cwiki.apache.org/confluence/display/FLEX/FlexUnit+Metadata

FlexUnit Test edited by  cyrill  (01:49 PM)
https://cwiki.apache.org/confluence/display/FLEX/FlexUnit+Test

FlexUnit ArrayElementType edited by  cyrill  (01:49 PM)
https://cwiki.apache.org/confluence/display/FLEX/FlexUnit+ArrayElementType

FlexUnit FlexUnit1ClassRunner edited by  cyrill  (01:48 PM)
https://cwiki.apache.org/confluence/display/FLEX/FlexUnit+FlexUnit1ClassRunner

FlexUnit BlockFlexUnit4ClassRunner edited by  cyrill  (01:47 PM)
https://cwiki.apache.org/confluence/display/FLEX/FlexUnit+BlockFlexUnit4ClassRunner

FlexUnit Fluint1ClassRunner edited by  cyrill  (01:43 PM)
https://cwiki.apache.org/confluence/display/FLEX/FlexUnit+Fluint1ClassRunner

FlexUnit Suite (Runner class) edited by  cyrill  (01:43 PM)
https://cwiki.apache.org/confluence/display/FLEX/FlexUnit+Suite+%28Runner+class%29

FlexUnit SuiteMethod edited by  cyrill  (01:41 PM)
https://cwiki.apache.org/confluence/display/FLEX/FlexUnit+SuiteMethod

FlexUnit TheoryBlockRunner edited by  cyrill  (01:41 PM)
https://cwiki.apache.org/confluence/display/FLEX/FlexUnit+TheoryBlockRunner

FlexUnit Sequences edited by  cyrill  (01:39 PM)
https://cwiki.apache.org/confluence/display/FLEX/FlexUnit+Sequences

FlexUnit Runners and Builders edited by  cyrill  (01:37 PM)
https://cwiki.apache.org/confluence/display/FLEX/FlexUnit+Runners+and+Builders

FlexUnit UIImpersonator edited by  cyrill  (01:35 PM)
https://cwiki.apache.org/confluence/display/FLEX/FlexUnit+UIImpersonator

FlexUnit Custom Runners edited by  cyrill  (01:35 PM)
https://cwiki.apache.org/confluence/display/FLEX/FlexUnit+Custom+Runners

FlexUnit Writing an Async setup edited by  cyrill  (01:33 PM)
https://cwiki.apache.org/confluence/display/FLEX/FlexUnit+Writing+an+Async+setup

FlexUnit Using External Data for Parameterized Testing And Theories edited by  
cyrill  (01:31 PM)
https://cwiki.apache.org/confluence/display/FLEX/FlexUnit+Using+External+Data+for+Parameterized+Testing+And+Theories

FlexUnit Parameterized Test Styles created by cyrill (01:29 PM)
https://cwiki.apache.org/confluence/display/FLEX/FlexUnit+Parameterized+Test+Styles

FlexUnit Terminology edited by  cyrill  (01:23 PM)
https://cwiki.apache.org/confluence/display/FLEX/FlexUnit+Terminology

FlexUnit Sorting created by cyrill (01:20 PM)
https://cwiki.apache.org/confluence/display/FLEX/FlexUnit+Sorting

FlexUnit Filtering created by cyrill (01:18 PM)
https://cwiki.apache.org/confluence/display/FLEX/FlexUnit+Filtering

FlexUnit Fluint Sequences edited by  cyrill  (01:11