1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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 }