You are viewing a plain text version of this content. The canonical link for it is here.
Posted to pluto-scm@portals.apache.org by dd...@apache.org on 2004/08/23 03:05:37 UTC
svn commit: rev 36717 - portals/pluto/trunk/testsuite/src/java/org/apache/pluto/portalImpl/portlet
Author: ddewolf
Date: Sun Aug 22 18:05:37 2004
New Revision: 36717
Modified:
portals/pluto/trunk/testsuite/src/java/org/apache/pluto/portalImpl/portlet/TestPortlet.java
Log:
The testsuite portlet has been enhanced. Testing logic - where possible - has been moved into test classes for less scripting, easier maintenence, and to model best practices a little better. Additional tests have been added.
Modified: portals/pluto/trunk/testsuite/src/java/org/apache/pluto/portalImpl/portlet/TestPortlet.java
==============================================================================
--- portals/pluto/trunk/testsuite/src/java/org/apache/pluto/portalImpl/portlet/TestPortlet.java (original)
+++ portals/pluto/trunk/testsuite/src/java/org/apache/pluto/portalImpl/portlet/TestPortlet.java Sun Aug 22 18:05:37 2004
@@ -21,128 +21,149 @@
import javax.portlet.*;
import java.io.IOException;
+import java.util.Map;
+import java.util.ArrayList;
+import java.util.TreeMap;
+
+import org.apache.pluto.portalImpl.portlet.test.SimpleAttributeTest;
+import org.apache.pluto.portalImpl.portlet.test.PortletTest;
+import org.apache.pluto.portalImpl.portlet.test.TestResults;
+import org.apache.pluto.portalImpl.portlet.test.SimpleParameterTest;
+import org.apache.pluto.portalImpl.portlet.test.SecurityMappingTest;
+import org.apache.pluto.portalImpl.portlet.test.ComplexAttributeTest;
+import org.apache.pluto.portalImpl.portlet.test.SimplePreferenceTest;
+import org.apache.pluto.portalImpl.portlet.test.ActionTest;
+import org.apache.pluto.portalImpl.portlet.test.MiscTest;
+import org.apache.pluto.portalImpl.portlet.test.ExternalAppScopedAttributeTest;
+
+public class TestPortlet extends GenericPortlet {
+
+ public static final Map TESTS = new TreeMap();
+ public static final ArrayList TEST_IDX;
+
+ static {
+ TESTS.put("01_simple_parameter_test", new SimpleParameterTest());
+ TESTS.put("02_simple_attribute_test", new SimpleAttributeTest());
+ TESTS.put("03_complex_attribute_test", new ComplexAttributeTest());
+ TESTS.put("04_ext_app_scoped_attr_test", new ExternalAppScopedAttributeTest());
+ TESTS.put("05_simple_preference_test", new SimplePreferenceTest());
+ TESTS.put("06_portlet_mode_test", null);
+ TESTS.put("07_window_state_test", null);
+ TESTS.put("08_security_mapping_test", new SecurityMappingTest());
+ TESTS.put("09_misc_test", new MiscTest());
-public class TestPortlet extends GenericPortlet
-{
+ TEST_IDX = new ArrayList(TESTS.keySet());
+ }
+
+ private String portletName;
+ public void init() {
+ portletName = getPortletContext().getInitParameter("display-name");
+ if(portletName==null) {
+ portletName = "Test Portlet";
+ }
+ }
+
+
+ public void processAction (ActionRequest request,
+ ActionResponse response)
+ throws PortletException, java.io.IOException {
+
+ String testId = getTestId(request);
+ PortletTest test = (PortletTest)TESTS.get(testId);
+
+ if(test!=null && test instanceof ActionTest) {
+ TestResults results = test.doTest(getPortletContext(), request, response);
+ request.getPortletSession().setAttribute(test.getClass().getName(), results);
+ }
+ Map renderParameters = null;
- public void processAction (ActionRequest request, ActionResponse actionResponse)
- throws PortletException, java.io.IOException
- {
- String checkAction;
- String checkActionRender;
- String checkPreferences;
- String jspNameTransfer;
- PortletSession portletSession;
-
- //corresponding action to test2.jsp
- String jspName=request.getParameter("jspName");
- if (jspName!=null && jspName.equals("test2.jsp"))
- {
- actionResponse.setRenderParameters(request.getParameterMap());
- return;
- }
-
- portletSession = request.getPortletSession();
-
- //corresponding action to test4.jsp part1:'checkAction'
- checkAction = request.getParameter("checkAction");
- if ( checkAction != null ) {
- portletSession.setAttribute("checkAction", checkAction);
- actionResponse.setRenderParameter("jspName", "test4.jsp");
- }
-
- //corresponding action to test4.jsp part2:'checkActionRender'
- checkActionRender = request.getParameter("checkActionRender");
- if(checkActionRender != null && "step1".equals(checkActionRender))
- {
- actionResponse.setRenderParameter("checkActionRender2","step2");
- }
-
- //corresponding action to test6.jsp:'testPreferenceStore' (called from test5.jsp)
- checkPreferences = request.getParameter("checkPreferences");
- if (checkPreferences != null)
- {
- PortletPreferences preferences = request.getPreferences();
-
- if ("storeAndReset".equals(checkPreferences))
- {
- // store test
- preferences.setValue("TEST_RESET_KEY", "Hello");
- preferences.setValue("TEST_PERMANENCE", "permanent");
- preferences.setValue("TEST_NULL_VALUE", null);
- preferences.setValues("TEST_NULL_VALUES", null);
- preferences.store();
-
- // reset test
- preferences.reset("TEST_RESET_KEY");
- preferences.store();
-
- // validation test
- preferences.setValue("VALIDATION_TEST_KEY", " Test PreferencesValidator failed.");
- try
- {
- preferences.store();
- }
- catch (ValidatorException e)
- {
- preferences.setValue("VALIDATION_TEST_KEY", "Expected ValidationException occured");
- preferences.store();
- }
-
- // reset after method test
- preferences.setValue("TEST_RESET_2", "success");
- }
- else if ("TidyUp".equals(checkPreferences))
- {
- // reset test
- preferences.reset("TEST_NULL_VALUE");
- preferences.reset("TEST_NULL_VALUES");
- preferences.reset("VALIDATION_TEST_KEY");
- preferences.store();
- }
- }
-
- // transfer jsp name
- jspNameTransfer = request.getParameter("jspNameTransfer");
- if (jspNameTransfer!=null)
- {
- actionResponse.setRenderParameter("jspName",jspNameTransfer);
+ if(test!=null) {
+ renderParameters = renderParameters = test.getRenderParameters(request);
}
- request.setAttribute("portletaction","action1");
- actionResponse.setPortletMode(PortletMode.HELP);
+ if(renderParameters==null) {
+ renderParameters = new java.util.HashMap();
+ }
+
+ renderParameters.put("testId", new String[] {testId});
+ response.setRenderParameters(renderParameters);
}
- public void doDispatch (RenderRequest request,
- RenderResponse response) throws PortletException, IOException
- {
- response.setTitle("My dynamic PortletTitle");
+ public void doDispatch(RenderRequest request,
+ RenderResponse response)
+ throws PortletException, IOException {
+
+ String testId = getTestId(request);
+ PortletTest test = (PortletTest)TESTS.get(testId);
+ response.setTitle(portletName);
+ PortletMode mode = request.getPortletMode();
WindowState state = request.getWindowState();
-
- if ( ! state.equals(WindowState.MINIMIZED)) {
-
+ if (!state.equals(WindowState.MINIMIZED) && PortletMode.VIEW.equals(mode)) {
response.setContentType("text/html");
- String jspName = request.getParameter("jspName");
- if (jspName==null) {
- PortletSession session = request.getPortletSession(false);
- if (session!=null)
- {
- jspName = (String)session.getAttribute("jspName", PortletSession.PORTLET_SCOPE);
- }
- if (jspName==null) jspName = "test1.jsp";
- }
- else
- {
- PortletSession session = request.getPortletSession(false);
- if (session!=null)
- {
- session.setAttribute("jspName", jspName, PortletSession.PORTLET_SCOPE);
- }
+
+ if(test != null && !(test instanceof ActionTest) ) {
+ TestResults results = test.doTest(getPortletContext(), request, response);
+ request.setAttribute("results", results);
}
+ else if(test != null) {
+ PortletSession session = request.getPortletSession();
+ TestResults results = (TestResults)session.getAttribute(test.getClass().getName());
+ request.setAttribute("results", results);
+ }
+
+ if("xx_introduction".equals(testId)) {
+ request.setAttribute("tests", TEST_IDX);
+ }
+
PortletContext context = getPortletContext();
- PortletRequestDispatcher rd = context.getRequestDispatcher("/jsp/"+jspName);
+ PortletRequestDispatcher rd = context.getRequestDispatcher("/jsp/"+testId.substring(3)+".jsp");
rd.include(request,response);
}
+
+ else if(!state.equals(WindowState.MINIMIZED) && PortletMode.EDIT.equals(mode)) {
+ PortletContext context = getPortletContext();
+ PortletRequestDispatcher rd = context.getRequestDispatcher("/jsp/edit.jsp");
+ rd.include(request,response);
+ }
+
+ else if(!state.equals(WindowState.MINIMIZED) && PortletMode.HELP.equals(mode)) {
+ PortletContext context = getPortletContext();
+ PortletRequestDispatcher rd = context.getRequestDispatcher("/jsp/help.jsp");
+ rd.include(request,response);
+ }
+ }
+
+ private String getTestId(PortletRequest req) {
+ String testId = req.getParameter("testId");
+ String previous = req.getParameter("previousTestId");
+ String next = req.getParameter("nextTestId");
+
+ if(testId == null && next == null &&
+ previous == null && TESTS.size() > 0) {
+ testId = "xx_introduction";
+ }
+ // Retrieve the test which is next to the previous
+ else if(testId == null && previous !=null) {
+ int idx = TEST_IDX.indexOf(previous);
+ if(idx >= TEST_IDX.size()-1) {
+ testId = (String)TEST_IDX.get(0);
+ }
+ else {
+ testId = (String)TEST_IDX.get(idx+1);
+ }
+ }
+ // Retrieve the test which is previous to the next
+ else if(testId == null && next !=null) {
+ int idx = TEST_IDX.indexOf(next);
+ if(idx <= 0) {
+ testId = (String)TEST_IDX.get(TEST_IDX.size()-1);
+ }
+ else {
+ testId = (String)TEST_IDX.get(idx - 1);
+ }
+ }
+
+ return testId;
}
}