Author: rjung
Date: Tue Dec 16 10:51:26 2014
New Revision: 1645904
URL: http://svn.apache.org/r1645904
Log:
Add new RequestDescriptor class which contains
parsed data returned from the SnoopServlet.
Adjust TestRewriteValve to use RequestDescriptor.
Backport of r1645486 from trunk.
Modified:
tomcat/tc8.0.x/trunk/ (props changed)
tomcat/tc8.0.x/trunk/test/org/apache/catalina/startup/TomcatBaseTest.java
tomcat/tc8.0.x/trunk/test/org/apache/catalina/valves/rewrite/TestRewriteValve.java
tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml
Propchange: tomcat/tc8.0.x/trunk/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Dec 16 10:51:26 2014
@@ -1 +1 @@
-/tomcat/trunk:1636524,1637156,1637176,1637188,1637331,1637684,1637695,1638720-1638725,1639653,1640010,1640083-1640084,1640088,1640275,1640322,1640347,1640361,1640365,1640403,1640410,1640652,1640655-1640658,1640688,1640700-1640883,1640903,1640976,1640978,1641000,1641026,1641038-1641039,1641051-1641052,1641058,1641064,1641300,1641369,1641374,1641380,1641486,1641634,1641656-1641692,1641704,1641707-1641718,1641720-1641722,1641735,1641981,1642233,1642280,1642554,1642564,1642595,1642606,1642668,1642679,1642697,1642699,1642766,1643002,1643045,1643054-1643055,1643066,1643121,1643128,1643206,1643209-1643210,1643216,1643249,1643270,1643283,1643309-1643310,1643323,1643365-1643366,1643370-1643371,1643465,1643474,1643536,1643570,1643634,1643649,1643651,1643654,1643675,1643731,1643733-1643734,1643761,1643766,1643814,1643937,1643963,1644017,1644169,1644201-1644203,1644321,1644323,1644516,1644523,1644529,1644535,1644730,1644768,1644784-1644785,1644790,1644793,1644815,1644884,1644886,1644890,1644892
,1644910,1644924,1644929-1644930,1644935,1644989,1645011,1645247,1645355,1645357-1645358,1645455,1645465,1645469,1645471,1645473,1645475,1645487,1645626,1645641,1645685
+/tomcat/trunk:1636524,1637156,1637176,1637188,1637331,1637684,1637695,1638720-1638725,1639653,1640010,1640083-1640084,1640088,1640275,1640322,1640347,1640361,1640365,1640403,1640410,1640652,1640655-1640658,1640688,1640700-1640883,1640903,1640976,1640978,1641000,1641026,1641038-1641039,1641051-1641052,1641058,1641064,1641300,1641369,1641374,1641380,1641486,1641634,1641656-1641692,1641704,1641707-1641718,1641720-1641722,1641735,1641981,1642233,1642280,1642554,1642564,1642595,1642606,1642668,1642679,1642697,1642699,1642766,1643002,1643045,1643054-1643055,1643066,1643121,1643128,1643206,1643209-1643210,1643216,1643249,1643270,1643283,1643309-1643310,1643323,1643365-1643366,1643370-1643371,1643465,1643474,1643536,1643570,1643634,1643649,1643651,1643654,1643675,1643731,1643733-1643734,1643761,1643766,1643814,1643937,1643963,1644017,1644169,1644201-1644203,1644321,1644323,1644516,1644523,1644529,1644535,1644730,1644768,1644784-1644785,1644790,1644793,1644815,1644884,1644886,1644890,1644892
,1644910,1644924,1644929-1644930,1644935,1644989,1645011,1645247,1645355,1645357-1645358,1645455,1645465,1645469,1645471,1645473,1645475,1645486-1645487,1645626,1645641,1645685
Modified:
tomcat/tc8.0.x/trunk/test/org/apache/catalina/startup/TomcatBaseTest.java
URL:
http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/test/org/apache/catalina/startup/TomcatBaseTest.java?rev=1645904&r1=1645903&r2=1645904&view=diff
==============================================================================
--- tomcat/tc8.0.x/trunk/test/org/apache/catalina/startup/TomcatBaseTest.java
(original)
+++ tomcat/tc8.0.x/trunk/test/org/apache/catalina/startup/TomcatBaseTest.java
Tue Dec 16 10:51:26 2014
@@ -40,6 +40,7 @@ import javax.servlet.http.HttpSession;
import static org.junit.Assert.fail;
import org.junit.After;
+import org.junit.Assert;
import org.junit.Before;
import org.apache.catalina.Container;
@@ -235,9 +236,9 @@ public abstract class TomcatBaseTest ext
}
- public final class SnoopResult {
+ public static final class RequestDescriptor {
- private final HashMap<String, String> request =
+ private final HashMap<String, String> requestInfo =
new HashMap<String, String>();
private final HashMap<String, String> contextInitParameters =
new HashMap<String, String>();
@@ -252,8 +253,8 @@ public abstract class TomcatBaseTest ext
private final HashMap<String, String> sessionAttributes =
new HashMap<String, String>();
- public HashMap<String, String> getRequest() {
- return request;
+ public HashMap<String, String> getRequestInfo() {
+ return requestInfo;
}
public HashMap<String, String> getContextInitParameters() {
@@ -280,7 +281,107 @@ public abstract class TomcatBaseTest ext
return sessionAttributes;
}
- public SnoopResult(String body) {
+ public String getRequestInfo(String name) {
+ return requestInfo.get(name);
+ }
+
+ public void putRequestInfo(String name, String value) {
+ requestInfo.put(name, value);
+ }
+
+ public String getContextInitParameter(String name) {
+ return contextInitParameters.get(name);
+ }
+
+ public void putContextInitParameter(String name, String value) {
+ contextInitParameters.put(name, value);
+ }
+
+ public String getContextAttribute(String name) {
+ return contextAttributes.get(name);
+ }
+
+ public void putContextAttribute(String name, String value) {
+ contextAttributes.put(name, value);
+ }
+
+ public String getHeader(String name) {
+ return headers.get(name);
+ }
+
+ public void putHeader(String name, String value) {
+ headers.put(name, value);
+ }
+
+ public String getAttribute(String name) {
+ return attributes.get(name);
+ }
+
+ public void putAttribute(String name, String value) {
+ attributes.put(name, value);
+ }
+
+ public String getParam(String name) {
+ return params.get(name);
+ }
+
+ public void putParam(String name, String value) {
+ params.put(name, value);
+ }
+
+ public String getSessionAttribute(String name) {
+ return sessionAttributes.get(name);
+ }
+
+ public void putSessionAttribute(String name, String value) {
+ sessionAttributes.put(name, value);
+ }
+
+ public void compare (RequestDescriptor request) {
+ HashMap<String, String> base;
+ HashMap<String, String> cmp;
+ base = request.getRequestInfo();
+ cmp = this.getRequestInfo();
+ for (String name: base.keySet()) {
+ Assert.assertEquals("Request info " + name, base.get(name),
cmp.get(name));
+ }
+ base = request.getContextInitParameters();
+ cmp = this.getContextInitParameters();
+ for (String name: base.keySet()) {
+ Assert.assertEquals("Context parameter " + name,
base.get(name), cmp.get(name));
+ }
+ base = request.getContextAttributes();
+ cmp = this.getContextAttributes();
+ for (String name: base.keySet()) {
+ Assert.assertEquals("Context attribute " + name,
base.get(name), cmp.get(name));
+ }
+ base = request.getHeaders();
+ cmp = this.getHeaders();
+ for (String name: base.keySet()) {
+ Assert.assertEquals("Header " + name, base.get(name),
cmp.get(name));
+ }
+ base = request.getAttributes();
+ cmp = this.getAttributes();
+ for (String name: base.keySet()) {
+ Assert.assertEquals("Attribute " + name, base.get(name),
cmp.get(name));
+ }
+ base = request.getParams();
+ cmp = this.getParams();
+ for (String name: base.keySet()) {
+ Assert.assertEquals("Param " + name, base.get(name),
cmp.get(name));
+ }
+ base = request.getSessionAttributes();
+ cmp = this.getSessionAttributes();
+ for (String name: base.keySet()) {
+ Assert.assertEquals("Session attribute " + name,
base.get(name), cmp.get(name));
+ }
+ }
+ }
+
+
+ public static final class SnoopResult {
+
+ public static RequestDescriptor parse(String body) {
int n;
int m;
@@ -288,6 +389,8 @@ public abstract class TomcatBaseTest ext
String value;
String name;
+ RequestDescriptor request = new RequestDescriptor();
+
for (String line: body.split("\n")) {
n = line.indexOf(": ");
if (n > 0) {
@@ -298,25 +401,27 @@ public abstract class TomcatBaseTest ext
name = key.substring(m + 1);
key = key.substring(0, m);
if (key.equals("CONTEXT-PARAM")) {
- contextInitParameters.put(name, value);
+ request.putContextInitParameter(name, value);
} else if (key.equals("CONTEXT-ATTRIBUTE")) {
- contextAttributes.put(name, value);
+ request.putContextAttribute(name, value);
} else if (key.equals("HEADER")) {
- headers.put(name, value);
+ request.putHeader(name, value);
} else if (key.equals("ATTRIBUTE")) {
- attributes.put(name, value);
+ request.putAttribute(name, value);
} else if (key.equals("PARAM")) {
- params.put(name, value);
+ request.putParam(name, value);
} else if (key.equals("SESSION-ATTRIBUTE")) {
- sessionAttributes.put(name, value);
+ request.putSessionAttribute(name, value);
} else {
- request.put(key + ":" + name, value);
+ request.putRequestInfo(key + ":" + name, value);
}
} else {
- request.put(key, value);
+ request.putRequestInfo(key, value);
}
}
}
+
+ return request;
}
}
@@ -382,6 +487,7 @@ public abstract class TomcatBaseTest ext
request.getPathTranslated());
out.println("REQUEST-QUERY-STRING: " + request.getQueryString());
out.println("REQUEST-REMOTE-USER: " + request.getRemoteUser());
+ out.println("REQUEST-AUTH-TYPE: " + request.getAuthType());
out.println("REQUEST-USER-PRINCIPAL: " +
request.getUserPrincipal());
out.println("REQUEST-CHARACTER-ENCODING: " +
Modified:
tomcat/tc8.0.x/trunk/test/org/apache/catalina/valves/rewrite/TestRewriteValve.java
URL:
http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/test/org/apache/catalina/valves/rewrite/TestRewriteValve.java?rev=1645904&r1=1645903&r2=1645904&view=diff
==============================================================================
---
tomcat/tc8.0.x/trunk/test/org/apache/catalina/valves/rewrite/TestRewriteValve.java
(original)
+++
tomcat/tc8.0.x/trunk/test/org/apache/catalina/valves/rewrite/TestRewriteValve.java
Tue Dec 16 10:51:26 2014
@@ -67,8 +67,8 @@ public class TestRewriteValve extends To
ByteChunk res = getUrl("http://localhost:" + getPort() + request);
String body = res.toString();
- SnoopResult parsedBody = new SnoopResult(body);
- String requestURI = parsedBody.getRequest().get("REQUEST-URI");
+ RequestDescriptor requestDesc = SnoopResult.parse(body);
+ String requestURI = requestDesc.getRequestInfo("REQUEST-URI");
Assert.assertEquals(expectedURI, requestURI);
}
}
Modified: tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml
URL:
http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml?rev=1645904&r1=1645903&r2=1645904&view=diff
==============================================================================
--- tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml Tue Dec 16 10:51:26 2014
@@ -183,6 +183,10 @@
<update>
Improve SnoopServlet in unit tests. (rjung)
</update>
+ <add>
+ Add RequestDescriptor class to unit tests. (rjung)
+ Adjust TestRewriteValve to use RequestDescriptor.
+ </add>
</changelog>
</subsection>
<subsection name="Coyote">
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]