Author: kwin
Date: Fri Aug 5 12:30:07 2016
New Revision: 1755308
URL: http://svn.apache.org/viewvc?rev=1755308&view=rev
Log:
SLING-5974 implement getServletPath(), getPathInfo(), getRequestURI(),
getRequestURL() and getAuthType() in MockSlingHttpServletRequest
Modified:
sling/trunk/bundles/extensions/servlet-helpers/src/main/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequest.java
sling/trunk/bundles/extensions/servlet-helpers/src/main/java/org/apache/sling/servlethelpers/package-info.java
sling/trunk/bundles/extensions/servlet-helpers/src/test/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequestTest.java
Modified:
sling/trunk/bundles/extensions/servlet-helpers/src/main/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequest.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/servlet-helpers/src/main/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequest.java?rev=1755308&r1=1755307&r2=1755308&view=diff
==============================================================================
---
sling/trunk/bundles/extensions/servlet-helpers/src/main/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequest.java
(original)
+++
sling/trunk/bundles/extensions/servlet-helpers/src/main/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequest.java
Fri Aug 5 12:30:07 2016
@@ -81,11 +81,13 @@ public class MockSlingHttpServletRequest
private Map<String, String[]> parameterMap = new LinkedHashMap<String,
String[]>();
private HttpSession session;
private Resource resource;
+ private String authType;
private String contextPath;
private String queryString;
private String scheme = "http";
private String serverName = "localhost";
private int serverPort = 80;
+ private String servletPath = StringUtils.EMPTY;
private String method = HttpConstants.METHOD_GET;
private final HeaderSupport headerSupport = new HeaderSupport();
private final CookieSupport cookieSupport = new CookieSupport();
@@ -632,56 +634,113 @@ public class MockSlingHttpServletRequest
this.remotePort = remotePort;
}
-
- // --- unsupported operations ---
+ @Override
+ public String getServletPath() {
+ return this.servletPath;
+ }
+
+ public void setServletPath(String servletPath) {
+ this.servletPath = servletPath;
+ }
@Override
- public RequestProgressTracker getRequestProgressTracker() {
- throw new UnsupportedOperationException();
+ public String getPathInfo() {
+ RequestPathInfo requestPathInfo = this.getRequestPathInfo();
+
+ if (StringUtils.isEmpty(requestPathInfo.getResourcePath())) {
+ return null;
+ }
+
+ StringBuilder pathInfo = new StringBuilder();
+
+ pathInfo.append(requestPathInfo.getResourcePath());
+
+ if (StringUtils.isNotEmpty(requestPathInfo.getSelectorString())) {
+ pathInfo.append('.');
+ pathInfo.append(requestPathInfo.getSelectorString());
+ }
+
+ if (StringUtils.isNotEmpty(requestPathInfo.getExtension())) {
+ pathInfo.append('.');
+ pathInfo.append(requestPathInfo.getExtension());
+ }
+
+ if (StringUtils.isNotEmpty(requestPathInfo.getSuffix())) {
+ pathInfo.append(requestPathInfo.getSuffix());
+ }
+
+ return pathInfo.toString();
}
@Override
- public String getResponseContentType() {
- throw new UnsupportedOperationException();
+ public String getRequestURI() {
+ StringBuilder requestUri = new StringBuilder();
+
+ if (StringUtils.isNotEmpty(this.getServletPath())) {
+ requestUri.append(this.getServletPath());
+ }
+
+ if (StringUtils.isNotEmpty(this.getPathInfo())) {
+ requestUri.append(this.getPathInfo());
+ }
+
+ if (StringUtils.isEmpty(requestUri)) {
+ return "/";
+ } else {
+ return requestUri.toString();
+ }
}
@Override
- public Enumeration<String> getResponseContentTypes() {
- throw new UnsupportedOperationException();
+ public StringBuffer getRequestURL() {
+ StringBuffer requestUrl = new StringBuffer();
+
+ requestUrl.append(this.getScheme());
+ requestUrl.append("://");
+ requestUrl.append(getServerName());
+ if ((StringUtils.equals(this.getScheme(), "http") &&
this.getServerPort() != 80) ||
+ (StringUtils.equals(this.getScheme(), "https") &&
this.getServerPort() != 443)) {
+ requestUrl.append(':');
+ requestUrl.append(getServerPort());
+ }
+ requestUrl.append(getRequestURI());
+
+ return requestUrl;
}
@Override
public String getAuthType() {
- throw new UnsupportedOperationException();
+ return this.authType;
}
- @Override
- public String getPathInfo() {
- throw new UnsupportedOperationException();
+ public void setAuthType(String authType) {
+ this.authType = authType;
}
+ // --- unsupported operations ---
+
@Override
- public String getPathTranslated() {
+ public RequestProgressTracker getRequestProgressTracker() {
throw new UnsupportedOperationException();
}
@Override
- public String getRequestURI() {
+ public String getResponseContentType() {
throw new UnsupportedOperationException();
}
@Override
- public StringBuffer getRequestURL() {
+ public Enumeration<String> getResponseContentTypes() {
throw new UnsupportedOperationException();
}
@Override
- public String getRequestedSessionId() {
+ public String getPathTranslated() {
throw new UnsupportedOperationException();
}
@Override
- public String getServletPath() {
+ public String getRequestedSessionId() {
throw new UnsupportedOperationException();
}
Modified:
sling/trunk/bundles/extensions/servlet-helpers/src/main/java/org/apache/sling/servlethelpers/package-info.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/servlet-helpers/src/main/java/org/apache/sling/servlethelpers/package-info.java?rev=1755308&r1=1755307&r2=1755308&view=diff
==============================================================================
---
sling/trunk/bundles/extensions/servlet-helpers/src/main/java/org/apache/sling/servlethelpers/package-info.java
(original)
+++
sling/trunk/bundles/extensions/servlet-helpers/src/main/java/org/apache/sling/servlethelpers/package-info.java
Fri Aug 5 12:30:07 2016
@@ -19,5 +19,5 @@
/**
* Mock implementation of selected Servlet-related Sling APIs.
*/
[email protected]("1.0")
[email protected]("1.1")
package org.apache.sling.servlethelpers;
Modified:
sling/trunk/bundles/extensions/servlet-helpers/src/test/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequestTest.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/servlet-helpers/src/test/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequestTest.java?rev=1755308&r1=1755307&r2=1755308&view=diff
==============================================================================
---
sling/trunk/bundles/extensions/servlet-helpers/src/test/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequestTest.java
(original)
+++
sling/trunk/bundles/extensions/servlet-helpers/src/test/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequestTest.java
Fri Aug 5 12:30:07 2016
@@ -88,6 +88,66 @@ public class MockSlingHttpServletRequest
}
@Test
+ public void testPathInfo() {
+ MockRequestPathInfo requestPathInfo = (MockRequestPathInfo)
request.getRequestPathInfo();
+ requestPathInfo.setResourcePath("/content/resource");
+ requestPathInfo.setExtension("html");
+ requestPathInfo.setSelectorString("a1.a2");
+ requestPathInfo.setSuffix("/content/another/resource.html");
+
+
assertEquals("/content/resource.a1.a2.html/content/another/resource.html",
request.getPathInfo());
+
+ requestPathInfo.setSelectorString(null);
+
+ assertEquals("/content/resource.html/content/another/resource.html",
request.getPathInfo());
+
+ requestPathInfo.setSuffix(null);
+
+ assertEquals("/content/resource.html", request.getPathInfo());
+
+ requestPathInfo.setResourcePath(null);
+
+ assertNull(request.getPathInfo());
+ }
+
+ @Test
+ public void testRequestUri() {
+ MockRequestPathInfo requestPathInfo = (MockRequestPathInfo)
request.getRequestPathInfo();
+ requestPathInfo.setResourcePath("/content/resource");
+ requestPathInfo.setExtension("html");
+ requestPathInfo.setSelectorString("a1.a2");
+ requestPathInfo.setSuffix("/content/another/resource.html");
+
+
assertEquals("/content/resource.a1.a2.html/content/another/resource.html",
request.getRequestURI());
+
+ request.setServletPath("/my");
+
+
assertEquals("/my/content/resource.a1.a2.html/content/another/resource.html",
request.getRequestURI());
+ }
+
+ @Test
+ public void testRequestUrl() {
+ MockRequestPathInfo requestPathInfo = (MockRequestPathInfo)
request.getRequestPathInfo();
+ requestPathInfo.setResourcePath("/content/resource");
+ requestPathInfo.setExtension("html");
+
+ assertEquals("http://localhost/content/resource.html",
request.getRequestURL().toString());
+
+ request.setServerPort(8080);
+
+ assertEquals("http://localhost:8080/content/resource.html",
request.getRequestURL().toString());
+
+ request.setScheme("https");
+ request.setServerPort(443);
+
+ assertEquals("https://localhost/content/resource.html",
request.getRequestURL().toString());
+
+ request.setServerPort(8443);
+
+ assertEquals("https://localhost:8443/content/resource.html",
request.getRequestURL().toString());
+ }
+
+ @Test
public void testRequestPathInfo() {
assertNotNull(request.getRequestPathInfo());
}