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;
     }
 }