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