/** * This portlet implements several test cases for the JSR 362 TCK. The test case names are defined * in the /src/main/resources/xml-resources/additionalTCs.xml file. The build process will integrate * the test case names defined in the additionalTCs.xml file into the complete list of test case * names for execution by the driver. * * <p>This is the main portlet for the test cases. If the test cases call for events, this portlet * will initiate the events, but not process them. The processing is done in the companion portlet * DispatcherTests_SPEC2_19_ForwardServletResource_event */ public class DispatcherTests_SPEC2_19_ForwardServletResource implements Portlet, ResourceServingPortlet { private static final String LOG_CLASS = DispatcherTests_SPEC2_19_ForwardServletResource.class.getName(); private final Logger LOGGER = Logger.getLogger(LOG_CLASS); private PortletConfig portletConfig = null; @Override public void init(PortletConfig config) throws PortletException { this.portletConfig = config; } @Override public void destroy() {} @Override public void processAction(ActionRequest portletReq, ActionResponse portletResp) throws PortletException, IOException { LOGGER.entering(LOG_CLASS, "main portlet processAction entry"); portletResp.setRenderParameters(portletReq.getParameterMap()); long tid = Thread.currentThread().getId(); portletReq.setAttribute(THREADID_ATTR, tid); StringWriter writer = new StringWriter(); } @Override public void serveResource(ResourceRequest portletReq, ResourceResponse portletResp) throws PortletException, IOException { LOGGER.entering(LOG_CLASS, "main portlet serveResource entry"); long tid = Thread.currentThread().getId(); portletReq.setAttribute(THREADID_ATTR, tid); PrintWriter writer = portletResp.getWriter(); // Now do the actual dispatch String target = SERVLET_PREFIX + "DispatcherTests_SPEC2_19_ForwardServletResource_servlet" + SERVLET_SUFFIX + "?" + QUERY_STRING; PortletRequestDispatcher rd = portletConfig.getPortletContext().getRequestDispatcher(target); rd.forward(portletReq, portletResp); } @Override public void render(RenderRequest portletReq, RenderResponse portletResp) throws PortletException, IOException { LOGGER.entering(LOG_CLASS, "main portlet render entry"); long tid = Thread.currentThread().getId(); portletReq.setAttribute(THREADID_ATTR, tid); PrintWriter writer = portletResp.getWriter(); writer.write( "<div id=\"DispatcherTests_SPEC2_19_ForwardServletResource\">no resource output.</div>\n"); ResourceURL resurl = portletResp.createResourceURL(); resurl.setCacheability(PAGE); writer.write("<script>\n"); writer.write("(function () {\n"); writer.write(" var xhr = new XMLHttpRequest();\n"); writer.write(" xhr.onreadystatechange=function() {\n"); writer.write(" if (xhr.readyState==4 && xhr.status==200) {\n"); writer.write( " document.getElementById(\"DispatcherTests_SPEC2_19_ForwardServletResource\").innerHTML=xhr.responseText;\n"); writer.write(" }\n"); writer.write(" };\n"); writer.write(" xhr.open(\"GET\",\"" + resurl.toString() + "\",true);\n"); writer.write(" xhr.send();\n"); writer.write("})();\n"); writer.write("</script>\n"); } }
/** * This portlet implements several test cases for the JSR 362 TCK. The test case names are defined * in the /src/main/resources/xml-resources/additionalTCs.xml file. The build process will integrate * the test case names defined in the additionalTCs.xml file into the complete list of test case * names for execution by the driver. * * <p>This is the main portlet for the test cases. If the test cases call for events, this portlet * will initiate the events, but not process them. The processing is done in the companion portlet * EnvironmentTests_CacheControl_ApiResource_event */ public class EnvironmentTests_CacheControl_ApiResource implements Portlet, ResourceServingPortlet { private static final String LOG_CLASS = EnvironmentTests_CacheControl_ApiResource.class.getName(); private final Logger LOGGER = Logger.getLogger(LOG_CLASS); private PortletConfig portletConfig = null; @Override public void init(PortletConfig config) throws PortletException { this.portletConfig = config; } @Override public void destroy() {} @Override public void processAction(ActionRequest portletReq, ActionResponse portletResp) throws PortletException, IOException { LOGGER.entering(LOG_CLASS, "main portlet processAction entry"); portletResp.setRenderParameters(portletReq.getParameterMap()); long tid = Thread.currentThread().getId(); portletReq.setAttribute(THREADID_ATTR, tid); StringWriter writer = new StringWriter(); } @Override public void serveResource(ResourceRequest portletReq, ResourceResponse portletResp) throws PortletException, IOException { LOGGER.entering(LOG_CLASS, "main portlet serveResource entry"); long tid = Thread.currentThread().getId(); portletReq.setAttribute(THREADID_ATTR, tid); PrintWriter writer = portletResp.getWriter(); JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails(); // Create result objects for the tests ClassChecker cc = new ClassChecker(portletResp.getCacheControl().getClass()); /* TestCase: V2EnvironmentTests_CacheControl_ApiResource_getExpirationTime1 */ /* Details: "Method getExpirationTime(): Returns the expiration time */ /* set through setExpirationTime" */ TestResult tr0 = tcd.getTestResultFailed(V2ENVIRONMENTTESTS_CACHECONTROL_APIRESOURCE_GETEXPIRATIONTIME1); /* TODO: implement test */ tr0.appendTcDetail("Not implemented."); tr0.writeTo(writer); /* TestCase: V2EnvironmentTests_CacheControl_ApiResource_getExpirationTime2 */ /* Details: "Method getExpirationTime(): Returns the default */ /* expiration time from the deployment descriptor if the expiration */ /* time has not been set" */ TestResult tr1 = tcd.getTestResultFailed(V2ENVIRONMENTTESTS_CACHECONTROL_APIRESOURCE_GETEXPIRATIONTIME2); /* TODO: implement test */ tr1.appendTcDetail("Not implemented."); tr1.writeTo(writer); /* TestCase: V2EnvironmentTests_CacheControl_ApiResource_getExpirationTime3 */ /* Details: "Method getExpirationTime(): Returns 0 if the expiration */ /* time has not been set and no default is set in the deployment */ /* descriptor" */ TestResult tr2 = tcd.getTestResultFailed(V2ENVIRONMENTTESTS_CACHECONTROL_APIRESOURCE_GETEXPIRATIONTIME3); /* TODO: implement test */ tr2.appendTcDetail("Not implemented."); tr2.writeTo(writer); /* TestCase: V2EnvironmentTests_CacheControl_ApiResource_setExpirationTime1 */ /* Details: "Method setExpirationTime(int): Sets the expiration time */ /* for the current response to the specified value" */ TestResult tr3 = tcd.getTestResultFailed(V2ENVIRONMENTTESTS_CACHECONTROL_APIRESOURCE_SETEXPIRATIONTIME1); /* TODO: implement test */ tr3.appendTcDetail("Not implemented."); tr3.writeTo(writer); /* TestCase: V2EnvironmentTests_CacheControl_ApiResource_setExpirationTime2 */ /* Details: "Method setExpirationTime(int): If the expiration value */ /* is set to 0, caching is disabled" */ TestResult tr4 = tcd.getTestResultFailed(V2ENVIRONMENTTESTS_CACHECONTROL_APIRESOURCE_SETEXPIRATIONTIME2); /* TODO: implement test */ tr4.appendTcDetail("Not implemented."); tr4.writeTo(writer); /* TestCase: V2EnvironmentTests_CacheControl_ApiResource_setExpirationTime3 */ /* Details: "Method setExpirationTime(int): If the expiration value */ /* is set to -1, the cache does not expire" */ TestResult tr5 = tcd.getTestResultFailed(V2ENVIRONMENTTESTS_CACHECONTROL_APIRESOURCE_SETEXPIRATIONTIME3); /* TODO: implement test */ tr5.appendTcDetail("Not implemented."); tr5.writeTo(writer); /* TestCase: V2EnvironmentTests_CacheControl_ApiResource_isPublicScope1 */ /* Details: "Method isPublicScope(): Returns true if the caching */ /* scope has been set to public through the setPublicScope method" */ TestResult tr6 = tcd.getTestResultFailed(V2ENVIRONMENTTESTS_CACHECONTROL_APIRESOURCE_ISPUBLICSCOPE1); /* TODO: implement test */ tr6.appendTcDetail("Not implemented."); tr6.writeTo(writer); /* TestCase: V2EnvironmentTests_CacheControl_ApiResource_isPublicScope2 */ /* Details: "Method isPublicScope(): Returns true if the caching */ /* scope default has not been set with the setPublicScope method, but */ /* has been set to public in the deployment descriptor " */ TestResult tr7 = tcd.getTestResultFailed(V2ENVIRONMENTTESTS_CACHECONTROL_APIRESOURCE_ISPUBLICSCOPE2); /* TODO: implement test */ tr7.appendTcDetail("Not implemented."); tr7.writeTo(writer); /* TestCase: V2EnvironmentTests_CacheControl_ApiResource_isPublicScope3 */ /* Details: "Method isPublicScope(): Returns false if the caching */ /* scope has not been set with the setPublicScope method, but has */ /* been set to private through the setPublicScope method " */ TestResult tr8 = tcd.getTestResultFailed(V2ENVIRONMENTTESTS_CACHECONTROL_APIRESOURCE_ISPUBLICSCOPE3); /* TODO: implement test */ tr8.appendTcDetail("Not implemented."); tr8.writeTo(writer); /* TestCase: V2EnvironmentTests_CacheControl_ApiResource_isPublicScope5 */ /* Details: "Method isPublicScope(): Returns false if the caching */ /* scope has not been set with the setPublicScope method and has not */ /* been set in the deployment descriptor" */ TestResult tr9 = tcd.getTestResultFailed(V2ENVIRONMENTTESTS_CACHECONTROL_APIRESOURCE_ISPUBLICSCOPE5); /* TODO: implement test */ tr9.appendTcDetail("Not implemented."); tr9.writeTo(writer); /* TestCase: V2EnvironmentTests_CacheControl_ApiResource_setPublicScope1 */ /* Details: "Method setPublicScope(boolean): If the input parameter */ /* is true, the cache scope is set to public" */ TestResult tr10 = tcd.getTestResultFailed(V2ENVIRONMENTTESTS_CACHECONTROL_APIRESOURCE_SETPUBLICSCOPE1); /* TODO: implement test */ tr10.appendTcDetail("Not implemented."); tr10.writeTo(writer); /* TestCase: V2EnvironmentTests_CacheControl_ApiResource_setPublicScope2 */ /* Details: "Method setPublicScope(boolean): If the input parameter */ /* is false, the cache scope is set to non-public" */ TestResult tr11 = tcd.getTestResultFailed(V2ENVIRONMENTTESTS_CACHECONTROL_APIRESOURCE_SETPUBLICSCOPE2); /* TODO: implement test */ tr11.appendTcDetail("Not implemented."); tr11.writeTo(writer); /* TestCase: V2EnvironmentTests_CacheControl_ApiResource_getETag1 */ /* Details: "Method getETag(): Returns a String containing the ETag */ /* for the current response" */ TestResult tr12 = tcd.getTestResultFailed(V2ENVIRONMENTTESTS_CACHECONTROL_APIRESOURCE_GETETAG1); /* TODO: implement test */ tr12.appendTcDetail("Not implemented."); tr12.writeTo(writer); /* TestCase: V2EnvironmentTests_CacheControl_ApiResource_getETag2 */ /* Details: "Method getETag(): Returns null if no ETag is set on the */ /* response" */ TestResult tr13 = tcd.getTestResultFailed(V2ENVIRONMENTTESTS_CACHECONTROL_APIRESOURCE_GETETAG2); /* TODO: implement test */ tr13.appendTcDetail("Not implemented."); tr13.writeTo(writer); /* TestCase: V2EnvironmentTests_CacheControl_ApiResource_setETag1 */ /* Details: "Method setETag(String): Sets an ETag for the current */ /* response" */ TestResult tr14 = tcd.getTestResultFailed(V2ENVIRONMENTTESTS_CACHECONTROL_APIRESOURCE_SETETAG1); /* TODO: implement test */ tr14.appendTcDetail("Not implemented."); tr14.writeTo(writer); /* TestCase: V2EnvironmentTests_CacheControl_ApiResource_setETag2 */ /* Details: "Method setETag(String): A previously-set ETag is */ /* overwritten" */ TestResult tr15 = tcd.getTestResultFailed(V2ENVIRONMENTTESTS_CACHECONTROL_APIRESOURCE_SETETAG2); /* TODO: implement test */ tr15.appendTcDetail("Not implemented."); tr15.writeTo(writer); /* TestCase: V2EnvironmentTests_CacheControl_ApiResource_setETag3 */ /* Details: "Method setETag(String): Removes the ETag if the input */ /* parameter is null" */ TestResult tr16 = tcd.getTestResultFailed(V2ENVIRONMENTTESTS_CACHECONTROL_APIRESOURCE_SETETAG3); /* TODO: implement test */ tr16.appendTcDetail("Not implemented."); tr16.writeTo(writer); /* TestCase: V2EnvironmentTests_CacheControl_ApiResource_useCachedContent1 */ /* Details: "Method useCachedContent(): Returns true if cached */ /* content has been set to valid through the setUseCachedContent */ /* method" */ TestResult tr17 = tcd.getTestResultFailed(V2ENVIRONMENTTESTS_CACHECONTROL_APIRESOURCE_USECACHEDCONTENT1); /* TODO: implement test */ tr17.appendTcDetail("Not implemented."); tr17.writeTo(writer); /* TestCase: V2EnvironmentTests_CacheControl_ApiResource_useCachedContent2 */ /* Details: "Method useCachedContent(): Returns false if cached */ /* content has been set to invalid through the setUseCachedContent */ /* method" */ TestResult tr18 = tcd.getTestResultFailed(V2ENVIRONMENTTESTS_CACHECONTROL_APIRESOURCE_USECACHEDCONTENT2); /* TODO: implement test */ tr18.appendTcDetail("Not implemented."); tr18.writeTo(writer); /* TestCase: V2EnvironmentTests_CacheControl_ApiResource_useCachedContent3 */ /* Details: "Method useCachedContent(): Returns false if the use */ /* cached content indcator has not been set" */ TestResult tr19 = tcd.getTestResultFailed(V2ENVIRONMENTTESTS_CACHECONTROL_APIRESOURCE_USECACHEDCONTENT3); /* TODO: implement test */ tr19.appendTcDetail("Not implemented."); tr19.writeTo(writer); /* TestCase: V2EnvironmentTests_CacheControl_ApiResource_setUseCachedContent1 */ /* Details: "Method setUseCachedContent(boolean): If set to true, the */ /* cached content is valid " */ TestResult tr20 = tcd.getTestResultFailed(V2ENVIRONMENTTESTS_CACHECONTROL_APIRESOURCE_SETUSECACHEDCONTENT1); /* TODO: implement test */ tr20.appendTcDetail("Not implemented."); tr20.writeTo(writer); /* TestCase: V2EnvironmentTests_CacheControl_ApiResource_setUseCachedContent2 */ /* Details: "Method setUseCachedContent(boolean): If set to false, */ /* the cached content is invalid " */ TestResult tr21 = tcd.getTestResultFailed(V2ENVIRONMENTTESTS_CACHECONTROL_APIRESOURCE_SETUSECACHEDCONTENT2); /* TODO: implement test */ tr21.appendTcDetail("Not implemented."); tr21.writeTo(writer); } @Override public void render(RenderRequest portletReq, RenderResponse portletResp) throws PortletException, IOException { LOGGER.entering(LOG_CLASS, "main portlet render entry"); long tid = Thread.currentThread().getId(); portletReq.setAttribute(THREADID_ATTR, tid); PrintWriter writer = portletResp.getWriter(); writer.write( "<div id=\"EnvironmentTests_CacheControl_ApiResource\">no resource output.</div>\n"); ResourceURL resurl = portletResp.createResourceURL(); resurl.setCacheability(PAGE); writer.write("<script>\n"); writer.write("(function () {\n"); writer.write(" var xhr = new XMLHttpRequest();\n"); writer.write(" xhr.onreadystatechange=function() {\n"); writer.write(" if (xhr.readyState==4 && xhr.status==200) {\n"); writer.write( " document.getElementById(\"EnvironmentTests_CacheControl_ApiResource\").innerHTML=xhr.responseText;\n"); writer.write(" }\n"); writer.write(" };\n"); writer.write(" xhr.open(\"GET\",\"" + resurl.toString() + "\",true);\n"); writer.write(" xhr.send();\n"); writer.write("})();\n"); writer.write("</script>\n"); } }
/** * This portlet implements several test cases for the JSR 362 TCK. The test case names are defined * in the /src/main/resources/xml-resources/additionalTCs.xml file. The build process will integrate * the test case names defined in the additionalTCs.xml file into the complete list of test case * names for execution by the driver. * * <p>This is the main portlet for the test cases. If the test cases call for events, this portlet * will initiate the events, but not process them. The processing is done in the companion portlet * DispatcherReqRespTests3_SPEC2_19_IncludeJSPActionResponse_event */ public class DispatcherReqRespTests3_SPEC2_19_IncludeJSPActionResponse implements Portlet, ResourceServingPortlet { private static final String LOG_CLASS = DispatcherReqRespTests3_SPEC2_19_IncludeJSPActionResponse.class.getName(); private final Logger LOGGER = Logger.getLogger(LOG_CLASS); private PortletConfig portletConfig = null; @Override public void init(PortletConfig config) throws PortletException { this.portletConfig = config; } @Override public void destroy() {} @Override public void processAction(ActionRequest portletReq, ActionResponse portletResp) throws PortletException, IOException { LOGGER.entering(LOG_CLASS, "main portlet processAction entry"); portletResp.setRenderParameters(portletReq.getParameterMap()); long tid = Thread.currentThread().getId(); portletReq.setAttribute(THREADID_ATTR, tid); StringWriter writer = new StringWriter(); // Now do the actual dispatch String target = JSP_PREFIX + "DispatcherReqRespTests3_SPEC2_19_IncludeJSPActionResponse" + JSP_SUFFIX + "?" + QUERY_STRING; PortletRequestDispatcher rd = portletConfig.getPortletContext().getRequestDispatcher(target); rd.include(portletReq, portletResp); } @Override public void serveResource(ResourceRequest portletReq, ResourceResponse portletResp) throws PortletException, IOException { LOGGER.entering(LOG_CLASS, "main portlet serveResource entry"); long tid = Thread.currentThread().getId(); portletReq.setAttribute(THREADID_ATTR, tid); PrintWriter writer = portletResp.getWriter(); } @Override public void render(RenderRequest portletReq, RenderResponse portletResp) throws PortletException, IOException { LOGGER.entering(LOG_CLASS, "main portlet render entry"); long tid = Thread.currentThread().getId(); portletReq.setAttribute(THREADID_ATTR, tid); PrintWriter writer = portletResp.getWriter(); PortletSession ps = portletReq.getPortletSession(); String msg = (String) ps.getAttribute( RESULT_ATTR_PREFIX + "DispatcherReqRespTests3_SPEC2_19_IncludeJSPActionResponse", APPLICATION_SCOPE); if (msg != null) { writer.write("<p>" + msg + "</p><br/>\n"); ps.removeAttribute( RESULT_ATTR_PREFIX + "DispatcherReqRespTests3_SPEC2_19_IncludeJSPActionResponse", APPLICATION_SCOPE); } /* TestCase: V2DispatcherReqRespTests3_SPEC2_19_IncludeJSPActionResponse_containsHeader */ /* Details: "In a target jsp of a include in the Action phase, the */ /* method HttpServletResponse.containsHeader must return false" */ { PortletURL aurl = portletResp.createActionURL(); aurl.setParameters(portletReq.getPrivateParameterMap()); TestButton tb = new TestButton( "V2DispatcherReqRespTests3_SPEC2_19_IncludeJSPActionResponse_containsHeader", aurl); tb.writeTo(writer); } /* TestCase: V2DispatcherReqRespTests3_SPEC2_19_IncludeJSPActionResponse_encodeRedirectURL1 */ /* Details: "In a target jsp of a include in the Action phase, the */ /* method HttpServletResponse.encodeRedirectURL must return null" */ { PortletURL aurl = portletResp.createActionURL(); aurl.setParameters(portletReq.getPrivateParameterMap()); TestButton tb = new TestButton( "V2DispatcherReqRespTests3_SPEC2_19_IncludeJSPActionResponse_encodeRedirectURL1", aurl); tb.writeTo(writer); } /* TestCase: V2DispatcherReqRespTests3_SPEC2_19_IncludeJSPActionResponse_encodeRedirectUrl */ /* Details: "In a target jsp of a include in the Action phase, the */ /* method HttpServletResponse.encodeRedirectUrl must return null" */ { PortletURL aurl = portletResp.createActionURL(); aurl.setParameters(portletReq.getPrivateParameterMap()); TestButton tb = new TestButton( "V2DispatcherReqRespTests3_SPEC2_19_IncludeJSPActionResponse_encodeRedirectUrl", aurl); tb.writeTo(writer); } /* TestCase: V2DispatcherReqRespTests3_SPEC2_19_IncludeJSPActionResponse_encodeURL1 */ /* Details: "In a target jsp of a include in the Action phase, the */ /* method HttpServletResponse.encodeURL must provide the same */ /* functionality as ActionResponse.encodeURL" */ { PortletURL aurl = portletResp.createActionURL(); aurl.setParameters(portletReq.getPrivateParameterMap()); TestButton tb = new TestButton( "V2DispatcherReqRespTests3_SPEC2_19_IncludeJSPActionResponse_encodeURL1", aurl); tb.writeTo(writer); } /* TestCase: V2DispatcherReqRespTests3_SPEC2_19_IncludeJSPActionResponse_encodeUrl */ /* Details: "In a target jsp of a include in the Action phase, the */ /* method HttpServletResponse.encodeUrl must provide the same */ /* functionality as ActionResponse.encodeURL" */ { PortletURL aurl = portletResp.createActionURL(); aurl.setParameters(portletReq.getPrivateParameterMap()); TestButton tb = new TestButton( "V2DispatcherReqRespTests3_SPEC2_19_IncludeJSPActionResponse_encodeUrl", aurl); tb.writeTo(writer); } /* TestCase: V2DispatcherReqRespTests3_SPEC2_19_IncludeJSPActionResponse_getBufferSize */ /* Details: "In a target jsp of a include in the Action phase, the */ /* method HttpServletResponse.getBufferSize must return 0" */ { PortletURL aurl = portletResp.createActionURL(); aurl.setParameters(portletReq.getPrivateParameterMap()); TestButton tb = new TestButton( "V2DispatcherReqRespTests3_SPEC2_19_IncludeJSPActionResponse_getBufferSize", aurl); tb.writeTo(writer); } /* TestCase: V2DispatcherReqRespTests3_SPEC2_19_IncludeJSPActionResponse_getCharacterEncoding */ /* Details: "In a target jsp of a include in the Action phase, the */ /* method HttpServletResponse.getCharacterEncoding must return null" */ { PortletURL aurl = portletResp.createActionURL(); aurl.setParameters(portletReq.getPrivateParameterMap()); TestButton tb = new TestButton( "V2DispatcherReqRespTests3_SPEC2_19_IncludeJSPActionResponse_getCharacterEncoding", aurl); tb.writeTo(writer); } /* TestCase: V2DispatcherReqRespTests3_SPEC2_19_IncludeJSPActionResponse_getContentType */ /* Details: "In a target jsp of a include in the Action phase, the */ /* method HttpServletResponse.getContentType must return null" */ { PortletURL aurl = portletResp.createActionURL(); aurl.setParameters(portletReq.getPrivateParameterMap()); TestButton tb = new TestButton( "V2DispatcherReqRespTests3_SPEC2_19_IncludeJSPActionResponse_getContentType", aurl); tb.writeTo(writer); } /* TestCase: V2DispatcherReqRespTests3_SPEC2_19_IncludeJSPActionResponse_getLocale */ /* Details: "In a target jsp of a include in the Action phase, the */ /* method HttpServletResponse.getLocale must return null" */ { PortletURL aurl = portletResp.createActionURL(); aurl.setParameters(portletReq.getPrivateParameterMap()); TestButton tb = new TestButton( "V2DispatcherReqRespTests3_SPEC2_19_IncludeJSPActionResponse_getLocale", aurl); tb.writeTo(writer); } /* TestCase: V2DispatcherReqRespTests3_SPEC2_19_IncludeJSPActionResponse_isCommitted */ /* Details: "In a target jsp of a include in the Action phase, the */ /* method HttpServletResponse.isCommitted must return true" */ { PortletURL aurl = portletResp.createActionURL(); aurl.setParameters(portletReq.getPrivateParameterMap()); TestButton tb = new TestButton( "V2DispatcherReqRespTests3_SPEC2_19_IncludeJSPActionResponse_isCommitted", aurl); tb.writeTo(writer); } } }
/** * This portlet implements several test cases for the JSR 362 TCK. The test case names are defined * in the /src/main/resources/xml-resources/additionalTCs.xml file. The build process will integrate * the test case names defined in the additionalTCs.xml file into the complete list of test case * names for execution by the driver. * * <p>This is the main portlet for the test cases. If the test cases call for events, this portlet * will initiate the events, but not process them. The processing is done in the companion portlet * SigTestsURL_BaseURL_SIGResourceActurl_event */ public class SigTestsURL_BaseURL_SIGResourceActurl implements Portlet, ResourceServingPortlet { private static final String LOG_CLASS = SigTestsURL_BaseURL_SIGResourceActurl.class.getName(); private final Logger LOGGER = Logger.getLogger(LOG_CLASS); private PortletConfig portletConfig = null; @Override public void init(PortletConfig config) throws PortletException { this.portletConfig = config; } @Override public void destroy() {} @Override public void processAction(ActionRequest portletReq, ActionResponse portletResp) throws PortletException, IOException { LOGGER.entering(LOG_CLASS, "main portlet processAction entry"); portletResp.setRenderParameters(portletReq.getParameterMap()); long tid = Thread.currentThread().getId(); portletReq.setAttribute(THREADID_ATTR, tid); StringWriter writer = new StringWriter(); } @Override public void serveResource(ResourceRequest portletReq, ResourceResponse portletResp) throws PortletException, IOException { LOGGER.entering(LOG_CLASS, "main portlet serveResource entry"); long tid = Thread.currentThread().getId(); portletReq.setAttribute(THREADID_ATTR, tid); PrintWriter writer = portletResp.getWriter(); JSR286SignatureTestCaseDetails tcd = new JSR286SignatureTestCaseDetails(); // Create result objects for the tests PortletURL url = portletResp.createActionURL(); ClassChecker cc = new ClassChecker(url.getClass()); /* TestCase: V2SigTestsURL_BaseURL_SIGResourceActurl_hasAddProperty */ /* Details: "Action URL has a addProperty(String, String) method " */ TestResult tr0 = tcd.getTestResultFailed(V2SIGTESTSURL_BASEURL_SIGRESOURCEACTURL_HASADDPROPERTY); try { String name = "addProperty"; Class<?>[] exceptions = null; Class<?>[] parms = {String.class, String.class}; tr0.setTcSuccess(cc.hasMethod(name, parms, exceptions)); } catch (Exception e) { tr0.appendTcDetail(e.toString()); } tr0.writeTo(writer); /* TestCase: V2SigTestsURL_BaseURL_SIGResourceActurl_hasAddPropertyReturns */ /* Details: "Action URL method addProperty(String, String) returns */ /* void " */ TestResult tr1 = tcd.getTestResultFailed(V2SIGTESTSURL_BASEURL_SIGRESOURCEACTURL_HASADDPROPERTYRETURNS); try { String name = "addProperty"; Class<?> retType = void.class; Class<?>[] parms = {String.class, String.class}; tr1.setTcSuccess(cc.methodHasReturnType(name, retType, parms)); } catch (Exception e) { tr1.appendTcDetail(e.toString()); } tr1.writeTo(writer); /* TestCase: V2SigTestsURL_BaseURL_SIGResourceActurl_hasGetParameterMap */ /* Details: "Action URL has a getParameterMap() method " */ TestResult tr2 = tcd.getTestResultFailed(V2SIGTESTSURL_BASEURL_SIGRESOURCEACTURL_HASGETPARAMETERMAP); try { String name = "getParameterMap"; Class<?>[] exceptions = null; Class<?>[] parms = null; tr2.setTcSuccess(cc.hasMethod(name, parms, exceptions)); } catch (Exception e) { tr2.appendTcDetail(e.toString()); } tr2.writeTo(writer); /* TestCase: V2SigTestsURL_BaseURL_SIGResourceActurl_hasGetParameterMapReturns */ /* Details: "Action URL method getParameterMap() returns */ /* java.util.Map " */ TestResult tr3 = tcd.getTestResultFailed(V2SIGTESTSURL_BASEURL_SIGRESOURCEACTURL_HASGETPARAMETERMAPRETURNS); try { String name = "getParameterMap"; Class<?> retType = java.util.Map.class; Class<?>[] parms = null; tr3.setTcSuccess(cc.methodHasReturnType(name, retType, parms)); } catch (Exception e) { tr3.appendTcDetail(e.toString()); } tr3.writeTo(writer); /* TestCase: V2SigTestsURL_BaseURL_SIGResourceActurl_hasSetParameter */ /* Details: "Action URL has a setParameter(String, String) method " */ TestResult tr4 = tcd.getTestResultFailed(V2SIGTESTSURL_BASEURL_SIGRESOURCEACTURL_HASSETPARAMETER); try { String name = "setParameter"; Class<?>[] exceptions = null; Class<?>[] parms = {String.class, String.class}; tr4.setTcSuccess(cc.hasMethod(name, parms, exceptions)); } catch (Exception e) { tr4.appendTcDetail(e.toString()); } tr4.writeTo(writer); /* TestCase: V2SigTestsURL_BaseURL_SIGResourceActurl_hasSetParameterA */ /* Details: "Action URL has a setParameter(String, String[]) method */ /* " */ TestResult tr5 = tcd.getTestResultFailed(V2SIGTESTSURL_BASEURL_SIGRESOURCEACTURL_HASSETPARAMETERA); try { String name = "setParameter"; Class<?>[] exceptions = null; Class<?>[] parms = {String.class, String[].class}; tr5.setTcSuccess(cc.hasMethod(name, parms, exceptions)); } catch (Exception e) { tr5.appendTcDetail(e.toString()); } tr5.writeTo(writer); /* TestCase: V2SigTestsURL_BaseURL_SIGResourceActurl_hasSetParameterReturns */ /* Details: "Action URL method setParameter(String, String) returns */ /* void " */ TestResult tr6 = tcd.getTestResultFailed(V2SIGTESTSURL_BASEURL_SIGRESOURCEACTURL_HASSETPARAMETERRETURNS); try { String name = "setParameter"; Class<?> retType = void.class; Class<?>[] parms = {String.class, String.class}; tr6.setTcSuccess(cc.methodHasReturnType(name, retType, parms)); } catch (Exception e) { tr6.appendTcDetail(e.toString()); } tr6.writeTo(writer); /* TestCase: V2SigTestsURL_BaseURL_SIGResourceActurl_hasSetParameterReturnsA */ /* Details: "Action URL method setParameter(String, String[]) returns */ /* void " */ TestResult tr7 = tcd.getTestResultFailed(V2SIGTESTSURL_BASEURL_SIGRESOURCEACTURL_HASSETPARAMETERRETURNSA); try { String name = "setParameter"; Class<?> retType = void.class; Class<?>[] parms = {String.class, String[].class}; tr7.setTcSuccess(cc.methodHasReturnType(name, retType, parms)); } catch (Exception e) { tr7.appendTcDetail(e.toString()); } tr7.writeTo(writer); /* TestCase: V2SigTestsURL_BaseURL_SIGResourceActurl_hasSetParameters */ /* Details: "Action URL has a setParameters(java.util.Map) method " */ TestResult tr8 = tcd.getTestResultFailed(V2SIGTESTSURL_BASEURL_SIGRESOURCEACTURL_HASSETPARAMETERS); try { String name = "setParameters"; Class<?>[] exceptions = null; Class<?>[] parms = {java.util.Map.class}; tr8.setTcSuccess(cc.hasMethod(name, parms, exceptions)); } catch (Exception e) { tr8.appendTcDetail(e.toString()); } tr8.writeTo(writer); /* TestCase: V2SigTestsURL_BaseURL_SIGResourceActurl_hasSetParametersReturns */ /* Details: "Action URL method setParameters(java.util.Map) returns */ /* void " */ TestResult tr9 = tcd.getTestResultFailed(V2SIGTESTSURL_BASEURL_SIGRESOURCEACTURL_HASSETPARAMETERSRETURNS); try { String name = "setParameters"; Class<?> retType = void.class; Class<?>[] parms = {java.util.Map.class}; tr9.setTcSuccess(cc.methodHasReturnType(name, retType, parms)); } catch (Exception e) { tr9.appendTcDetail(e.toString()); } tr9.writeTo(writer); /* TestCase: V2SigTestsURL_BaseURL_SIGResourceActurl_hasSetProperty */ /* Details: "Action URL has a setProperty(String, String) method " */ TestResult tr10 = tcd.getTestResultFailed(V2SIGTESTSURL_BASEURL_SIGRESOURCEACTURL_HASSETPROPERTY); try { String name = "setProperty"; Class<?>[] exceptions = null; Class<?>[] parms = {String.class, String.class}; tr10.setTcSuccess(cc.hasMethod(name, parms, exceptions)); } catch (Exception e) { tr10.appendTcDetail(e.toString()); } tr10.writeTo(writer); /* TestCase: V2SigTestsURL_BaseURL_SIGResourceActurl_hasSetPropertyReturns */ /* Details: "Action URL method setProperty(String, String) returns */ /* void " */ TestResult tr11 = tcd.getTestResultFailed(V2SIGTESTSURL_BASEURL_SIGRESOURCEACTURL_HASSETPROPERTYRETURNS); try { String name = "setProperty"; Class<?> retType = void.class; Class<?>[] parms = {String.class, String.class}; tr11.setTcSuccess(cc.methodHasReturnType(name, retType, parms)); } catch (Exception e) { tr11.appendTcDetail(e.toString()); } tr11.writeTo(writer); /* TestCase: V2SigTestsURL_BaseURL_SIGResourceActurl_hasSetSecure */ /* Details: "Action URL has a setSecure(boolean) throws */ /* PortletSecurityException method " */ TestResult tr12 = tcd.getTestResultFailed(V2SIGTESTSURL_BASEURL_SIGRESOURCEACTURL_HASSETSECURE); try { String name = "setSecure"; Class<?>[] exceptions = {PortletSecurityException.class}; Class<?>[] parms = {boolean.class}; tr12.setTcSuccess(cc.hasMethod(name, parms, exceptions)); } catch (Exception e) { tr12.appendTcDetail(e.toString()); } tr12.writeTo(writer); /* TestCase: V2SigTestsURL_BaseURL_SIGResourceActurl_hasSetSecureReturns */ /* Details: "Action URL method setSecure(boolean) returns void " */ TestResult tr13 = tcd.getTestResultFailed(V2SIGTESTSURL_BASEURL_SIGRESOURCEACTURL_HASSETSECURERETURNS); try { String name = "setSecure"; Class<?> retType = void.class; Class<?>[] parms = {boolean.class}; tr13.setTcSuccess(cc.methodHasReturnType(name, retType, parms)); } catch (Exception e) { tr13.appendTcDetail(e.toString()); } tr13.writeTo(writer); /* TestCase: V2SigTestsURL_BaseURL_SIGResourceActurl_hasToString */ /* Details: "Action URL has a toString() method " */ TestResult tr14 = tcd.getTestResultFailed(V2SIGTESTSURL_BASEURL_SIGRESOURCEACTURL_HASTOSTRING); try { String name = "toString"; Class<?>[] exceptions = null; Class<?>[] parms = null; tr14.setTcSuccess(cc.hasMethod(name, parms, exceptions)); } catch (Exception e) { tr14.appendTcDetail(e.toString()); } tr14.writeTo(writer); /* TestCase: V2SigTestsURL_BaseURL_SIGResourceActurl_hasToStringReturns */ /* Details: "Action URL method toString() returns String " */ TestResult tr15 = tcd.getTestResultFailed(V2SIGTESTSURL_BASEURL_SIGRESOURCEACTURL_HASTOSTRINGRETURNS); try { String name = "toString"; Class<?> retType = String.class; Class<?>[] parms = null; tr15.setTcSuccess(cc.methodHasReturnType(name, retType, parms)); } catch (Exception e) { tr15.appendTcDetail(e.toString()); } tr15.writeTo(writer); /* TestCase: V2SigTestsURL_BaseURL_SIGResourceActurl_hasWrite */ /* Details: "Action URL has a write(java.io.Writer) throws */ /* java.io.IOException method " */ TestResult tr16 = tcd.getTestResultFailed(V2SIGTESTSURL_BASEURL_SIGRESOURCEACTURL_HASWRITE); try { String name = "write"; Class<?>[] exceptions = {java.io.IOException.class}; Class<?>[] parms = {java.io.Writer.class}; tr16.setTcSuccess(cc.hasMethod(name, parms, exceptions)); } catch (Exception e) { tr16.appendTcDetail(e.toString()); } tr16.writeTo(writer); /* TestCase: V2SigTestsURL_BaseURL_SIGResourceActurl_hasWriteA */ /* Details: "Action URL has a write(java.io.Writer, boolean) throws */ /* java.io.IOException method " */ TestResult tr17 = tcd.getTestResultFailed(V2SIGTESTSURL_BASEURL_SIGRESOURCEACTURL_HASWRITEA); try { String name = "write"; Class<?>[] exceptions = {java.io.IOException.class}; Class<?>[] parms = {java.io.Writer.class, boolean.class}; tr17.setTcSuccess(cc.hasMethod(name, parms, exceptions)); } catch (Exception e) { tr17.appendTcDetail(e.toString()); } tr17.writeTo(writer); /* TestCase: V2SigTestsURL_BaseURL_SIGResourceActurl_hasWriteReturns */ /* Details: "Action URL method write(java.io.Writer) returns void " */ TestResult tr18 = tcd.getTestResultFailed(V2SIGTESTSURL_BASEURL_SIGRESOURCEACTURL_HASWRITERETURNS); try { String name = "write"; Class<?> retType = void.class; Class<?>[] parms = {java.io.Writer.class}; tr18.setTcSuccess(cc.methodHasReturnType(name, retType, parms)); } catch (Exception e) { tr18.appendTcDetail(e.toString()); } tr18.writeTo(writer); /* TestCase: V2SigTestsURL_BaseURL_SIGResourceActurl_hasWriteReturnsA */ /* Details: "Action URL method write(java.io.Writer, boolean) returns */ /* void " */ TestResult tr19 = tcd.getTestResultFailed(V2SIGTESTSURL_BASEURL_SIGRESOURCEACTURL_HASWRITERETURNSA); try { String name = "write"; Class<?> retType = void.class; Class<?>[] parms = {java.io.Writer.class, boolean.class}; tr19.setTcSuccess(cc.methodHasReturnType(name, retType, parms)); } catch (Exception e) { tr19.appendTcDetail(e.toString()); } tr19.writeTo(writer); } @Override public void render(RenderRequest portletReq, RenderResponse portletResp) throws PortletException, IOException { LOGGER.entering(LOG_CLASS, "main portlet render entry"); long tid = Thread.currentThread().getId(); portletReq.setAttribute(THREADID_ATTR, tid); PrintWriter writer = portletResp.getWriter(); writer.write("<div id=\"SigTestsURL_BaseURL_SIGResourceActurl\">no resource output.</div>\n"); ResourceURL resurl = portletResp.createResourceURL(); resurl.setCacheability(PAGE); writer.write("<script>\n"); writer.write("(function () {\n"); writer.write(" var xhr = new XMLHttpRequest();\n"); writer.write(" xhr.onreadystatechange=function() {\n"); writer.write(" if (xhr.readyState==4 && xhr.status==200) {\n"); writer.write( " document.getElementById(\"SigTestsURL_BaseURL_SIGResourceActurl\").innerHTML=xhr.responseText;\n"); writer.write(" }\n"); writer.write(" };\n"); writer.write(" xhr.open(\"GET\",\"" + resurl.toString() + "\",true);\n"); writer.write(" xhr.send();\n"); writer.write("})();\n"); writer.write("</script>\n"); } }