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: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org