You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ss...@apache.org on 2016/01/14 00:07:10 UTC
svn commit: r1724523 [3/3] - in /sling/trunk: ./
bundles/extensions/servlet-helpers/ bundles/extensions/servlet-helpers/src/
bundles/extensions/servlet-helpers/src/main/
bundles/extensions/servlet-helpers/src/main/java/
bundles/extensions/servlet-helpe...
Modified: sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/servlet/MockSlingHttpServletRequest.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/servlet/MockSlingHttpServletRequest.java?rev=1724523&r1=1724522&r2=1724523&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/servlet/MockSlingHttpServletRequest.java (original)
+++ sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/servlet/MockSlingHttpServletRequest.java Wed Jan 13 23:07:09 2016
@@ -18,97 +18,22 @@
*/
package org.apache.sling.testing.mock.sling.servlet;
-import static org.apache.sling.testing.mock.sling.servlet.MockSlingHttpServletResponse.CHARSET_SEPARATOR;
-
-import java.io.BufferedReader;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
-import java.net.URLDecoder;
-import java.net.URLEncoder;
-import java.security.Principal;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.ListResourceBundle;
import java.util.Locale;
-import java.util.Map;
import java.util.ResourceBundle;
-import javax.servlet.AsyncContext;
-import javax.servlet.DispatcherType;
-import javax.servlet.RequestDispatcher;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.ServletInputStream;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
-import javax.servlet.http.Part;
-
-import org.apache.commons.collections.IteratorUtils;
-import org.apache.commons.lang3.CharEncoding;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.sling.api.SlingHttpServletRequest;
-import org.apache.sling.api.adapter.SlingAdaptable;
-import org.apache.sling.api.request.RequestDispatcherOptions;
-import org.apache.sling.api.request.RequestParameter;
-import org.apache.sling.api.request.RequestParameterMap;
-import org.apache.sling.api.request.RequestPathInfo;
-import org.apache.sling.api.request.RequestProgressTracker;
-import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ResourceResolver;
-import org.apache.sling.api.servlets.HttpConstants;
import org.apache.sling.i18n.ResourceBundleProvider;
import org.apache.sling.testing.mock.osgi.MockOsgi;
import org.apache.sling.testing.mock.sling.MockSling;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceReference;
-import com.google.common.collect.ImmutableList;
-
/**
* Mock {@link SlingHttpServletRequest} implementation.
*/
-public class MockSlingHttpServletRequest extends SlingAdaptable implements SlingHttpServletRequest {
+public class MockSlingHttpServletRequest extends org.apache.sling.servlethelpers.MockSlingHttpServletRequest {
- private final ResourceResolver resourceResolver;
private final BundleContext bundleContext;
- private RequestPathInfo requestPathInfo = new MockRequestPathInfo();
- private Map<String, Object> attributeMap = new HashMap<String, Object>();
- private Map<String, String[]> parameterMap = new LinkedHashMap<String, String[]>();
- private HttpSession session;
- private Resource resource;
- private String contextPath;
- private String queryString;
- private String scheme = "http";
- private String serverName = "localhost";
- private int serverPort = 80;
- private String method = HttpConstants.METHOD_GET;
- private final HeaderSupport headerSupport = new HeaderSupport();
- private final CookieSupport cookieSupport = new CookieSupport();
- private String contentType;
- private String characterEncoding;
- private byte[] content;
- private String remoteUser;
- private String remoteAddr;
- private String remoteHost;
- private int remotePort;
-
- private MockRequestDispatcherFactory requestDispatcherFactory;
-
- private static final ResourceBundle EMPTY_RESOURCE_BUNDLE = new ListResourceBundle() {
- @Override
- protected Object[][] getContents() {
- return new Object[0][0];
- }
- };
/**
* Instantiate with default resource resolver
@@ -130,7 +55,10 @@ public class MockSlingHttpServletRequest
/**
* @param resourceResolver Resource resolver
+ * @deprecated Please use {@link #MockSlingHttpServletRequest(ResourceResolver, BundleContext)}
+ * and shutdown the bundle context after usage.
*/
+ @Deprecated
public MockSlingHttpServletRequest(ResourceResolver resourceResolver) {
this(resourceResolver, MockOsgi.newBundleContext());
}
@@ -140,341 +68,18 @@ public class MockSlingHttpServletRequest
* @param bundleContext Bundle context
*/
public MockSlingHttpServletRequest(ResourceResolver resourceResolver, BundleContext bundleContext) {
- this.resourceResolver = resourceResolver;
+ super(resourceResolver);
this.bundleContext = bundleContext;
}
- @Override
- public ResourceResolver getResourceResolver() {
- return this.resourceResolver;
- }
-
- @Override
- public HttpSession getSession() {
- return getSession(true);
- }
-
- @Override
- public HttpSession getSession(boolean create) {
- if (this.session == null && create) {
- this.session = new MockHttpSession();
- }
- return this.session;
- }
-
- @Override
- public RequestPathInfo getRequestPathInfo() {
- return this.requestPathInfo;
- }
-
- @Override
- public Object getAttribute(String name) {
- return this.attributeMap.get(name);
- }
-
- @SuppressWarnings("unchecked")
- @Override
- public Enumeration<String> getAttributeNames() {
- return IteratorUtils.asEnumeration(this.attributeMap.keySet().iterator());
- }
-
- @Override
- public void removeAttribute(String name) {
- this.attributeMap.remove(name);
- }
-
- @Override
- public void setAttribute(String name, Object object) {
- this.attributeMap.put(name, object);
- }
-
- @Override
- public Resource getResource() {
- return this.resource;
- }
-
- public void setResource(Resource resource) {
- this.resource = resource;
- }
-
- @Override
- public String getParameter(String name) {
- Object object = this.parameterMap.get(name);
- if (object instanceof String) {
- return (String) object;
- } else if (object instanceof String[]) {
- String[] values = (String[]) object;
- if (values.length > 0) {
- return values[0];
- }
- }
- return null;
- }
-
- @Override
- public Map<String, String[]> getParameterMap() {
- return this.parameterMap;
- }
-
- @SuppressWarnings("unchecked")
- @Override
- public Enumeration<String> getParameterNames() {
- return IteratorUtils.asEnumeration(this.parameterMap.keySet().iterator());
- }
-
- @Override
- public String[] getParameterValues(String name) { // NOPMD
- Object object = this.parameterMap.get(name);
- if (object instanceof String) {
- return new String[] { (String) object };
- } else if (object instanceof String[]) {
- return (String[]) object;
- }
- return null; // NOPMD
- }
-
- /**
- * @param parameterMap Map of parameters
- */
- public void setParameterMap(Map<String, Object> parameterMap) {
- this.parameterMap.clear();
- for (Map.Entry<String, Object> entry : parameterMap.entrySet()) {
- String key = entry.getKey();
- Object value = entry.getValue();
- if (value instanceof String[]) {
- this.parameterMap.put(key, (String[]) value);
- } else if (value != null) {
- this.parameterMap.put(key, new String[] { value.toString() });
- } else {
- this.parameterMap.put(key, null);
- }
- }
- try {
- this.queryString = formatQueryString(this.parameterMap);
- } catch (UnsupportedEncodingException ex) {
- throw new RuntimeException(ex);
- }
- }
-
- private String formatQueryString(Map<String, String[]> map) throws UnsupportedEncodingException {
- StringBuilder querystring = new StringBuilder();
- for (Map.Entry<String, String[]> entry : this.parameterMap.entrySet()) {
- if (entry.getValue() != null) {
- for (String value : entry.getValue()) {
- if (querystring.length() != 0) {
- querystring.append('&');
- }
- querystring.append(URLEncoder.encode(entry.getKey(), CharEncoding.UTF_8));
- querystring.append('=');
- if (value != null) {
- querystring.append(URLEncoder.encode(value, CharEncoding.UTF_8));
- }
- }
- }
- }
- if (querystring.length() > 0) {
- return querystring.toString();
- } else {
- return null;
- }
- }
-
- @Override
- public Locale getLocale() {
- return Locale.US;
- }
-
- @Override
- public String getContextPath() {
- return this.contextPath;
- }
-
- /**
- * @param contextPath Webapp context path
- */
- public void setContextPath(String contextPath) {
- this.contextPath = contextPath;
- }
-
- /**
- * @param queryString Query string (with proper URL encoding)
- */
- public void setQueryString(String queryString) {
- this.queryString = queryString;
- try {
- parseQueryString(this.parameterMap, this.queryString);
- } catch (UnsupportedEncodingException ex) {
- throw new RuntimeException(ex);
- }
- }
-
- private void parseQueryString(Map<String, String[]> map, String query) throws UnsupportedEncodingException {
- Map<String, List<String>> queryPairs = new LinkedHashMap<String, List<String>>();
- String[] pairs = query.split("&");
- for (String pair : pairs) {
- int idx = pair.indexOf('=');
- String key = idx > 0 ? URLDecoder.decode(pair.substring(0, idx), CharEncoding.UTF_8) : pair;
- if (!queryPairs.containsKey(key)) {
- queryPairs.put(key, new ArrayList<String>());
- }
- String value = idx > 0 && pair.length() > idx + 1 ? URLDecoder.decode(pair.substring(idx + 1),
- CharEncoding.UTF_8) : null;
- queryPairs.get(key).add(value);
- }
- map.clear();
- for (Map.Entry<String, List<String>> entry : queryPairs.entrySet()) {
- map.put(entry.getKey(), entry.getValue().toArray(new String[entry.getValue().size()]));
- }
- }
-
- @Override
- public String getQueryString() {
- return this.queryString;
- }
-
- @Override
- public String getScheme() {
- return this.scheme;
- }
-
- public void setScheme(String scheme) {
- this.scheme = scheme;
- }
-
- @Override
- public String getServerName() {
- return this.serverName;
- }
-
- public void setServerName(String serverName) {
- this.serverName = serverName;
- }
-
- @Override
- public int getServerPort() {
- return this.serverPort;
- }
-
- public void setServerPort(int serverPort) {
- this.serverPort = serverPort;
+ protected MockRequestPathInfo newMockRequestPathInfo() {
+ return new MockRequestPathInfo();
}
- @Override
- public boolean isSecure() {
- return StringUtils.equals("https", getScheme());
- }
-
- @Override
- public String getMethod() {
- return this.method;
- }
-
- public void setMethod(String method) {
- this.method = method;
+ protected MockHttpSession newMockHttpSession() {
+ return new MockHttpSession();
}
-
- @Override
- public long getDateHeader(String name) {
- return headerSupport.getDateHeader(name);
- }
-
- @Override
- public String getHeader(String name) {
- return headerSupport.getHeader(name);
- }
-
- @Override
- public Enumeration<String> getHeaderNames() {
- return HeaderSupport.toEnumeration(headerSupport.getHeaderNames());
- }
-
- @Override
- public Enumeration<String> getHeaders(String name) {
- return HeaderSupport.toEnumeration(headerSupport.getHeaders(name));
- }
-
- @Override
- public int getIntHeader(String name) {
- return headerSupport.getIntHeader(name);
- }
-
- /**
- * Add header, keep existing ones with same name.
- * @param name Header name
- * @param value Header value
- */
- public void addHeader(String name, String value) {
- headerSupport.addHeader(name, value);
- }
-
- /**
- * Add header, keep existing ones with same name.
- * @param name Header name
- * @param value Header value
- */
- public void addIntHeader(String name, int value) {
- headerSupport.addIntHeader(name, value);
- }
-
- /**
- * Add header, keep existing ones with same name.
- * @param name Header name
- * @param date Header value
- */
- public void addDateHeader(String name, long date) {
- headerSupport.addDateHeader(name, date);
- }
-
- /**
- * Set header, overwrite existing ones with same name.
- * @param name Header name
- * @param value Header value
- */
- public void setHeader(String name, String value) {
- headerSupport.setHeader(name, value);
- }
-
- /**
- * Set header, overwrite existing ones with same name.
- * @param name Header name
- * @param value Header value
- */
- public void setIntHeader(String name, int value) {
- headerSupport.setIntHeader(name, value);
- }
-
- /**
- * Set header, overwrite existing ones with same name.
- * @param name Header name
- * @param date Header value
- */
- public void setDateHeader(String name, long date) {
- headerSupport.setDateHeader(name, date);
- }
-
- @Override
- public Cookie getCookie(String name) {
- return cookieSupport.getCookie(name);
- }
-
- @Override
- public Cookie[] getCookies() {
- return cookieSupport.getCookies();
- }
-
- /**
- * Set cookie
- * @param cookie Cookie
- */
- public void addCookie(Cookie cookie) {
- cookieSupport.addCookie(cookie);
- }
-
- @Override
- public ResourceBundle getResourceBundle(Locale locale) {
- return getResourceBundle(null, locale);
- }
-
+
@Override
public ResourceBundle getResourceBundle(String baseName, Locale locale) {
// check of ResourceBundleProvider is registered in mock OSGI context
@@ -491,348 +96,4 @@ public class MockSlingHttpServletRequest
return resourceBundle;
}
- @Override
- public RequestParameter getRequestParameter(String name) {
- String value = getParameter(name);
- if (value != null) {
- return new MockRequestParameter(name, value);
- }
- return null;
- }
-
- @Override
- public RequestParameterMap getRequestParameterMap() {
- MockRequestParameterMap map = new MockRequestParameterMap();
- for (Map.Entry<String,String[]> entry : getParameterMap().entrySet()) {
- map.put(entry.getKey(), getRequestParameters(entry.getKey()));
- }
- return map;
- }
-
- @Override
- public RequestParameter[] getRequestParameters(String name) {
- String[] values = getParameterValues(name);
- if (values == null) {
- return null;
- }
- RequestParameter[] requestParameters = new RequestParameter[values.length];
- for (int i = 0; i < values.length; i++) {
- requestParameters[i] = new MockRequestParameter(name, values[i]);
- }
- return requestParameters;
- }
-
- // part of Sling API 2.7
- public List<RequestParameter> getRequestParameterList() {
- List<RequestParameter> params = new ArrayList<RequestParameter>();
- for (RequestParameter[] requestParameters : getRequestParameterMap().values()) {
- params.addAll(ImmutableList.copyOf(requestParameters));
- }
- return params;
- }
-
- @Override
- public String getCharacterEncoding() {
- return this.characterEncoding;
- }
-
- @Override
- public void setCharacterEncoding(String charset) {
- this.characterEncoding = charset;
- }
-
- @Override
- public String getContentType() {
- if (this.contentType == null) {
- return null;
- } else {
- return this.contentType
- + (StringUtils.isNotBlank(characterEncoding) ? CHARSET_SEPARATOR + characterEncoding : "");
- }
- }
-
- public void setContentType(String type) {
- this.contentType = type;
- if (StringUtils.contains(this.contentType, CHARSET_SEPARATOR)) {
- this.characterEncoding = StringUtils.substringAfter(this.contentType, CHARSET_SEPARATOR);
- this.contentType = StringUtils.substringBefore(this.contentType, CHARSET_SEPARATOR);
- }
- }
-
- @Override
- public ServletInputStream getInputStream() {
- if (content == null) {
- return null;
- }
- return new ServletInputStream() {
- private final InputStream is = new ByteArrayInputStream(content);
- @Override
- public int read() throws IOException {
- return is.read();
- }
- };
- }
-
- @Override
- public int getContentLength() {
- if (content == null) {
- return 0;
- }
- return content.length;
- }
-
- public void setContent(byte[] content) {
- this.content = content;
- }
-
- @Override
- public RequestDispatcher getRequestDispatcher(String path) {
- if (requestDispatcherFactory == null) {
- throw new IllegalStateException("Please provdide a MockRequestDispatcherFactory (setRequestDispatcherFactory).");
- }
- return requestDispatcherFactory.getRequestDispatcher(path, null);
- }
-
- @Override
- public RequestDispatcher getRequestDispatcher(String path, RequestDispatcherOptions options) {
- if (requestDispatcherFactory == null) {
- throw new IllegalStateException("Please provdide a MockRequestDispatcherFactory (setRequestDispatcherFactory).");
- }
- return requestDispatcherFactory.getRequestDispatcher(path, options);
- }
-
- @Override
- public RequestDispatcher getRequestDispatcher(Resource resource) {
- if (requestDispatcherFactory == null) {
- throw new IllegalStateException("Please provdide a MockRequestDispatcherFactory (setRequestDispatcherFactory).");
- }
- return requestDispatcherFactory.getRequestDispatcher(resource, null);
- }
-
- @Override
- public RequestDispatcher getRequestDispatcher(Resource resource, RequestDispatcherOptions options) {
- if (requestDispatcherFactory == null) {
- throw new IllegalStateException("Please provdide a MockRequestDispatcherFactory (setRequestDispatcherFactory).");
- }
- return requestDispatcherFactory.getRequestDispatcher(resource, options);
- }
-
- public void setRequestDispatcherFactory(MockRequestDispatcherFactory requestDispatcherFactory) {
- this.requestDispatcherFactory = requestDispatcherFactory;
- }
-
- @Override
- public String getRemoteUser() {
- return remoteUser;
- }
-
- public void setRemoteUser(String remoteUser) {
- this.remoteUser = remoteUser;
- }
-
- @Override
- public String getRemoteAddr() {
- return remoteAddr;
- }
-
- public void setRemoteAddr(String remoteAddr) {
- this.remoteAddr = remoteAddr;
- }
-
- @Override
- public String getRemoteHost() {
- return remoteHost;
- }
-
- public void setRemoteHost(String remoteHost) {
- this.remoteHost = remoteHost;
- }
-
- @Override
- public int getRemotePort() {
- return remotePort;
- }
-
- public void setRemotePort(int remotePort) {
- this.remotePort = remotePort;
- }
-
-
- // --- unsupported operations ---
-
- @Override
- public RequestProgressTracker getRequestProgressTracker() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public String getResponseContentType() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public Enumeration<String> getResponseContentTypes() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public String getAuthType() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public String getPathInfo() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public String getPathTranslated() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public String getRequestURI() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public StringBuffer getRequestURL() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public String getRequestedSessionId() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public String getServletPath() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public Principal getUserPrincipal() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean isRequestedSessionIdFromCookie() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean isRequestedSessionIdFromURL() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean isRequestedSessionIdFromUrl() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean isRequestedSessionIdValid() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean isUserInRole(String role) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public String getLocalAddr() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public String getLocalName() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public int getLocalPort() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public Enumeration<Locale> getLocales() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public String getProtocol() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public BufferedReader getReader() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public String getRealPath(String path) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean authenticate(HttpServletResponse response) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void login(String pUsername, String password) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void logout() throws ServletException {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public Collection<Part> getParts() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public Part getPart(String name) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public ServletContext getServletContext() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public AsyncContext startAsync() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public AsyncContext startAsync(ServletRequest servletRequest, ServletResponse servletResponse) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean isAsyncStarted() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean isAsyncSupported() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public AsyncContext getAsyncContext() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public DispatcherType getDispatcherType() {
- throw new UnsupportedOperationException();
- }
-
}
Modified: sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/servlet/MockSlingHttpServletResponse.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/servlet/MockSlingHttpServletResponse.java?rev=1724523&r1=1724522&r2=1724523&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/servlet/MockSlingHttpServletResponse.java (original)
+++ sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/servlet/MockSlingHttpServletResponse.java Wed Jan 13 23:07:09 2016
@@ -18,262 +18,11 @@
*/
package org.apache.sling.testing.mock.sling.servlet;
-import java.io.PrintWriter;
-import java.util.Collection;
-import java.util.Locale;
-
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.commons.lang3.StringUtils;
-import org.apache.sling.api.SlingHttpServletResponse;
-import org.apache.sling.api.adapter.SlingAdaptable;
-
/**
* Mock {@link SlingHttpServletResponse} implementation.
*/
-public class MockSlingHttpServletResponse extends SlingAdaptable implements SlingHttpServletResponse {
-
- static final String CHARSET_SEPARATOR = ";charset=";
-
- private String contentType;
- private String characterEncoding;
- private int contentLength;
- private int status = HttpServletResponse.SC_OK;
- private int bufferSize = 1024 * 8;
- private boolean isCommitted;
- private final HeaderSupport headerSupport = new HeaderSupport();
- private final ResponseBodySupport bodySupport = new ResponseBodySupport();
- private final CookieSupport cookieSupport = new CookieSupport();
-
- @Override
- public String getContentType() {
- if (this.contentType == null) {
- return null;
- } else {
- return this.contentType
- + (StringUtils.isNotBlank(characterEncoding) ? CHARSET_SEPARATOR + characterEncoding : "");
- }
- }
-
- @Override
- public void setContentType(String type) {
- this.contentType = type;
- if (StringUtils.contains(this.contentType, CHARSET_SEPARATOR)) {
- this.characterEncoding = StringUtils.substringAfter(this.contentType, CHARSET_SEPARATOR);
- this.contentType = StringUtils.substringBefore(this.contentType, CHARSET_SEPARATOR);
- }
- }
-
- @Override
- public void setCharacterEncoding(String charset) {
- this.characterEncoding = charset;
- }
-
- @Override
- public String getCharacterEncoding() {
- return this.characterEncoding;
- }
-
- @Override
- public void setContentLength(int len) {
- this.contentLength = len;
- }
-
- public int getContentLength() {
- return this.contentLength;
- }
-
- @Override
- public void setStatus(int sc, String sm) {
- setStatus(sc);
- }
-
- @Override
- public void setStatus(int sc) {
- this.status = sc;
- }
-
- @Override
- public int getStatus() {
- return this.status;
- }
-
- @Override
- public void sendError(int sc, String msg) {
- setStatus(sc);
- }
-
- @Override
- public void sendError(int sc) {
- setStatus(sc);
- }
-
- @Override
- public void sendRedirect(String location) {
- setStatus(HttpServletResponse.SC_MOVED_TEMPORARILY);
- setHeader("Location", location);
- }
-
- @Override
- public void addHeader(String name, String value) {
- headerSupport.addHeader(name, value);
- }
-
- @Override
- public void addIntHeader(String name, int value) {
- headerSupport.addIntHeader(name, value);
- }
-
- @Override
- public void addDateHeader(String name, long date) {
- headerSupport.addDateHeader(name, date);
- }
-
- @Override
- public void setHeader(String name, String value) {
- headerSupport.setHeader(name, value);
- }
-
- @Override
- public void setIntHeader(String name, int value) {
- headerSupport.setIntHeader(name, value);
- }
-
- @Override
- public void setDateHeader(String name, long date) {
- headerSupport.setDateHeader(name, date);
- }
-
- @Override
- public boolean containsHeader(String name) {
- return headerSupport.containsHeader(name);
- }
-
- @Override
- public String getHeader(String name) {
- return headerSupport.getHeader(name);
- }
-
- @Override
- public Collection<String> getHeaders(String name) {
- return headerSupport.getHeaders(name);
- }
-
- @Override
- public Collection<String> getHeaderNames() {
- return headerSupport.getHeaderNames();
- }
-
- @Override
- public PrintWriter getWriter() {
- return bodySupport.getWriter(getCharacterEncoding());
- }
-
- @Override
- public ServletOutputStream getOutputStream() {
- return bodySupport.getOutputStream();
- }
-
- @Override
- public void reset() {
- if (isCommitted()) {
- throw new IllegalStateException("Response already committed.");
- }
- bodySupport.reset();
- headerSupport.reset();
- cookieSupport.reset();
- status = HttpServletResponse.SC_OK;
- contentLength = 0;
- }
-
- @Override
- public void resetBuffer() {
- if (isCommitted()) {
- throw new IllegalStateException("Response already committed.");
- }
- bodySupport.reset();
- }
-
- @Override
- public int getBufferSize() {
- return this.bufferSize;
- }
-
- @Override
- public void setBufferSize(int size) {
- this.bufferSize = size;
- }
-
- @Override
- public void flushBuffer() {
- isCommitted = true;
- }
-
- @Override
- public boolean isCommitted() {
- return isCommitted;
- }
-
- public byte[] getOutput() {
- return bodySupport.getOutput();
- }
-
- public String getOutputAsString() {
- return bodySupport.getOutputAsString(getCharacterEncoding());
- }
-
- @Override
- public void addCookie(Cookie cookie) {
- cookieSupport.addCookie(cookie);
- }
-
- /**
- * Get cookie
- * @param name Cookie name
- * @return Cookie or null
- */
- public Cookie getCookie(String name) {
- return cookieSupport.getCookie(name);
- }
-
- /**
- * Get cookies
- * @return Cookies array or null if no cookie defined
- */
- public Cookie[] getCookies() {
- return cookieSupport.getCookies();
- }
-
- // --- unsupported operations ---
- @Override
- public Locale getLocale() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void setLocale(Locale loc) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public String encodeRedirectUrl(String url) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public String encodeRedirectURL(String url) {
- throw new UnsupportedOperationException();
- }
+public class MockSlingHttpServletResponse extends org.apache.sling.servlethelpers.MockSlingHttpServletResponse {
- @Override
- public String encodeUrl(String url) {
- throw new UnsupportedOperationException();
- }
+ // inherit from superclass
- @Override
- public String encodeURL(String url) {
- throw new UnsupportedOperationException();
- }
}
Modified: sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/servlet/package-info.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/servlet/package-info.java?rev=1724523&r1=1724522&r2=1724523&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/servlet/package-info.java (original)
+++ sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/servlet/package-info.java Wed Jan 13 23:07:09 2016
@@ -19,5 +19,5 @@
/**
* Mock implementation of selected Servlet-related Sling APIs.
*/
-@aQute.bnd.annotation.Version("1.4")
+@aQute.bnd.annotation.Version("2.0")
package org.apache.sling.testing.mock.sling.servlet;
Modified: sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/MockSlingScriptHelperTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/MockSlingScriptHelperTest.java?rev=1724523&r1=1724522&r2=1724523&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/MockSlingScriptHelperTest.java (original)
+++ sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/MockSlingScriptHelperTest.java Wed Jan 13 23:07:09 2016
@@ -46,7 +46,7 @@ public class MockSlingScriptHelperTest {
public void setUp() throws Exception {
this.bundleContext = MockOsgi.newBundleContext();
this.resourceResolver = MockSling.newResourceResolver(bundleContext);
- this.request = new MockSlingHttpServletRequest(this.resourceResolver);
+ this.request = new MockSlingHttpServletRequest(this.resourceResolver, bundleContext);
this.response = new MockSlingHttpServletResponse();
this.scriptHelper = MockSling.newSlingScriptHelper(this.request, this.response, this.bundleContext);
}
Modified: sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/servlet/MockHttpSessionTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/servlet/MockHttpSessionTest.java?rev=1724523&r1=1724522&r2=1724523&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/servlet/MockHttpSessionTest.java (original)
+++ sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/servlet/MockHttpSessionTest.java Wed Jan 13 23:07:09 2016
@@ -18,8 +18,6 @@
*/
package org.apache.sling.testing.mock.sling.servlet;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
@@ -38,65 +36,7 @@ public class MockHttpSessionTest {
@Test
public void testServletContext() {
assertNotNull(httpSession.getServletContext());
- }
-
- @Test
- public void testId() {
- assertNotNull(httpSession.getId());
- }
-
- @Test
- public void testCreationTime() {
- assertNotNull(httpSession.getCreationTime());
- }
-
- @Test
- public void testAttributes() {
- httpSession.setAttribute("attr1", "value1");
- assertTrue(httpSession.getAttributeNames().hasMoreElements());
- assertEquals("value1", httpSession.getAttribute("attr1"));
- httpSession.removeAttribute("attr1");
- assertFalse(httpSession.getAttributeNames().hasMoreElements());
- }
-
- @Test
- public void testValues() {
- httpSession.putValue("attr1", "value1");
- assertEquals(1, httpSession.getValueNames().length);
- assertEquals("value1", httpSession.getValue("attr1"));
- httpSession.removeValue("attr1");
- assertEquals(0, httpSession.getValueNames().length);
- }
-
- @Test
- public void testInvalidate() {
- httpSession.invalidate();
- assertTrue(httpSession.isInvalidated());
- }
-
- @Test(expected = IllegalStateException.class)
- public void testInvalidateStateCheck() {
- httpSession.invalidate();
- httpSession.getAttribute("attr1");
- }
-
- @Test
- public void testIsNew() {
- assertTrue(httpSession.isNew());
- httpSession.setNew(false);
- assertFalse(httpSession.isNew());
- }
-
- @Test
- public void testGetLastAccessedTime() {
- assertNotNull(httpSession.getLastAccessedTime());
- }
-
- @Test
- public void testGetMaxInactiveInterval() {
- assertTrue(httpSession.getMaxInactiveInterval() > 0);
- httpSession.setMaxInactiveInterval(123);
- assertEquals(123, httpSession.getMaxInactiveInterval());
+ assertTrue(httpSession.getServletContext() instanceof MockServletContext);
}
}
Modified: sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/servlet/MockSlingHttpServletRequestTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/servlet/MockSlingHttpServletRequestTest.java?rev=1724523&r1=1724522&r2=1724523&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/servlet/MockSlingHttpServletRequestTest.java (original)
+++ sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/servlet/MockSlingHttpServletRequestTest.java Wed Jan 13 23:07:09 2016
@@ -18,38 +18,24 @@
*/
package org.apache.sling.testing.mock.sling.servlet;
-import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
-import static org.mockito.Matchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
-import java.io.UnsupportedEncodingException;
-import java.net.URLEncoder;
-import java.util.Calendar;
-import java.util.Enumeration;
-import java.util.LinkedHashMap;
import java.util.ListResourceBundle;
import java.util.Locale;
-import java.util.Map;
import java.util.ResourceBundle;
-import javax.servlet.RequestDispatcher;
-import javax.servlet.http.Cookie;
import javax.servlet.http.HttpSession;
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang3.CharEncoding;
-import org.apache.sling.api.request.RequestDispatcherOptions;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ResourceResolver;
-import org.apache.sling.api.servlets.HttpConstants;
import org.apache.sling.i18n.ResourceBundleProvider;
+import org.apache.sling.servlethelpers.MockHttpSession;
import org.apache.sling.testing.mock.osgi.MockOsgi;
import org.junit.After;
import org.junit.Before;
@@ -92,146 +78,18 @@ public class MockSlingHttpServletRequest
@Test
public void testSession() {
- HttpSession session = request.getSession(false);
- assertNull(session);
- session = request.getSession();
+ HttpSession session = request.getSession();
assertNotNull(session);
+ assertTrue(session instanceof MockHttpSession);
}
@Test
public void testRequestPathInfo() {
assertNotNull(request.getRequestPathInfo());
+ assertTrue(request.getRequestPathInfo() instanceof MockRequestPathInfo);
}
@Test
- public void testAttributes() {
- request.setAttribute("attr1", "value1");
- assertTrue(request.getAttributeNames().hasMoreElements());
- assertEquals("value1", request.getAttribute("attr1"));
- request.removeAttribute("attr1");
- assertFalse(request.getAttributeNames().hasMoreElements());
- }
-
- @Test
- public void testResource() {
- assertNull(request.getResource());
- request.setResource(resource);
- assertSame(resource, request.getResource());
- }
-
- @Test
- public void testContextPath() {
- assertNull(request.getContextPath());
- request.setContextPath("/ctx");
- assertEquals("/ctx", request.getContextPath());
- }
-
- @Test
- public void testLocale() {
- assertEquals(Locale.US, request.getLocale());
- }
-
- @Test
- public void testQueryString() throws UnsupportedEncodingException {
- assertNull(request.getQueryString());
- assertEquals(0, request.getParameterMap().size());
- assertFalse(request.getParameterNames().hasMoreElements());
-
- request.setQueryString("param1=123¶m2=" + URLEncoder.encode("äöüÃâ¬!:!", CharEncoding.UTF_8)
- + "¶m3=a¶m3=b");
-
- assertNotNull(request.getQueryString());
- assertEquals(3, request.getParameterMap().size());
- assertTrue(request.getParameterNames().hasMoreElements());
- assertEquals("123", request.getParameter("param1"));
- assertEquals("äöüÃâ¬!:!", request.getParameter("param2"));
- assertArrayEquals(new String[] { "a", "b" }, request.getParameterValues("param3"));
-
- Map<String, Object> paramMap = new LinkedHashMap<String, Object>();
- paramMap.put("p1", "a");
- paramMap.put("p2", new String[] { "b", "c" });
- paramMap.put("p3", null);
- paramMap.put("p4", new String[] { null });
- paramMap.put("p5", 22);
- request.setParameterMap(paramMap);
-
- assertEquals("p1=a&p2=b&p2=c&p4=&p5=22", request.getQueryString());
- }
-
- @Test
- public void testSchemeSecure() {
- assertEquals("http", request.getScheme());
- assertFalse(request.isSecure());
-
- request.setScheme("https");
- assertEquals("https", request.getScheme());
- assertTrue(request.isSecure());
- }
-
- @Test
- public void testServerNamePort() {
- assertEquals("localhost", request.getServerName());
- assertEquals(80, request.getServerPort());
-
- request.setServerName("myhost");
- request.setServerPort(12345);
- assertEquals("myhost", request.getServerName());
- assertEquals(12345, request.getServerPort());
- }
-
- @Test
- public void testMethod() {
- assertEquals(HttpConstants.METHOD_GET, request.getMethod());
-
- request.setMethod(HttpConstants.METHOD_POST);
- assertEquals(HttpConstants.METHOD_POST, request.getMethod());
- }
-
- @Test
- public void testHeaders() {
- assertFalse(request.getHeaderNames().hasMoreElements());
-
- Calendar calendar = Calendar.getInstance();
- calendar.set(Calendar.MILLISECOND, 0);
- long dateValue = calendar.getTimeInMillis();
-
- request.addHeader("header1", "value1");
- request.addIntHeader("header2", 5);
- request.addDateHeader("header3", dateValue);
-
- assertEquals("value1", request.getHeader("header1"));
- assertEquals(5, request.getIntHeader("header2"));
- assertEquals(dateValue, request.getDateHeader("header3"));
-
- request.setHeader("header1", "value2");
- request.addIntHeader("header2", 10);
-
- Enumeration<String> header1Values = request.getHeaders("header1");
- assertEquals("value2", header1Values.nextElement());
- assertFalse(header1Values.hasMoreElements());
-
- Enumeration<String> header2Values = request.getHeaders("header2");
- assertEquals("5", header2Values.nextElement());
- assertEquals("10", header2Values.nextElement());
- assertFalse(header2Values.hasMoreElements());
- }
-
- @Test
- public void testCookies() {
- assertNull(request.getCookies());
-
- request.addCookie(new Cookie("cookie1", "value1"));
- request.addCookie(new Cookie("cookie2", "value2"));
-
- assertEquals("value1", request.getCookie("cookie1").getValue());
-
- Cookie[] cookies = request.getCookies();
- assertEquals(2, cookies.length);
- assertEquals("value1", cookies[0].getValue());
- assertEquals("value2", cookies[1].getValue());
- }
-
- @Test
public void testDefaultResourceBundle() {
ResourceBundle bundle = request.getResourceBundle(Locale.US);
assertNotNull(bundle);
@@ -260,102 +118,4 @@ public class MockSlingHttpServletRequest
assertFalse(bundle2.getKeys().hasMoreElements());
}
- @Test
- public void testRequestParameter() throws Exception {
- request.setQueryString("param1=123¶m2=" + URLEncoder.encode("äöüÃâ¬!:!", CharEncoding.UTF_8)
- + "¶m3=a¶m3=b");
-
- assertEquals(3, request.getRequestParameterMap().size());
- assertEquals(4, request.getRequestParameterList().size());
- assertEquals("123", request.getRequestParameter("param1").getString());
- assertEquals("äöüÃâ¬!:!", request.getRequestParameter("param2").getString());
- assertEquals("a",request.getRequestParameters("param3")[0].getString());
- assertEquals("b",request.getRequestParameters("param3")[1].getString());
-
- assertNull(request.getRequestParameter("unknown"));
- assertNull(request.getRequestParameters("unknown"));
- }
-
- @Test
- public void testContentTypeCharset() throws Exception {
- assertNull(request.getContentType());
- assertNull(request.getCharacterEncoding());
-
- request.setContentType("image/gif");
- assertEquals("image/gif", request.getContentType());
- assertNull(request.getCharacterEncoding());
-
- request.setContentType("text/plain;charset=UTF-8");
- assertEquals("text/plain;charset=UTF-8", request.getContentType());
- assertEquals(CharEncoding.UTF_8, request.getCharacterEncoding());
-
- request.setCharacterEncoding(CharEncoding.ISO_8859_1);
- assertEquals("text/plain;charset=ISO-8859-1", request.getContentType());
- assertEquals(CharEncoding.ISO_8859_1, request.getCharacterEncoding());
- }
-
- @Test
- public void testContent() throws Exception {
- assertEquals(0, request.getContentLength());
- assertNull(request.getInputStream());
-
- byte[] data = new byte[] { 0x01,0x02,0x03 };
- request.setContent(data);
-
- assertEquals(data.length, request.getContentLength());
- assertArrayEquals(data, IOUtils.toByteArray(request.getInputStream()));
- }
-
- @Test
- public void testGetRequestDispatcher() {
- MockRequestDispatcherFactory requestDispatcherFactory = mock(MockRequestDispatcherFactory.class);
- RequestDispatcher requestDispatcher = mock(RequestDispatcher.class);
- when(requestDispatcherFactory.getRequestDispatcher(any(Resource.class), any(RequestDispatcherOptions.class))).thenReturn(requestDispatcher);
- when(requestDispatcherFactory.getRequestDispatcher(any(String.class), any(RequestDispatcherOptions.class))).thenReturn(requestDispatcher);
-
- request.setRequestDispatcherFactory(requestDispatcherFactory);
-
- assertSame(requestDispatcher, request.getRequestDispatcher("/path"));
- assertSame(requestDispatcher, request.getRequestDispatcher("/path", new RequestDispatcherOptions()));
- assertSame(requestDispatcher, request.getRequestDispatcher(resource));
- assertSame(requestDispatcher, request.getRequestDispatcher(resource, new RequestDispatcherOptions()));
- }
-
- @Test(expected = IllegalStateException.class)
- public void testGetRequestDispatcherWithoutFactory() {
- request.getRequestDispatcher("/path");
- }
-
- @Test
- public void testGetRemoteUser() {
- assertNull(null, request.getRemoteUser());
-
- request.setRemoteUser("admin");
- assertEquals("admin", request.getRemoteUser());
- }
-
- @Test
- public void testGetRemoteAddr() throws Exception {
- assertNull(null, request.getRemoteAddr());
-
- request.setRemoteAddr("1.2.3.4");
- assertEquals("1.2.3.4", request.getRemoteAddr());
- }
-
- @Test
- public void testGetRemoteHost() throws Exception {
- assertNull(null, request.getRemoteHost());
-
- request.setRemoteHost("host1");
- assertEquals("host1", request.getRemoteHost());
- }
-
- @Test
- public void testGetRemotePort() throws Exception {
- assertEquals(0, request.getRemotePort());
-
- request.setRemotePort(1234);
- assertEquals(1234, request.getRemotePort());
- }
-
}
Modified: sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/servlet/MockSlingHttpServletResponseTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/servlet/MockSlingHttpServletResponseTest.java?rev=1724523&r1=1724522&r2=1724523&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/servlet/MockSlingHttpServletResponseTest.java (original)
+++ sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/servlet/MockSlingHttpServletResponseTest.java Wed Jan 13 23:07:09 2016
@@ -18,20 +18,8 @@
*/
package org.apache.sling.testing.mock.sling.servlet;
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-import java.util.Collection;
-import java.util.Iterator;
-
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.commons.lang3.CharEncoding;
import org.junit.Before;
import org.junit.Test;
@@ -48,129 +36,6 @@ public class MockSlingHttpServletRespons
public void testContentTypeCharset() throws Exception {
assertNull(response.getContentType());
assertNull(response.getCharacterEncoding());
-
- response.setContentType("image/gif");
- assertEquals("image/gif", response.getContentType());
- assertNull(response.getCharacterEncoding());
-
- response.setContentType("text/plain;charset=UTF-8");
- assertEquals("text/plain;charset=UTF-8", response.getContentType());
- assertEquals(CharEncoding.UTF_8, response.getCharacterEncoding());
-
- response.setCharacterEncoding(CharEncoding.ISO_8859_1);
- assertEquals("text/plain;charset=ISO-8859-1", response.getContentType());
- assertEquals(CharEncoding.ISO_8859_1, response.getCharacterEncoding());
- }
-
- @Test
- public void testContentLength() throws Exception {
- assertEquals(0, response.getContentLength());
-
- response.setContentLength(55);
- assertEquals(55, response.getContentLength());
- }
-
- @Test
- public void testHeaders() throws Exception {
- assertEquals(0, response.getHeaderNames().size());
-
- response.addHeader("header1", "value1");
- response.addIntHeader("header2", 5);
- response.addDateHeader("header3", System.currentTimeMillis());
-
- assertEquals(3, response.getHeaderNames().size());
- assertTrue(response.containsHeader("header1"));
- assertEquals("value1", response.getHeader("header1"));
- assertEquals("5", response.getHeader("header2"));
- assertNotNull(response.getHeader("header3"));
-
- response.setHeader("header1", "value2");
- response.addIntHeader("header2", 10);
-
- assertEquals(3, response.getHeaderNames().size());
-
- Collection<String> header1Values = response.getHeaders("header1");
- assertEquals(1, header1Values.size());
- assertEquals("value2", header1Values.iterator().next());
-
- Collection<String> header2Values = response.getHeaders("header2");
- assertEquals(2, header2Values.size());
- Iterator<String> header2Iterator = header2Values.iterator();
- assertEquals("5", header2Iterator.next());
- assertEquals("10", header2Iterator.next());
-
- response.reset();
- assertEquals(0, response.getHeaderNames().size());
- }
-
- @Test
- public void testRedirect() throws Exception {
- response.sendRedirect("/location.html");
- assertEquals(HttpServletResponse.SC_MOVED_TEMPORARILY, response.getStatus());
- assertEquals("/location.html", response.getHeader("Location"));
- }
-
- @Test
- public void testSendError() throws Exception {
- response.sendError(HttpServletResponse.SC_NOT_FOUND);
- assertEquals(HttpServletResponse.SC_NOT_FOUND, response.getStatus());
- }
-
- @Test
- public void testSetStatus() throws Exception {
- assertEquals(HttpServletResponse.SC_OK, response.getStatus());
-
- response.setStatus(HttpServletResponse.SC_BAD_GATEWAY);
- assertEquals(HttpServletResponse.SC_BAD_GATEWAY, response.getStatus());
-
- response.reset();
- assertEquals(HttpServletResponse.SC_OK, response.getStatus());
- }
-
- @Test
- public void testWriteStringContent() throws Exception {
- final String TEST_CONTENT = "Der Jodelkaiser äöüÃ⬠á áá»";
- response.setCharacterEncoding(CharEncoding.UTF_8);
- response.getWriter().write(TEST_CONTENT);
- assertEquals(TEST_CONTENT, response.getOutputAsString());
-
- response.resetBuffer();
- assertEquals(0, response.getOutputAsString().length());
- }
-
- @Test
- public void testWriteBinaryContent() throws Exception {
- final byte[] TEST_DATA = new byte[] { 0x01, 0x02, 0x03, 0x04, 0x05 };
- response.getOutputStream().write(TEST_DATA);
- assertArrayEquals(TEST_DATA, response.getOutput());
-
- response.resetBuffer();
- assertEquals(0, response.getOutput().length);
- }
-
- @Test
- public void testIsCommitted() throws Exception {
- assertFalse(response.isCommitted());
- response.flushBuffer();
- assertTrue(response.isCommitted());
- }
-
- @Test
- public void testCookies() {
- assertNull(response.getCookies());
-
- response.addCookie(new Cookie("cookie1", "value1"));
- response.addCookie(new Cookie("cookie2", "value2"));
-
- assertEquals("value1", response.getCookie("cookie1").getValue());
-
- Cookie[] cookies = response.getCookies();
- assertEquals(2, cookies.length);
- assertEquals("value1", cookies[0].getValue());
- assertEquals("value2", cookies[1].getValue());
-
- response.reset();
- assertNull(response.getCookies());
}
}