Modified: 
struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/portlet/util/PortletUrlHelperTest.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/portlet/util/PortletUrlHelperTest.java?rev=1139729&r1=1139728&r2=1139729&view=diff
==============================================================================
--- 
struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/portlet/util/PortletUrlHelperTest.java
 (original)
+++ 
struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/portlet/util/PortletUrlHelperTest.java
 Sun Jun 26 08:30:00 2011
@@ -18,27 +18,22 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.struts2.portlet.util;
 
-import static org.apache.struts2.portlet.PortletConstants.*;
+package org.apache.struts2.portlet.util;
 
-import java.io.IOException;
-import java.io.Writer;
 import java.util.HashMap;
 import java.util.Map;
 
 import javax.portlet.PortletMode;
-import javax.portlet.PortletModeException;
-import javax.portlet.PortletSecurityException;
 import javax.portlet.PortletURL;
 import javax.portlet.RenderRequest;
 import javax.portlet.RenderResponse;
 import javax.portlet.WindowState;
-import javax.portlet.WindowStateException;
 
 import junit.framework.TestCase;
 
-import org.easymock.EasyMock;
+import org.apache.struts2.portlet.context.PortletActionContext;
+import org.easymock.MockControl;
 
 import com.opensymphony.xwork2.ActionContext;
 
@@ -50,154 +45,116 @@ public class PortletUrlHelperTest extend
 
     RenderRequest renderRequest;
 
-    MockUrl url;
+    PortletURL url;
+
+    MockControl renderResponseControl;
+
+    MockControl renderRequestControl;
+
+    MockControl portletUrlControl;
 
     public void setUp() throws Exception {
         super.setUp();
 
-        renderResponse = EasyMock.createMock(RenderResponse.class);
-        renderRequest = EasyMock.createMock(RenderRequest.class);
-        url = new MockUrl();
-        
-        
EasyMock.expect(renderRequest.getPortletMode()).andReturn(PortletMode.VIEW).anyTimes();
-        
EasyMock.expect(renderRequest.getWindowState()).andReturn(WindowState.NORMAL).anyTimes();
+        renderRequestControl = MockControl.createControl(RenderRequest.class);
+        renderResponseControl = 
MockControl.createControl(RenderResponse.class);
+        portletUrlControl = MockControl.createControl(PortletURL.class);
+
+        renderRequest = (RenderRequest) renderRequestControl.getMock();
+        renderResponse = (RenderResponse) renderResponseControl.getMock();
+        url = (PortletURL) portletUrlControl.getMock();
+
+        renderRequestControl.expectAndDefaultReturn(renderRequest
+                .getPortletMode(), PortletMode.VIEW);
+        renderRequestControl.expectAndDefaultReturn(renderRequest
+                .getWindowState(), WindowState.NORMAL);
 
-        Map<String, String> modeNamespaceMap = new HashMap<String, String>();
+        Map modeNamespaceMap = new HashMap();
         modeNamespaceMap.put("view", "/view");
         modeNamespaceMap.put("edit", "/edit");
         modeNamespaceMap.put("help", "/help");
 
-        Map<String, Object> context = new HashMap<String, Object>();
-        context.put(REQUEST, renderRequest);
-        context.put(RESPONSE, renderResponse);
-        context.put(PHASE, RENDER_PHASE);
-        context.put(MODE_NAMESPACE_MAP, modeNamespaceMap);
+        Map context = new HashMap();
+        context.put(PortletActionContext.REQUEST, renderRequest);
+        context.put(PortletActionContext.RESPONSE, renderResponse);
+        context.put(PortletActionContext.PHASE,
+                PortletActionContext.RENDER_PHASE);
+        context.put(PortletActionContext.MODE_NAMESPACE_MAP, modeNamespaceMap);
 
         ActionContext.setContext(new ActionContext(context));
 
     }
 
     public void testCreateRenderUrlWithNoModeOrState() throws Exception {
-       EasyMock.expect(renderResponse.createRenderURL()).andReturn(url);
-
-        EasyMock.replay(renderRequest);
-        EasyMock.replay(renderResponse);
+        renderResponseControl.expectAndReturn(renderResponse.createRenderURL(),
+                url);
 
-        (new PortletUrlHelper()).buildUrl("testAction", null, null,
+        url.setPortletMode(PortletMode.VIEW);
+        url.setWindowState(WindowState.NORMAL);
+        url.setParameters(null);
+        portletUrlControl.setMatcher(MockControl.ALWAYS_MATCHER);
+        renderRequestControl.replay();
+        renderResponseControl.replay();
+        portletUrlControl.replay();
+        PortletUrlHelper.buildUrl("testAction", null, null,
                 new HashMap(), null, null, null);
-        assertEquals(PortletMode.VIEW, url.getPortletMode());
-        assertEquals(WindowState.NORMAL, url.getWindowState());
-        assertEquals("testAction", url.getParameterMap().get(ACTION_PARAM)[0]);
-        assertEquals("view", url.getParameterMap().get(MODE_PARAM)[0]);
+        portletUrlControl.verify();
+        renderRequestControl.verify();
+        renderResponseControl.verify();
     }
 
     public void testCreateRenderUrlWithDifferentPortletMode() throws Exception 
{
-       EasyMock.expect(renderResponse.createRenderURL()).andReturn(url);
+        renderResponseControl.expectAndReturn(renderResponse.createRenderURL(),
+                url);
 
-        EasyMock.replay(renderRequest);
-        EasyMock.replay(renderResponse);
-
-        (new PortletUrlHelper()).buildUrl("testAction", null, null,
+        url.setPortletMode(PortletMode.EDIT);
+        url.setWindowState(WindowState.NORMAL);
+        url.setParameters(null);
+        portletUrlControl.setMatcher(MockControl.ALWAYS_MATCHER);
+        renderRequestControl.replay();
+        renderResponseControl.replay();
+        portletUrlControl.replay();
+        PortletUrlHelper.buildUrl("testAction", null, null,
                 new HashMap(), null, "edit", null);
-        
-        assertEquals(PortletMode.EDIT, url.getPortletMode());
-        assertEquals(WindowState.NORMAL, url.getWindowState());
-        assertEquals("testAction", url.getParameterMap().get(ACTION_PARAM)[0]);
-        assertEquals("edit", url.getParameterMap().get(MODE_PARAM)[0]);
+        portletUrlControl.verify();
+        renderRequestControl.verify();
+        renderResponseControl.verify();
     }
 
     public void testCreateRenderUrlWithDifferentWindowState() throws Exception 
{
-       EasyMock.expect(renderResponse.createRenderURL()).andReturn(url);
-        
-        EasyMock.replay(renderRequest);
-        EasyMock.replay(renderResponse);
-        
-        (new PortletUrlHelper()).buildUrl("testAction", null, null,
+        renderResponseControl.expectAndReturn(renderResponse.createRenderURL(),
+                url);
+
+        url.setPortletMode(PortletMode.VIEW);
+        url.setWindowState(WindowState.MAXIMIZED);
+        url.setParameters(null);
+        portletUrlControl.setMatcher(MockControl.ALWAYS_MATCHER);
+        renderRequestControl.replay();
+        renderResponseControl.replay();
+        portletUrlControl.replay();
+        PortletUrlHelper.buildUrl("testAction", null, null,
                 new HashMap(), null, null, "maximized");
-        
-        assertEquals(PortletMode.VIEW, url.getPortletMode());
-        assertEquals(WindowState.MAXIMIZED, url.getWindowState());
-        assertEquals("testAction", url.getParameterMap().get(ACTION_PARAM)[0]);
-        assertEquals("view", url.getParameterMap().get(MODE_PARAM)[0]);
+        portletUrlControl.verify();
+        renderRequestControl.verify();
+        renderResponseControl.verify();
     }
 
     public void testCreateActionUrl() throws Exception {
-       EasyMock.expect(renderResponse.createActionURL()).andReturn(url);
-        
-        EasyMock.replay(renderResponse);
-        EasyMock.replay(renderRequest);
-        
-        (new PortletUrlHelper()).buildUrl("testAction", null, null,
-                new HashMap(), "action", null, null);
-        
-        assertEquals(PortletMode.VIEW, url.getPortletMode());
-        assertEquals(WindowState.NORMAL, url.getWindowState());
-        assertEquals("testAction", url.getParameterMap().get(ACTION_PARAM)[0]);
-        assertEquals("view", url.getParameterMap().get(MODE_PARAM)[0]);
-    }
-    
-    @Override
-    public void tearDown() {
-       EasyMock.verify(renderResponse);
-       EasyMock.verify(renderRequest);
-    }
-    
-    private class MockUrl implements PortletURL {
+        renderResponseControl.expectAndReturn(renderResponse.createActionURL(),
+                url);
 
-       private PortletMode portletMode;
-               private WindowState windowState;
-               private Map<String, String[]> parameters;
-       
-               public PortletMode getPortletMode() {
-                       return portletMode;
-               }
-
-               public WindowState getWindowState() {
-                       return windowState;
-               }
-
-               public void removePublicRenderParameter(String name) {
-               }
-
-               public void setPortletMode(PortletMode portletMode) throws 
PortletModeException {
-                       this.portletMode = portletMode;
-               }
-
-               public void setWindowState(WindowState windowState) throws 
WindowStateException {
-                       this.windowState = windowState;
-               }
-
-               public void addProperty(String arg0, String arg1) {
-               }
-
-               public Map<String, String[]> getParameterMap() {
-                       return parameters;
-               }
-
-               public void setParameter(String name, String value) {
-                       parameters.put(name, new String[]{value});
-               }
-
-               public void setParameter(String name, String[] values) {
-                       parameters.put(name, values);
-               }
-
-               public void setParameters(Map<String, String[]> parameters) {
-                       this.parameters = parameters;
-               }
-
-               public void setProperty(String arg0, String arg1) {
-               }
-
-               public void setSecure(boolean arg0) throws 
PortletSecurityException {
-               }
-
-               public void write(Writer arg0) throws IOException {
-               }
-
-               public void write(Writer arg0, boolean arg1) throws IOException 
{
-               }
-       
+        url.setPortletMode(PortletMode.VIEW);
+        url.setWindowState(WindowState.NORMAL);
+        url.setParameters(null);
+        portletUrlControl.setMatcher(MockControl.ALWAYS_MATCHER);
+        renderRequestControl.replay();
+        renderResponseControl.replay();
+        portletUrlControl.replay();
+        PortletUrlHelper.buildUrl("testAction", null, null,
+                new HashMap(), "action", null, null);
+        portletUrlControl.verify();
+        renderRequestControl.verify();
+        renderResponseControl.verify();
     }
 
 }

Modified: 
struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/views/jsp/PortletUrlTagTest.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/views/jsp/PortletUrlTagTest.java?rev=1139729&r1=1139728&r2=1139729&view=diff
==============================================================================
--- 
struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/views/jsp/PortletUrlTagTest.java
 (original)
+++ 
struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/views/jsp/PortletUrlTagTest.java
 Sun Jun 26 08:30:00 2011
@@ -18,398 +18,382 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+
 package org.apache.struts2.views.jsp;
 
-import java.util.Arrays;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.Map;
 
-import javax.portlet.*;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.jsp.PageContext;
-
-import junit.textui.TestRunner;
+import javax.portlet.PortletContext;
+import javax.portlet.PortletMode;
+import javax.portlet.PortletModeException;
+import javax.portlet.PortletRequest;
+import javax.portlet.PortletURL;
+import javax.portlet.WindowState;
+import javax.portlet.WindowStateException;
 
-import org.apache.struts2.dispatcher.Dispatcher;
+import org.apache.struts2.ServletActionContext;
+import org.apache.struts2.StrutsStatics;
+import org.apache.struts2.StrutsTestCase;
 import org.apache.struts2.portlet.PortletActionConstants;
+import org.apache.struts2.portlet.servlet.PortletServletRequest;
 import org.apache.struts2.portlet.util.PortletUrlHelper;
-import org.apache.struts2.StrutsStatics;
-import static org.apache.struts2.StrutsStatics.*;
-import org.jmock.Mock;
-import org.jmock.cglib.MockObjectTestCase;
-import org.jmock.core.Constraint;
+import org.springframework.mock.web.portlet.MockPortalContext;
+import org.springframework.mock.web.portlet.MockPortletContext;
+import org.springframework.mock.web.portlet.MockPortletURL;
+import org.springframework.mock.web.portlet.MockRenderRequest;
+import org.springframework.mock.web.portlet.MockRenderResponse;
 
 import com.mockobjects.servlet.MockJspWriter;
+import com.mockobjects.servlet.MockPageContext;
 import com.opensymphony.xwork2.ActionContext;
-import com.opensymphony.xwork2.ActionInvocation;
-import com.opensymphony.xwork2.ActionProxy;
-import static com.opensymphony.xwork2.ActionContext.SESSION;
-import static com.opensymphony.xwork2.ActionContext.PARAMETERS;
+import com.opensymphony.xwork2.mock.MockActionInvocation;
+import com.opensymphony.xwork2.mock.MockActionProxy;
 import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.util.ValueStackFactory;
 
 /**
  */
 @SuppressWarnings("unchecked")
-public class PortletUrlTagTest extends MockObjectTestCase {
-
-    URLTag tag = new URLTag();
-
-    Mock mockHttpReq = null;
-
-    Mock mockHttpRes = null;
+public class PortletUrlTagTest extends StrutsTestCase {
 
-    Mock mockPortletReq = null;
-
-    Mock mockPortletRes = null;
-
-    Mock mockPageCtx = null;
-
-    Mock mockPortletUrl = null;
-
-    MockJspWriter mockJspWriter = null;
-
-    Mock mockCtx = null;
-
-    ValueStack stack = null;
-
-    public static void main(String[] args) {
-        TestRunner.run(PortletUrlTagTest.class);
-    }
-
-
-    public void setUp() throws Exception {
-        super.setUp();
-
-        Dispatcher du = new Dispatcher(null, new HashMap());
-        du.init();
-        Dispatcher.setInstance(du);
-
-        stack = 
du.getContainer().getInstance(ValueStackFactory.class).createValueStack();
-        stack.getContext().put(ActionContext.CONTAINER, du.getContainer());
-        ActionContext.setContext(new ActionContext(stack.getContext()));
-        
-
-
-        mockHttpReq = mock(HttpServletRequest.class);
-        mockHttpRes = mock(HttpServletResponse.class);
-        mockPortletReq = mock(RenderRequest.class);
-        mockPortletRes = mock(RenderResponse.class);
-        mockPageCtx = mock(PageContext.class);
-        mockPortletUrl = mock(PortletURL.class);
-        mockJspWriter = new MockJspWriter();
-        mockCtx = mock(PortletContext.class);
-
-        mockPageCtx.stubs().method("getRequest").will(
-                returnValue((HttpServletRequest) mockHttpReq.proxy()));
-        mockPageCtx.stubs().method("getResponse").will(
-                returnValue((HttpServletResponse) mockHttpRes.proxy()));
-        mockPageCtx.stubs().method("getOut").will(returnValue(mockJspWriter));
-
-        mockHttpReq.stubs().method("getScheme").will(returnValue("http"));
-        mockHttpReq.stubs().method("getAttribute").with(
-                eq("struts.valueStack")).will(returnValue(stack));
-        mockHttpReq.stubs().method("getAttribute").with(
-                eq("javax.portlet.response")).will(
-                returnValue((PortletResponse) mockPortletRes.proxy()));
-        mockHttpReq.stubs().method("getAttribute").with(
-                eq("javax.portlet.request")).will(
-                returnValue((PortletRequest) mockPortletReq.proxy()));
-
-        
mockPortletReq.stubs().method("getPortletMode").will(returnValue(PortletMode.VIEW));
-        
mockPortletReq.stubs().method("getWindowState").will(returnValue(WindowState.NORMAL));
-        
mockPortletReq.stubs().method("getContextPath").will(returnValue("/contextPath"));
-
-        tag.setPageContext((PageContext) mockPageCtx.proxy());
-
-        Map modeMap = new HashMap();
-        modeMap.put(PortletMode.VIEW, "/view");
-        modeMap.put(PortletMode.HELP, "/help");
-        modeMap.put(PortletMode.EDIT, "/edit");
-        Map sessionMap = new HashMap();
-        Map contextMap = new HashMap();
-        contextMap.put(ActionContext.SESSION, sessionMap);
-        contextMap.put(PortletActionConstants.REQUEST, mockPortletReq.proxy());
-        contextMap.put(PortletActionConstants.RESPONSE, 
mockPortletRes.proxy());
-        contextMap.put(PortletActionConstants.PHASE, 
PortletActionConstants.RENDER_PHASE);
-        contextMap.put(PortletActionConstants.MODE_NAMESPACE_MAP, modeMap);
-        contextMap.put(STRUTS_PORTLET_CONTEXT, mockCtx.proxy());
-        ActionContext ctx = new ActionContext(contextMap);
-        ctx.setValueStack(stack);
-        ActionContext.setContext(ctx);
-    }
-
-    public void testEnsureParamsAreStringArrays() {
-        Map params = new HashMap();
-        params.put("param1", "Test1");
-        params.put("param2", new String[] { "Test2" });
-
-        Map result = PortletUrlHelper.ensureParamsAreStringArrays(params);
-        assertEquals(2, result.size());
-        assertTrue(result.get("param1") instanceof String[]);
-    }
-
-    public void testSetWindowState() throws Exception {
-
-        PortletMode mode = PortletMode.VIEW;
-
-        mockHttpReq.stubs().method("getQueryString").will(returnValue(""));
-
-        mockPortletRes.expects(once()).method("createRenderURL").will(
-                returnValue((PortletURL) mockPortletUrl.proxy()));
-        
mockCtx.expects(atLeastOnce()).method("getMajorVersion").will(returnValue(1));
-
-        Map paramMap = new HashMap();
-        paramMap.put(PortletActionConstants.ACTION_PARAM, new 
String[]{"/view/testAction"});
-        paramMap.put(PortletActionConstants.MODE_PARAM, new 
String[]{mode.toString()});
-
-        mockPortletUrl.expects(once()).method("setParameters").with(new 
ParamMapConstraint(paramMap));
-        
mockPortletUrl.expects(once()).method("setWindowState").with(eq(WindowState.MAXIMIZED));
-        
mockPortletUrl.expects(once()).method("setPortletMode").with(eq(PortletMode.VIEW));
-
-        tag.setAction("testAction");
-        tag.setWindowState("maximized");
-        tag.doStartTag();
-        tag.doEndTag();
-
-    }
-
-    public void testSetPortletMode() throws Exception  {
-
-        PortletMode mode = PortletMode.HELP;
-
-        mockHttpReq.stubs().method("getQueryString").will(returnValue(""));
-
-        mockPortletRes.expects(once()).method("createRenderURL").will(
-                returnValue((PortletURL) mockPortletUrl.proxy()));
-        
mockCtx.expects(atLeastOnce()).method("getMajorVersion").will(returnValue(1));
-
-        Map paramMap = new HashMap();
-        paramMap.put(PortletActionConstants.ACTION_PARAM, new 
String[]{"/help/testAction"});
-        paramMap.put(PortletActionConstants.MODE_PARAM, new 
String[]{mode.toString()});
-
-        mockPortletUrl.expects(once()).method("setParameters").with(new 
ParamMapConstraint(paramMap));
-        
mockPortletUrl.expects(once()).method("setPortletMode").with(eq(PortletMode.HELP));
-        
mockPortletUrl.expects(once()).method("setWindowState").with(eq(WindowState.NORMAL));
-
-        tag.setAction("testAction");
-        tag.setPortletMode("help");
-        tag.doStartTag();
-        tag.doEndTag();
-    }
-
-    public void testUrlWithQueryParams() throws Exception {
-
-        PortletMode mode = PortletMode.VIEW;
-
-        mockHttpReq.stubs().method("getQueryString").will(returnValue(""));
-
-        mockPortletRes.expects(once()).method("createRenderURL").will(
-                returnValue((PortletURL) mockPortletUrl.proxy()));
-        
mockCtx.expects(atLeastOnce()).method("getMajorVersion").will(returnValue(1));
-
-        Map paramMap = new HashMap();
-        paramMap.put(PortletActionConstants.ACTION_PARAM, new 
String[]{"/view/testAction"});
-        paramMap.put("testParam1", new String[]{"testValue1"});
-        paramMap.put(PortletActionConstants.MODE_PARAM, new 
String[]{mode.toString()});
-
-        mockPortletUrl.expects(once()).method("setParameters").with(new 
ParamMapConstraint(paramMap));
-        
mockPortletUrl.expects(once()).method("setPortletMode").with(eq(PortletMode.VIEW));
-        
mockPortletUrl.expects(once()).method("setWindowState").with(eq(WindowState.NORMAL));
-
-        tag.setAction("testAction?testParam1=testValue1");
-        tag.doStartTag();
-        tag.doEndTag();
-    }
-
-    public void testActionUrl() throws Exception {
-
-        PortletMode mode = PortletMode.VIEW;
-
-        mockHttpReq.stubs().method("getQueryString").will(returnValue(""));
-
-        mockPortletRes.expects(once()).method("createActionURL").will(
-                returnValue((PortletURL) mockPortletUrl.proxy()));
-        
mockCtx.expects(atLeastOnce()).method("getMajorVersion").will(returnValue(1));
-
-        Map paramMap = new HashMap();
-        paramMap.put(PortletActionConstants.ACTION_PARAM, new 
String[]{"/view/testAction"});
-        paramMap.put(PortletActionConstants.MODE_PARAM, new 
String[]{mode.toString()});
-
-        mockPortletUrl.expects(once()).method("setParameters").with(new 
ParamMapConstraint(paramMap));
-        
mockPortletUrl.expects(once()).method("setPortletMode").with(eq(PortletMode.VIEW));
-        
mockPortletUrl.expects(once()).method("setWindowState").with(eq(WindowState.NORMAL));
-
-        tag.setAction("testAction");
-        tag.setPortletUrlType("action");
-        tag.doStartTag();
-        tag.doEndTag();
-    }
-
-    public void testResourceUrl() throws Exception {
-        mockHttpReq.stubs().method("getQueryString").will(returnValue(""));
-        
mockPortletRes.expects(once()).method("encodeURL").will(returnValue("/contextPath/image.gif"));
-        mockJspWriter.setExpectedData("/contextPath/image.gif");
-        
mockCtx.expects(atLeastOnce()).method("getMajorVersion").will(returnValue(1));
-        tag.setValue("image.gif");
-        tag.doStartTag();
-        tag.doEndTag();
-        mockJspWriter.verify();
-    }
-
-    public void testResourceUrlWithNestedParam() throws Exception {
-        mockHttpReq.stubs().method("getQueryString").will(returnValue(""));
-        
mockPortletRes.expects(once()).method("encodeURL").with(eq("/contextPath/image.gif?testParam1=testValue1")).will(returnValue("/contextPath/image.gif?testParam1=testValue1"));
-        
mockJspWriter.setExpectedData("/contextPath/image.gif?testParam1=testValue1");
-        
mockCtx.expects(atLeastOnce()).method("getMajorVersion").will(returnValue(1));
-
-        ParamTag paramTag = new ParamTag();
-        paramTag.setPageContext((PageContext)mockPageCtx.proxy());
-        paramTag.setParent(tag);
-        paramTag.setName("testParam1");
-        paramTag.setValue("'testValue1'");
-        tag.setValue("image.gif");
-        tag.doStartTag();
-        paramTag.doStartTag();
-        paramTag.doEndTag();
-        tag.doEndTag();
-        mockJspWriter.verify();
-    }
-
-    public void testResourceUrlWithTwoNestedParam() throws Exception {
-        mockHttpReq.stubs().method("getQueryString").will(returnValue(""));
-        
mockPortletRes.expects(once()).method("encodeURL").with(eq("/contextPath/image.gif?testParam1=testValue1&testParam2=testValue2")).will(returnValue("/contextPath/image.gif?testParam1=testValue1&testParam2=testValue2"));
-        
mockJspWriter.setExpectedData("/contextPath/image.gif?testParam1=testValue1&testParam2=testValue2");
-        
mockCtx.expects(atLeastOnce()).method("getMajorVersion").will(returnValue(1));
-
-        ParamTag paramTag = new ParamTag();
-        paramTag.setPageContext((PageContext)mockPageCtx.proxy());
-        paramTag.setParent(tag);
-        paramTag.setName("testParam1");
-        paramTag.setValue("'testValue1'");
-        ParamTag paramTag2 = new ParamTag();
-        paramTag2.setPageContext((PageContext)mockPageCtx.proxy());
-        paramTag2.setParent(tag);
-        paramTag2.setName("testParam2");
-        paramTag2.setValue("'testValue2'");
-        tag.setValue("image.gif");
-        tag.doStartTag();
-        paramTag.doStartTag();
-        paramTag.doEndTag();
-        paramTag2.doStartTag();
-        paramTag2.doEndTag();
-        tag.doEndTag();
-        mockJspWriter.verify();
-    }
-
-    public void testUrlWithMethod() throws Exception {
-       PortletMode mode = PortletMode.VIEW;
-       mockHttpReq.stubs().method("getQueryString").will(returnValue(""));
-        mockPortletRes.expects(once()).method("createRenderURL").will(
-                returnValue((PortletURL) mockPortletUrl.proxy()));
-        
mockCtx.expects(atLeastOnce()).method("getMajorVersion").will(returnValue(1));
-       tag.setAction("testAction");
-       Map paramMap = new HashMap();
-        paramMap.put(PortletActionConstants.ACTION_PARAM, new 
String[]{"/view/testAction!input"});
-        paramMap.put(PortletActionConstants.MODE_PARAM, new 
String[]{mode.toString()});
-        mockPortletUrl.expects(once()).method("setParameters").with(new 
ParamMapConstraint(paramMap));
-        
mockPortletUrl.expects(once()).method("setPortletMode").with(eq(PortletMode.VIEW));
-        
mockPortletUrl.expects(once()).method("setWindowState").with(eq(WindowState.NORMAL));
-       tag.setMethod("input");
-       tag.doStartTag();
-       tag.doEndTag();
-    }
-    
-    public void testUrlWithNoActionOrMethod() throws Exception {
-       PortletMode mode = PortletMode.VIEW;
-       mockHttpReq.stubs().method("getQueryString").will(returnValue(""));
-        mockPortletRes.expects(once()).method("createRenderURL").will(
-                returnValue((PortletURL) mockPortletUrl.proxy()));
-        
mockCtx.expects(atLeastOnce()).method("getMajorVersion").will(returnValue(1));
-       Map paramMap = new HashMap();
-       
-       Mock mockActionProxy = mock(ActionProxy.class);
-       
mockActionProxy.stubs().method("getActionName").will(returnValue("currentExecutingAction"));
-       final ActionProxy proxy = (ActionProxy)mockActionProxy.proxy();
-       
-       Mock mockActionInvocation = mock(ActionInvocation.class);
-       
mockActionInvocation.stubs().method("getProxy").will(returnValue(proxy));
-       ActionInvocation ai = (ActionInvocation)mockActionInvocation.proxy();
-
-       stack.getContext().put(ActionContext.ACTION_INVOCATION, ai);
-        paramMap.put(PortletActionConstants.ACTION_PARAM, new 
String[]{"/view/currentExecutingAction"});
-        paramMap.put(PortletActionConstants.MODE_PARAM, new 
String[]{mode.toString()});
-        mockPortletUrl.expects(once()).method("setParameters").with(new 
ParamMapConstraint(paramMap));
-        
mockPortletUrl.expects(once()).method("setPortletMode").with(eq(PortletMode.VIEW));
-        
mockPortletUrl.expects(once()).method("setWindowState").with(eq(WindowState.NORMAL));
-       tag.doStartTag();
-       tag.doEndTag();         
-    }
-    
-    private static class ParamMapConstraint implements Constraint {
-
-        private Map myExpectedMap = null;
-        private Map myActualMap = null;
-
-        public ParamMapConstraint(Map expectedMap) {
-            if(expectedMap == null) {
-                throw new IllegalArgumentException("Use an isNull constraint 
instead!");
-            }
-            myExpectedMap = expectedMap;
-        }
-
-        /* (non-Javadoc)
-         * @see org.jmock.core.Constraint#eval(java.lang.Object)
-         */
-        public boolean eval(Object val) {
-            myActualMap = (Map)val;
-            boolean result = false;
-            if(val != null) {
-                if(myExpectedMap.size() == myActualMap.size()) {
-                    Iterator keys = myExpectedMap.keySet().iterator();
-                    boolean allSame = true;
-                    while(keys.hasNext()) {
-                        Object key = keys.next();
-                        if(!myActualMap.containsKey(key)) {
-                            allSame = false;
-                            break;
-                        }
-                        else {
-                            String[] expected = 
(String[])myExpectedMap.get(key);
-                            String[] actual = (String[])myActualMap.get(key);
-                            if(!Arrays.equals(expected, actual)) {
-                                allSame = false;
-                                break;
-                            }
-                        }
-                    }
-                    result = allSame;
-                }
-            }
-            return result;
-        }
-
-        /* (non-Javadoc)
-         * @see 
org.jmock.core.SelfDescribing#describeTo(java.lang.StringBuffer)
-         */
-        public StringBuffer describeTo(StringBuffer sb) {
-               Iterator<String> it = myExpectedMap.keySet().iterator();
-               while(it.hasNext()) {
-                       String key = it.next();
-                       sb.append(key).append("=");
-                       String[] value = (String[])myExpectedMap.get(key);
-                       sb.append(value[0]);
-                       if(it.hasNext()) {
-                               sb.append(", ");
-                       }
-               }
-            return sb;
-        }
+       private URLTag tag = new URLTag();
 
+       private ValueStack stack = null;
 
+       private ActionContext context = null;
 
-    }
+       private MockRenderRequest renderRequest;
+
+       private MockPortletUrl renderUrl;
+
+       private MockPortletUrl actionUrl;
+
+       private MockRenderResponse renderResponse;
+
+       private MockPageContext pageContext;
+
+       private MockActionInvocation actionInvocation;
+
+       private MockActionProxy actionProxy;
+
+       private MockJspWriter jspWriter;
+       
+       private MockPortletContext portletContext;
+
+       public void setUp() throws Exception {
+               super.setUp();
+
+               context = ActionContext.getContext();
+               stack = context.getValueStack();
+
+               portletContext = new MockPortletContext();
+               renderRequest = new MockRenderRequest();
+               
renderRequest.setAttribute(ServletActionContext.STRUTS_VALUESTACK_KEY, stack);
+               renderUrl = new MockPortletUrl("render");
+               actionUrl = new MockPortletUrl("action");
+               renderResponse = new MockRenderResponse() {
+                       @Override
+                       public PortletURL createRenderURL() {
+                               return renderUrl;
+                       }
+
+                       @Override
+                       public PortletURL createActionURL() {
+                               return actionUrl;
+                       }
+               };
+
+               Map modeMap = new HashMap();
+               modeMap.put(PortletMode.VIEW, "/view");
+               modeMap.put(PortletMode.HELP, "/help");
+               modeMap.put(PortletMode.EDIT, "/edit");
+
+               context.put(PortletActionConstants.REQUEST, renderRequest);
+               context.put(PortletActionConstants.RESPONSE, renderResponse);
+               context.put(PortletActionConstants.PHASE, 
PortletActionConstants.RENDER_PHASE);
+               context.put(PortletActionConstants.MODE_NAMESPACE_MAP, modeMap);
+               context.put(StrutsStatics.STRUTS_PORTLET_CONTEXT, 
portletContext);
+
+               actionInvocation = new MockActionInvocation();
+               actionProxy = new MockActionProxy();
+
+               actionInvocation.setAction(new Object());
+               actionInvocation.setProxy(actionProxy);
+               actionInvocation.setStack(stack);
+
+               context.setActionInvocation(actionInvocation);
+
+               pageContext = new MockPageContext();
+               pageContext.setRequest(new PortletServletRequest(renderRequest, 
null));
+               jspWriter = new MockJspWriter();
+               pageContext.setJspWriter(jspWriter);
+
+               tag.setPageContext(pageContext);
+
+       }
+
+       public void testEnsureParamsAreStringArrays() {
+               Map params = new HashMap();
+               params.put("param1", "Test1");
+               params.put("param2", new String[] { "Test2" });
+
+               Map result = 
PortletUrlHelper.ensureParamsAreStringArrays(params);
+               assertEquals(2, result.size());
+               assertTrue(result.get("param1") instanceof String[]);
+       }
+
+       public void testSetWindowState() throws Exception {
+
+               tag.setAction("testAction");
+               tag.setWindowState("maximized");
+               tag.doStartTag();
+               tag.doEndTag();
+
+               assertEquals("/view/testAction", 
renderUrl.getParameter(PortletActionConstants.ACTION_PARAM));
+               assertEquals(PortletMode.VIEW.toString(), 
renderUrl.getParameter(PortletActionConstants.MODE_PARAM));
+               assertEquals(PortletMode.VIEW, renderUrl.getPortletMode());
+               assertEquals(WindowState.MAXIMIZED, renderUrl.getWindowState());
+
+       }
+
+       public void testSetPortletMode() throws Exception {
+
+               tag.setAction("testAction");
+               tag.setPortletMode("help");
+               tag.doStartTag();
+               tag.doEndTag();
+
+               assertEquals("/help/testAction", 
renderUrl.getParameter(PortletActionConstants.ACTION_PARAM));
+               assertEquals(PortletMode.HELP.toString(), 
renderUrl.getParameter(PortletActionConstants.MODE_PARAM));
+               assertEquals(PortletMode.HELP, renderUrl.getPortletMode());
+               assertEquals(WindowState.NORMAL, renderUrl.getWindowState());
+       }
+
+       public void testUrlWithQueryParams() throws Exception {
+
+               tag.setAction("testAction?testParam1=testValue1");
+               tag.doStartTag();
+               tag.doEndTag();
+
+               assertEquals("/view/testAction", 
renderUrl.getParameter(PortletActionConstants.ACTION_PARAM));
+               assertEquals("testValue1", 
renderUrl.getParameter("testParam1"));
+               assertEquals(PortletMode.VIEW.toString(), 
renderUrl.getParameter(PortletActionConstants.MODE_PARAM));
+               assertEquals(PortletMode.VIEW, renderUrl.getPortletMode());
+               assertEquals(WindowState.NORMAL, renderUrl.getWindowState());
+       }
+
+       public void testActionUrl() throws Exception {
+
+               tag.setAction("testAction");
+               tag.setPortletUrlType("action");
+               tag.doStartTag();
+               tag.doEndTag();
+
+               assertEquals("/view/testAction", 
actionUrl.getParameter(PortletActionConstants.ACTION_PARAM));
+               assertEquals(PortletMode.VIEW, actionUrl.getPortletMode());
+               assertEquals(WindowState.NORMAL, actionUrl.getWindowState());
+       }
+
+       public void testResourceUrl() throws Exception {
+               renderRequest.setContextPath("/myPortlet");
+               jspWriter.setExpectedData("/myPortlet/image.gif");
+               tag.setValue("image.gif");
+               tag.doStartTag();
+               tag.doEndTag();
+               jspWriter.verify();
+       }
+
+       public void testResourceUrlWithNestedParam() throws Exception {
+               renderRequest.setContextPath("/myPortlet");
+               
jspWriter.setExpectedData("/myPortlet/image.gif?testParam1=testValue1");
+
+               ParamTag paramTag = new ParamTag();
+               paramTag.setPageContext(pageContext);
+               paramTag.setParent(tag);
+               paramTag.setName("testParam1");
+               paramTag.setValue("'testValue1'");
+               tag.setValue("image.gif");
+               tag.doStartTag();
+               paramTag.doStartTag();
+               paramTag.doEndTag();
+               tag.doEndTag();
+               jspWriter.verify();
+       }
+
+       public void testResourceUrlWithTwoNestedParam() throws Exception {
+               renderRequest.setContextPath("/myPortlet");
+               
jspWriter.setExpectedData("/myPortlet/image.gif?testParam1=testValue1&testParam2=testValue2");
+
+               ParamTag paramTag = new ParamTag();
+               paramTag.setPageContext(pageContext);
+               paramTag.setParent(tag);
+               paramTag.setName("testParam1");
+               paramTag.setValue("'testValue1'");
+               ParamTag paramTag2 = new ParamTag();
+               paramTag2.setPageContext(pageContext);
+               paramTag2.setParent(tag);
+               paramTag2.setName("testParam2");
+               paramTag2.setValue("'testValue2'");
+               tag.setValue("image.gif");
+               tag.doStartTag();
+               paramTag.doStartTag();
+               paramTag.doEndTag();
+               paramTag2.doStartTag();
+               paramTag2.doEndTag();
+               tag.doEndTag();
+               jspWriter.verify();
+       }
+       
+       public void testResourceUrlWithNestedParamThatIsNotString() throws 
Exception {
+               renderRequest.setContextPath("/myPortlet");
+               jspWriter.setExpectedData("/myPortlet/image.gif?id=5");
+               
+               ParamTag paramTag = new ParamTag();
+               paramTag.setPageContext(pageContext);
+               paramTag.setParent(tag);
+               paramTag.setName("id");
+               paramTag.setValue("5");
+               
+               tag.setValue("image.gif");
+               tag.doStartTag();
+               paramTag.doStartTag();
+               paramTag.doEndTag();
+               tag.doEndTag();
+               jspWriter.verify();
+       }
+       
+       public void 
testResourceUrlWithNestedOgnlExpressionParamThatIsNotString() throws Exception {
+               renderRequest.setContextPath("/myPortlet");
+               jspWriter.setExpectedData("/myPortlet/image.gif?id=5");
+               
+               Object o = new Object() {
+                       public Integer getId() {
+                               return 5;
+                       }
+               };
+               tag.getStack().push(o);
+               
+               ParamTag paramTag = new ParamTag();
+               paramTag.setPageContext(pageContext);
+               paramTag.setParent(tag);
+               paramTag.setName("id");
+               paramTag.setValue("id");
+               
+               tag.setValue("image.gif");
+               tag.doStartTag();
+               paramTag.doStartTag();
+               paramTag.doEndTag();
+               tag.doEndTag();
+               jspWriter.verify();
+       }
+
+       public void testUrlWithMethod() throws Exception {
+               tag.setAction("testAction");
+               tag.setMethod("input");
+               tag.doStartTag();
+               tag.doEndTag();
+
+               assertEquals("/view/testAction!input", 
renderUrl.getParameter(PortletActionConstants.ACTION_PARAM));
+               assertEquals(PortletMode.VIEW.toString(), 
renderUrl.getParameter(PortletActionConstants.MODE_PARAM));
+               assertEquals(PortletMode.VIEW, renderUrl.getPortletMode());
+               assertEquals(WindowState.NORMAL, renderUrl.getWindowState());
+       }
+
+       public void testUrlWithNoActionOrMethod() throws Exception {
+               actionProxy.setActionName("currentExecutingAction");
+               actionProxy.setNamespace("/currentNamespace");
+               tag.doStartTag();
+               tag.doEndTag();
+
+               assertEquals("/view/currentNamespace/currentExecutingAction", 
renderUrl
+                               
.getParameter(PortletActionConstants.ACTION_PARAM));
+               assertEquals(PortletMode.VIEW.toString(), 
renderUrl.getParameter(PortletActionConstants.MODE_PARAM));
+               assertEquals(PortletMode.VIEW, renderUrl.getPortletMode());
+               assertEquals(WindowState.NORMAL, renderUrl.getWindowState());
+       }
+
+       public void testUrlShouldNotIncludeParamsFromHttpQueryString() throws 
Exception {
+
+               PortletServletRequestWithQueryString req = new 
PortletServletRequestWithQueryString(renderRequest, null);
+               
req.setQueryString("thisParamShouldNotBeIncluded=thisValueShouldNotBeIncluded");
+               pageContext.setRequest(req);
+               tag.setAction("testAction?testParam1=testValue1");
+               tag.doStartTag();
+               tag.doEndTag();
+
+               assertEquals("/view/testAction", 
renderUrl.getParameter(PortletActionConstants.ACTION_PARAM));
+               assertEquals("testValue1", 
renderUrl.getParameter("testParam1"));
+               
assertNull(renderUrl.getParameter("thisParamShouldNotBeIncluded"));
+               assertEquals(PortletMode.VIEW.toString(), 
renderUrl.getParameter(PortletActionConstants.MODE_PARAM));
+               assertEquals(PortletMode.VIEW, renderUrl.getPortletMode());
+               assertEquals(WindowState.NORMAL, renderUrl.getWindowState());
+       }
+
+       public void testUrlShouldIgnoreIncludeParams() throws Exception {
+               PortletServletRequestWithQueryString req = new 
PortletServletRequestWithQueryString(renderRequest, null);
+               
req.setQueryString("thisParamShouldNotBeIncluded=thisValueShouldNotBeIncluded");
+               pageContext.setRequest(req);
+               tag.setAction("testAction?testParam1=testValue1");
+               tag.setIncludeParams("GET");
+               tag.doStartTag();
+               tag.doEndTag();
+
+               assertEquals("/view/testAction", 
renderUrl.getParameter(PortletActionConstants.ACTION_PARAM));
+               assertEquals("testValue1", 
renderUrl.getParameter("testParam1"));
+               
assertNull(renderUrl.getParameter("thisParamShouldNotBeIncluded"));
+               assertEquals(PortletMode.VIEW.toString(), 
renderUrl.getParameter(PortletActionConstants.MODE_PARAM));
+               assertEquals(PortletMode.VIEW, renderUrl.getPortletMode());
+               assertEquals(WindowState.NORMAL, renderUrl.getWindowState());
+       }
+
+       private static class PortletServletRequestWithQueryString extends 
PortletServletRequest {
+
+               private String queryString;
+
+               public PortletServletRequestWithQueryString(PortletRequest 
portletRequest, PortletContext portletContext) {
+                       super(portletRequest, portletContext);
+               }
+
+               public void setQueryString(String queryString) {
+                       this.queryString = queryString;
+               }
+
+               @Override
+               public String getQueryString() {
+                       return queryString;
+               }
+
+       }
+
+       private static class MockPortletUrl extends MockPortletURL {
+
+               private PortletMode portletMode;
+
+               private WindowState windowState;
+
+               public MockPortletUrl(String urlType) {
+                       super(new MockPortalContext(), urlType);
+               }
+
+               @Override
+               public void setPortletMode(PortletMode portletMode) throws 
PortletModeException {
+                       super.setPortletMode(portletMode);
+                       this.portletMode = portletMode;
+               }
+
+               public PortletMode getPortletMode() {
+                       return portletMode;
+               }
+
+               @Override
+               public void setWindowState(WindowState windowState) throws 
WindowStateException {
+                       super.setWindowState(windowState);
+                       this.windowState = windowState;
+               }
+
+               public WindowState getWindowState() {
+                       return windowState;
+               }
 
+       }
 }

Modified: struts/struts2/trunk/pom.xml
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/pom.xml?rev=1139729&r1=1139728&r2=1139729&view=diff
==============================================================================
--- struts/struts2/trunk/pom.xml (original)
+++ struts/struts2/trunk/pom.xml Sun Jun 26 08:30:00 2011
@@ -87,7 +87,7 @@
         <currentVersion>${project.version}</currentVersion>
         
<struts2.springPlatformVersion>3.0.5.RELEASE</struts2.springPlatformVersion>
         <ognl.version>3.0.2</ognl.version>
-        <asm.version>3.3</asm.version>
+        <asm.version>3.1</asm.version>
         <tiles.version>2.0.6</tiles.version>
     </properties>
 
@@ -625,14 +625,14 @@
             <dependency>
                 <groupId>jmock</groupId>
                 <artifactId>jmock</artifactId>
-                <version>1.2.0</version>
+                <version>1.0.1</version>
                 <scope>test</scope>
             </dependency>
 
             <dependency>
                 <groupId>jmock</groupId>
                 <artifactId>jmock-cglib</artifactId>
-                <version>1.2.0</version>
+                <version>1.0.1</version>
                 <scope>test</scope>
             </dependency>
 
@@ -682,9 +682,9 @@
 
             <!-- Portlet -->
             <dependency>
-                <groupId>javax.portlet</groupId>
+                <groupId>portlet-api</groupId>
                 <artifactId>portlet-api</artifactId>
-                <version>2.0</version>
+                <version>1.0</version>
             </dependency>
 
             <dependency>


Reply via email to