View Javadoc

1   /*
2    * $Id: PortletUrlHelperTest.java 454571 2006-10-10 00:22:09Z jmitchell $
3    *
4    * Copyright 2006 The Apache Software Foundation.
5    *
6    * Licensed under the Apache License, Version 2.0 (the "License");
7    * you may not use this file except in compliance with the License.
8    * You may obtain a copy of the License at
9    *
10   *      http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing, software
13   * distributed under the License is distributed on an "AS IS" BASIS,
14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   * See the License for the specific language governing permissions and
16   * limitations under the License.
17   */
18  package org.apache.struts2.portlet.util;
19  
20  import java.util.HashMap;
21  import java.util.Map;
22  
23  import javax.portlet.PortletMode;
24  import javax.portlet.PortletURL;
25  import javax.portlet.RenderRequest;
26  import javax.portlet.RenderResponse;
27  import javax.portlet.WindowState;
28  
29  import junit.framework.TestCase;
30  
31  import org.apache.struts2.portlet.context.PortletActionContext;
32  import org.easymock.MockControl;
33  
34  import com.opensymphony.xwork2.ActionContext;
35  
36  /***
37   */
38  public class PortletUrlHelperTest extends TestCase {
39  
40      RenderResponse renderResponse;
41  
42      RenderRequest renderRequest;
43  
44      PortletURL url;
45  
46      MockControl renderResponseControl;
47  
48      MockControl renderRequestControl;
49  
50      MockControl portletUrlControl;
51  
52      public void setUp() throws Exception {
53          super.setUp();
54  
55          renderRequestControl = MockControl.createControl(RenderRequest.class);
56          renderResponseControl = MockControl.createControl(RenderResponse.class);
57          portletUrlControl = MockControl.createControl(PortletURL.class);
58  
59          renderRequest = (RenderRequest) renderRequestControl.getMock();
60          renderResponse = (RenderResponse) renderResponseControl.getMock();
61          url = (PortletURL) portletUrlControl.getMock();
62  
63          renderRequestControl.expectAndDefaultReturn(renderRequest
64                  .getPortletMode(), PortletMode.VIEW);
65          renderRequestControl.expectAndDefaultReturn(renderRequest
66                  .getWindowState(), WindowState.NORMAL);
67  
68          Map modeNamespaceMap = new HashMap();
69          modeNamespaceMap.put("view", "/view");
70          modeNamespaceMap.put("edit", "/edit");
71          modeNamespaceMap.put("help", "/help");
72  
73          Map context = new HashMap();
74          context.put(PortletActionContext.REQUEST, renderRequest);
75          context.put(PortletActionContext.RESPONSE, renderResponse);
76          context.put(PortletActionContext.PHASE,
77                  PortletActionContext.RENDER_PHASE);
78          context.put(PortletActionContext.MODE_NAMESPACE_MAP, modeNamespaceMap);
79  
80          ActionContext.setContext(new ActionContext(context));
81  
82      }
83  
84      public void testCreateRenderUrlWithNoModeOrState() throws Exception {
85          renderResponseControl.expectAndReturn(renderResponse.createRenderURL(),
86                  url);
87  
88          url.setPortletMode(PortletMode.VIEW);
89          url.setWindowState(WindowState.NORMAL);
90          url.setParameters(null);
91          portletUrlControl.setMatcher(MockControl.ALWAYS_MATCHER);
92          renderRequestControl.replay();
93          renderResponseControl.replay();
94          portletUrlControl.replay();
95          PortletUrlHelper.buildUrl("testAction", null,
96                  new HashMap(), null, null, null);
97          portletUrlControl.verify();
98          renderRequestControl.verify();
99          renderResponseControl.verify();
100     }
101 
102     public void testCreateRenderUrlWithDifferentPortletMode() throws Exception {
103         renderResponseControl.expectAndReturn(renderResponse.createRenderURL(),
104                 url);
105 
106         url.setPortletMode(PortletMode.EDIT);
107         url.setWindowState(WindowState.NORMAL);
108         url.setParameters(null);
109         portletUrlControl.setMatcher(MockControl.ALWAYS_MATCHER);
110         renderRequestControl.replay();
111         renderResponseControl.replay();
112         portletUrlControl.replay();
113         PortletUrlHelper.buildUrl("testAction", null,
114                 new HashMap(), null, "edit", null);
115         portletUrlControl.verify();
116         renderRequestControl.verify();
117         renderResponseControl.verify();
118     }
119 
120     public void testCreateRenderUrlWithDifferentWindowState() throws Exception {
121         renderResponseControl.expectAndReturn(renderResponse.createRenderURL(),
122                 url);
123 
124         url.setPortletMode(PortletMode.VIEW);
125         url.setWindowState(WindowState.MAXIMIZED);
126         url.setParameters(null);
127         portletUrlControl.setMatcher(MockControl.ALWAYS_MATCHER);
128         renderRequestControl.replay();
129         renderResponseControl.replay();
130         portletUrlControl.replay();
131         PortletUrlHelper.buildUrl("testAction", null,
132                 new HashMap(), null, null, "maximized");
133         portletUrlControl.verify();
134         renderRequestControl.verify();
135         renderResponseControl.verify();
136     }
137 
138     public void testCreateActionUrl() throws Exception {
139         renderResponseControl.expectAndReturn(renderResponse.createActionURL(),
140                 url);
141 
142         url.setPortletMode(PortletMode.VIEW);
143         url.setWindowState(WindowState.NORMAL);
144         url.setParameters(null);
145         portletUrlControl.setMatcher(MockControl.ALWAYS_MATCHER);
146         renderRequestControl.replay();
147         renderResponseControl.replay();
148         portletUrlControl.replay();
149         PortletUrlHelper.buildUrl("testAction", null,
150                 new HashMap(), "action", null, null);
151         portletUrlControl.verify();
152         renderRequestControl.verify();
153         renderResponseControl.verify();
154     }
155 
156 }