[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.
|