[Jsptest-svn-commits] SF.net SVN: jsptest:[270] trunk
Status: Alpha
Brought to you by:
lkoskela
From: <lko...@us...> - 2012-04-11 23:19:37
|
Revision: 270 http://jsptest.svn.sourceforge.net/jsptest/?rev=270&view=rev Author: lkoskela Date: 2012-04-11 23:19:30 +0000 (Wed, 11 Apr 2012) Log Message: ----------- Implement support for setting request parameters from subclasses of JspTestCase. Modified Paths: -------------- trunk/jsptest-generic/jsptest-compiler-api/src/main/java/net/sf/jsptest/compiler/api/Jsp.java trunk/jsptest-generic/jsptest-framework/src/main/java/net/sf/jsptest/JspTestCase.java trunk/jsptest-generic/jsptest-framework/src/test/java/net/sf/jsptest/compiler/dummy/FakeJspCompiler.java trunk/jsptest-generic/jsptest-framework/src/test/resources/websrc/echo_attributes.jsp trunk/jsptest-jsp20/src/main/java/net/sf/jsptest/compiler/jsp20/JspImpl.java trunk/jsptest-jsp20/src/main/java/net/sf/jsptest/compiler/jsp20/mock/MockHttpServletRequest.java trunk/jsptest-jsp20/src/test/java/net/sf/jsptest/compiler/jsp20/TestJspImpl.java Added Paths: ----------- trunk/jsptest-acceptance/jsptest-acceptance-jsp20/src/test/java/net/sf/jsptest/acceptance/jsp/RequestParameterTest.java trunk/jsptest-acceptance/jsptest-acceptance-jsp20/src/test/resources/websrc/echo_parameters.jsp trunk/jsptest-jsp21/src/test/resources/ Added: trunk/jsptest-acceptance/jsptest-acceptance-jsp20/src/test/java/net/sf/jsptest/acceptance/jsp/RequestParameterTest.java =================================================================== --- trunk/jsptest-acceptance/jsptest-acceptance-jsp20/src/test/java/net/sf/jsptest/acceptance/jsp/RequestParameterTest.java (rev 0) +++ trunk/jsptest-acceptance/jsptest-acceptance-jsp20/src/test/java/net/sf/jsptest/acceptance/jsp/RequestParameterTest.java 2012-04-11 23:19:30 UTC (rev 270) @@ -0,0 +1,38 @@ +/* + * Copyright 2007 Lasse Koskela. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package net.sf.jsptest.acceptance.jsp; + +import net.sf.jsptest.JspTestCase; + +/** + * @author Lasse Koskela + */ +public class RequestParameterTest extends JspTestCase { + + protected String getWebRoot() { + return "src/test/resources/websrc"; + } + + public void testRequestParameters() throws Exception { + setRequestParameter("Rn1", "Rv1"); + setRequestParameter("Rn2", "Rv2"); + setRequestParameter("Rn3", new String[] {"Rv3a", "Rv3b"}); + get("/echo_parameters.jsp"); + output().shouldContain("request parameter: 'Rn1'='Rv1'"); + output().shouldContain("request parameter: 'Rn2'='Rv2'"); + output().shouldContain("request parameter: 'Rn3'='Rv3a','Rv3b'"); + } +} Added: trunk/jsptest-acceptance/jsptest-acceptance-jsp20/src/test/resources/websrc/echo_parameters.jsp =================================================================== --- trunk/jsptest-acceptance/jsptest-acceptance-jsp20/src/test/resources/websrc/echo_parameters.jsp (rev 0) +++ trunk/jsptest-acceptance/jsptest-acceptance-jsp20/src/test/resources/websrc/echo_parameters.jsp 2012-04-11 23:19:30 UTC (rev 270) @@ -0,0 +1,21 @@ +<%@ page language="Java" %> +<%@ page import="java.util.*" %> + +Request parameters: +<% + Enumeration requestParameters = request.getParameterNames(); + while (requestParameters.hasMoreElements()) { + String name = (String) requestParameters.nextElement(); + String[] values = request.getParameterValues(name); + out.print("request parameter: '" + name + "'="); + for (int i = 0; i < values.length; i++) { + if (i > 0) { + out.print(","); + } + out.print("'" + values[i] + "'"); + } + out.println(); + //String value = String.valueOf(request.getParameter(name)); + //out.println("request parameter: '" + name + "'='" + value + "'"); + } +%> Modified: trunk/jsptest-generic/jsptest-compiler-api/src/main/java/net/sf/jsptest/compiler/api/Jsp.java =================================================================== --- trunk/jsptest-generic/jsptest-compiler-api/src/main/java/net/sf/jsptest/compiler/api/Jsp.java 2012-04-11 23:16:22 UTC (rev 269) +++ trunk/jsptest-generic/jsptest-compiler-api/src/main/java/net/sf/jsptest/compiler/api/Jsp.java 2012-04-11 23:19:30 UTC (rev 270) @@ -7,5 +7,5 @@ */ public interface Jsp { - JspExecution request(String httpMethod, Map requestAttributes, Map sessionAttributes); + JspExecution request(String httpMethod, Map requestAttributes, Map sessionAttributes, Map requestParameters); } Modified: trunk/jsptest-generic/jsptest-framework/src/main/java/net/sf/jsptest/JspTestCase.java =================================================================== --- trunk/jsptest-generic/jsptest-framework/src/main/java/net/sf/jsptest/JspTestCase.java 2012-04-11 23:16:22 UTC (rev 269) +++ trunk/jsptest-generic/jsptest-framework/src/main/java/net/sf/jsptest/JspTestCase.java 2012-04-11 23:19:30 UTC (rev 270) @@ -37,6 +37,7 @@ public abstract class JspTestCase extends TestCase { private Logger log; + private Map requestParameters; private Map requestAttributes; private Map sessionAttributes; private Map substituteTaglibs; @@ -51,6 +52,7 @@ * if you override this!</b> */ protected void setUp() throws Exception { + requestParameters = new HashMap(); requestAttributes = new HashMap(); sessionAttributes = new HashMap(); substituteTaglibs = new HashMap(); @@ -87,8 +89,32 @@ protected void setRequestAttribute(String attribute, Object value) { requestAttributes.put(attribute, value); } + + /** + * Sets a single value for a request parameter for the next request. + * + * @param attribute + * Name of the attribute. + * @param value + * Value for the attribute. + */ + protected void setRequestParameter(String parameter, String value) { + setRequestParameter(parameter, new String[] {value}); + } /** + * Sets multiple values for a request parameter for the next request. + * + * @param attribute + * Name of the attribute. + * @param values + * Values for the attribute. + */ + protected void setRequestParameter(String parameter, String[] values) { + requestParameters.put(parameter, values); + } + + /** * Simulate a HTTP GET request to the specified JSP file. * * @param path @@ -127,7 +153,7 @@ compiler.setOutputDirectory(getOutputDirectory()); Jsp jsp = compiler.compile(path, substituteTaglibs); log.debug("Simulating a request to " + path); - execution = jsp.request(httpMethod, requestAttributes, sessionAttributes); + execution = jsp.request(httpMethod, requestAttributes, sessionAttributes, requestParameters); } private void validatePath(String path) { Modified: trunk/jsptest-generic/jsptest-framework/src/test/java/net/sf/jsptest/compiler/dummy/FakeJspCompiler.java =================================================================== --- trunk/jsptest-generic/jsptest-framework/src/test/java/net/sf/jsptest/compiler/dummy/FakeJspCompiler.java 2012-04-11 23:16:22 UTC (rev 269) +++ trunk/jsptest-generic/jsptest-framework/src/test/java/net/sf/jsptest/compiler/dummy/FakeJspCompiler.java 2012-04-11 23:19:30 UTC (rev 270) @@ -38,7 +38,7 @@ return new Jsp() { public JspExecution request(String httpMethod, Map requestAttributes, - Map sessionAttributes) { + Map sessionAttributes, Map requestParameters) { return new JspExecution() { public String getRenderedResponse() { Modified: trunk/jsptest-generic/jsptest-framework/src/test/resources/websrc/echo_attributes.jsp =================================================================== --- trunk/jsptest-generic/jsptest-framework/src/test/resources/websrc/echo_attributes.jsp 2012-04-11 23:16:22 UTC (rev 269) +++ trunk/jsptest-generic/jsptest-framework/src/test/resources/websrc/echo_attributes.jsp 2012-04-11 23:19:30 UTC (rev 270) @@ -1,22 +0,0 @@ -<%@ page language="Java" %> -<%@ page import="java.util.*" %> - -Request attributes: -<% - Enumeration requestAttributes = request.getAttributeNames(); - while (requestAttributes.hasMoreElements()) { - String name = (String) requestAttributes.nextElement(); - String value = String.valueOf(request.getAttribute(name)); - out.println("request attribute: '" + name + "'='" + value + "'"); - } -%> - -Session attributes: -<% - Enumeration sessionAttributes = session.getAttributeNames(); - while (sessionAttributes.hasMoreElements()) { - String name = (String) sessionAttributes.nextElement(); - String value = String.valueOf(session.getAttribute(name)); - out.println("session attribute: '" + name + "'='" + value + "'"); - } -%> Modified: trunk/jsptest-jsp20/src/main/java/net/sf/jsptest/compiler/jsp20/JspImpl.java =================================================================== --- trunk/jsptest-jsp20/src/main/java/net/sf/jsptest/compiler/jsp20/JspImpl.java 2012-04-11 23:16:22 UTC (rev 269) +++ trunk/jsptest-jsp20/src/main/java/net/sf/jsptest/compiler/jsp20/JspImpl.java 2012-04-11 23:19:30 UTC (rev 270) @@ -34,7 +34,7 @@ this.servletClass = servletClass; } - public JspExecution request(String httpMethod, Map requestAttributes, Map sessionAttributes) { + public JspExecution request(String httpMethod, Map requestAttributes, Map sessionAttributes, Map requestParameters) { ServletContext servletContext = new MockServletContext(); ServletConfig servletConfig = new MockServletConfig(servletContext); MockHttpSession httpSession = new MockHttpSession(); @@ -43,6 +43,7 @@ request.setSession(httpSession); request.setMethod(httpMethod); request.setAttributes(requestAttributes); + request.setParameters(requestParameters); MockHttpServletResponse response = new MockHttpServletResponse(); MockJspWriter jspWriter = configureJspFactory(servletContext, request, httpSession); initializeAndInvokeJsp(servletClass, servletConfig, request, response); Modified: trunk/jsptest-jsp20/src/main/java/net/sf/jsptest/compiler/jsp20/mock/MockHttpServletRequest.java =================================================================== --- trunk/jsptest-jsp20/src/main/java/net/sf/jsptest/compiler/jsp20/mock/MockHttpServletRequest.java 2012-04-11 23:16:22 UTC (rev 269) +++ trunk/jsptest-jsp20/src/main/java/net/sf/jsptest/compiler/jsp20/mock/MockHttpServletRequest.java 2012-04-11 23:19:30 UTC (rev 270) @@ -24,6 +24,7 @@ import java.util.Arrays; import java.util.Enumeration; import java.util.HashMap; +import java.util.Iterator; import java.util.Locale; import java.util.Map; import java.util.Vector; @@ -337,6 +338,15 @@ public String[] getParameterValues(String name) { return (String[]) parameters.get(name); } + + public void setParameters(Map requestParameters) { + Iterator parameterNames = requestParameters.keySet().iterator(); + while (parameterNames.hasNext()) { + String name = (String) parameterNames.next(); + String[] values = (String[]) requestParameters.get(name); + parameters.put(name, values); + } + } public void setSession(MockHttpSession session) { this.httpSession = session; Modified: trunk/jsptest-jsp20/src/test/java/net/sf/jsptest/compiler/jsp20/TestJspImpl.java =================================================================== --- trunk/jsptest-jsp20/src/test/java/net/sf/jsptest/compiler/jsp20/TestJspImpl.java 2012-04-11 23:16:22 UTC (rev 269) +++ trunk/jsptest-jsp20/src/test/java/net/sf/jsptest/compiler/jsp20/TestJspImpl.java 2012-04-11 23:19:30 UTC (rev 270) @@ -47,6 +47,13 @@ out.print("="); out.println(session.getAttribute(name)); } + Enumeration names3 = req.getParameterNames(); + while (names3.hasMoreElements()) { + String name = (String) names3.nextElement(); + out.print(name); + out.print("="); + out.println(req.getParameter(name)); + } out.println(); out.flush(); out.close(); @@ -55,15 +62,18 @@ protected String responseOutput; private JspImpl jspImpl; + private Map requestParameters; private Map requestAttributes; private Map sessionAttributes; private MockJspWriter mockJspWriter; protected void setUp() throws Exception { + requestParameters = new HashMap(); requestAttributes = new HashMap(); sessionAttributes = new HashMap(); requestAttributes.put("REQATTR", "REQVALUE"); sessionAttributes.put("SESATTR", "SESVALUE"); + requestParameters.put("REQPARM", new String[] {"PARAMVAL"}); jspImpl = new JspImpl(FakeServlet.class) { protected MockJspWriter configureJspFactory(ServletContext httpContext, @@ -81,6 +91,11 @@ assertOutputContains("httpMethod=POST"); } + public void testRequestParametersArePassedToTheServletInstance() throws Exception { + simulateRequest(); + assertOutputContains("REQPARM=PARAMVAL"); + } + public void testRequestAttributesArePassedToTheServletInstance() throws Exception { simulateRequest(); assertOutputContains("REQATTR=REQVALUE"); @@ -96,7 +111,7 @@ } private void simulateRequest(String method) { - JspExecution execution = jspImpl.request(method, requestAttributes, sessionAttributes); + JspExecution execution = jspImpl.request(method, requestAttributes, sessionAttributes, requestParameters); responseOutput = execution.getRenderedResponse(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |