View Javadoc

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