You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wink.apache.org by el...@apache.org on 2009/07/02 13:14:49 UTC
svn commit: r790550 [3/3] - in /incubator/wink/trunk:
wink-component-test-support/src/main/java/org/apache/wink/server/
wink-component-test-support/src/main/java/org/apache/wink/server/internal/
wink-component-test-support/src/main/java/org/apache/wink...
Modified: incubator/wink/trunk/wink-webdav/src/test/java/org/apache/wink/webdav/server/AbstractWebDAVResourcesTest.java
URL: http://svn.apache.org/viewvc/incubator/wink/trunk/wink-webdav/src/test/java/org/apache/wink/webdav/server/AbstractWebDAVResourcesTest.java?rev=790550&r1=790549&r2=790550&view=diff
==============================================================================
--- incubator/wink/trunk/wink-webdav/src/test/java/org/apache/wink/webdav/server/AbstractWebDAVResourcesTest.java (original)
+++ incubator/wink/trunk/wink-webdav/src/test/java/org/apache/wink/webdav/server/AbstractWebDAVResourcesTest.java Thu Jul 2 11:14:47 2009
@@ -17,25 +17,24 @@
* under the License.
*
*******************************************************************************/
-
-package org.apache.wink.webdav.server;
-
-import java.io.IOException;
-import java.io.StringReader;
-import java.io.StringWriter;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import javax.ws.rs.core.MediaType;
-import javax.xml.namespace.QName;
-
+
+package org.apache.wink.webdav.server;
+
+import java.io.IOException;
+import java.io.StringReader;
+import java.io.StringWriter;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import javax.ws.rs.core.MediaType;
+import javax.xml.namespace.QName;
+
import org.apache.wink.common.http.HttpHeadersEx;
import org.apache.wink.common.http.HttpStatus;
-import org.apache.wink.server.internal.RequestProcessor;
+import org.apache.wink.server.internal.servlet.MockServletInvocationTest;
import org.apache.wink.test.mock.MockHttpServletRequestWrapper;
-import org.apache.wink.test.mock.MockServletInvocationTest;
import org.apache.wink.webdav.WebDAVConstants;
import org.apache.wink.webdav.WebDAVHeaders;
import org.apache.wink.webdav.WebDAVMethod;
@@ -51,240 +50,232 @@
import org.apache.wink.webdav.model.Response;
import org.apache.wink.webdav.model.WebDAVModelHelper;
import org.apache.wink.webdav.model.Write;
-import org.junit.Assert;
-import org.springframework.mock.web.MockHttpServletRequest;
-import org.springframework.mock.web.MockHttpServletResponse;
-
-
-public abstract class AbstractWebDAVResourcesTest extends MockServletInvocationTest {
-
- public static final HttpStatus[] COLLECTION_OKS = { HttpStatus.OK, HttpStatus.OK,
- HttpStatus.OK };
- public static final HttpStatus[] DOCUMENT_OKS = { HttpStatus.OK, HttpStatus.OK,
- HttpStatus.OK, HttpStatus.OK };
- public static QName[] PROPERTIES_DOCUMENT = new QName[] {
- WebDAVConstants.PROPERTY_CREATIONDATE, WebDAVConstants.PROPERTY_DISPLAYNAME,
- WebDAVConstants.PROPERTY_GETLASTMODIFIED, WebDAVConstants.PROPERTY_RESOURCETYPE };
-
- public static QName[] PROPERTIES_COLLECTION = new QName[] {
- WebDAVConstants.PROPERTY_RESOURCETYPE, WebDAVConstants.PROPERTY_DISPLAYNAME,
- WebDAVConstants.PROPERTY_GETLASTMODIFIED };
-
- protected static MockHttpServletRequest constructPropfindRequest(Propfind propfind,
- String requestURI, int depth) throws IOException {
-
- MockHttpServletRequest mockRequest = new MockHttpServletRequestWrapper() {
-
- public String getPathTranslated() {
- return null; // prevent Spring to resolve the file on the file system which fails
- }
- };
- // headers
- mockRequest.setMethod(WebDAVMethod.PROPFIND.name());
- mockRequest.setRequestURI(requestURI);
- mockRequest.setContentType(MediaType.APPLICATION_XML);
- if (depth >= 0) {
- mockRequest.addHeader(WebDAVHeaders.DEPTH, String.valueOf(depth));
- }
- // body
- StringWriter writer = new StringWriter();
- Propfind.marshal(propfind, writer);
- mockRequest.setContent(writer.toString().getBytes());
-
- return mockRequest;
- }
-
- protected static Multistatus getMultistatus(MockHttpServletResponse response)
- throws IOException {
-
- // headers
- Assert.assertEquals(HttpStatus.MULTI_STATUS.getCode(), response.getStatus());
- MediaType mediaType = MediaType.valueOf(response.getContentType());
- mediaType.getParameters().clear();
- Assert.assertEquals(MediaType.APPLICATION_XML_TYPE, mediaType);
- // body
- String responseContent = response.getContentAsString();
- StringReader reader = new StringReader(responseContent);
- Multistatus multistatus = Multistatus.unmarshal(reader);
-
- return multistatus;
- }
-
- protected Multistatus propfind(Propfind propfind, String requestURI, int depth)
- throws Exception {
-
- MockHttpServletRequest request = constructPropfindRequest(propfind, requestURI, depth);
- MockHttpServletResponse response = new MockHttpServletResponse();
- RequestProcessor requestProcessor = getRequestProcessor(RequestProcessor.class);
- requestProcessor.handleRequest(request, response);
- return getMultistatus(response);
- }
-
- private static void checkProperties(Response response, QName[] propertyNames,
- HttpStatus[] statuses) {
- int totalCovered = 0;
- for (Propstat propstat : response.getPropstat()) {
- int statusCode = propstat.getStatusCode();
-
- Set<QName> expectedPropnames = new HashSet<QName>();
- for (int i = 0; i < statuses.length; ++i) {
- if (statuses[i].getCode() == statusCode) {
- expectedPropnames.add(propertyNames[i]);
- }
- }
- totalCovered += expectedPropnames.size();
-
- Prop prop = propstat.getProp();
- Set<QName> propnames = WebDAVModelHelper.extractPropertyNames(prop,
- new HashSet<QName>());
- Assert.assertEquals(expectedPropnames.size(), propnames.size());
-
- for (QName name : expectedPropnames) {
- Assert.assertTrue(propnames.contains(name));
- }
- }
- Assert.assertEquals(propertyNames.length, totalCovered);
- }
-
- protected static void checkCollectionPropertyNames(Response response) {
- checkProperties(response, PROPERTIES_COLLECTION, COLLECTION_OKS);
- }
-
- protected static void checkCollectionProperties(Response response, String name) {
-
- // check it contains all collection properties with OK status
- checkCollectionPropertyNames(response);
-
- Prop prop = response.getPropstat().get(0).getProp();
-
- // check name property
- Assert.assertEquals(name, prop.getDisplayname().getValue());
-
- // check the resource type property
- Assert.assertTrue(prop.getResourcetype().getCollection() != null);
- }
-
- protected static void checkRootCollectionProperties(Response response, String name) {
-
- // check it contains the root collection properties with OK status
- HttpStatus[] rootStatuses = { HttpStatus.OK, HttpStatus.OK, HttpStatus.NOT_FOUND };
- checkProperties(response, PROPERTIES_COLLECTION, rootStatuses);
-
- Prop prop = response.getPropstat().get(0).getProp();
- // check name property
- String displayName = "";
- if (prop.getDisplayname().getValue() != null) {
- displayName = prop.getDisplayname().getValue();
- }
- Assert.assertEquals(name, displayName);
-
- // check the resource type property
- Assert.assertTrue(prop.getResourcetype().getCollection() != null);
- }
-
- protected static void checkDocumentPropertyNames(Response response) {
- checkProperties(response, PROPERTIES_DOCUMENT, DOCUMENT_OKS);
- }
-
- protected static void checkDocumentProperties(Response response, String name) {
-
- // check it contains all document properties with OK status
- checkDocumentPropertyNames(response);
-
- Prop prop = response.getPropstat().get(0).getProp();
- // check name property
- Assert.assertEquals(name, prop.getDisplayname().getValue());
-
- // check the resource type property
- Assert.assertFalse(prop.getResourcetype().getCollection() != null);
- }
-
- protected void checkOptions(String path, boolean alsoLock) throws Exception {
-
- // request
- MockHttpServletRequest request = new MockHttpServletRequest() {
-
- public String getPathTranslated() {
- return null; // prevent Spring to resolve the file on the file system which fails
- }
- };
- request.setMethod("OPTIONS");
- request.setRequestURI(path);
- MockHttpServletResponse response = new MockHttpServletResponse();
- RequestProcessor requestProcessor = getRequestProcessor(RequestProcessor.class);
- requestProcessor.handleRequest(request, response);
-
- // response
- Assert.assertEquals(HttpStatus.OK.getCode(), response.getStatus());
- Assert.assertEquals("1", response.getHeader(WebDAVHeaders.DAV));
- Assert.assertEquals("DAV", response.getHeader(WebDAVHeaders.MS_AUTHOR_VIA));
- // check allow - must contain OPTIONS, PROPFIND, LOCK
- String allowStr = (String) response.getHeader(HttpHeadersEx.ALLOW);
- List<?> allows = Arrays.asList(allowStr.split("\\s*,\\s*"));
- Assert.assertTrue(allows.contains("OPTIONS"));
- Assert.assertTrue(allows.contains(WebDAVMethod.PROPFIND.name()));
- if (alsoLock) {
- Assert.assertTrue(allows.contains(WebDAVMethod.LOCK.name()));
- } else {
- Assert.assertFalse(allows.contains(WebDAVMethod.LOCK.name()));
- }
- }
-
- protected void checkLockAndUnlock(String path) throws Exception {
-
- // lock request
- MockHttpServletRequest request = new MockHttpServletRequest() {
-
- public String getPathTranslated() {
- return null; // prevent Spring to resolve the file on the file system which fails
- }
- };
- request.setMethod(WebDAVMethod.LOCK.name());
- request.setRequestURI(path);
- request.setContentType(MediaType.APPLICATION_XML);
- Lockinfo lockinfo = new Lockinfo();
- Lockscope lockscope = new Lockscope();
- lockscope.setExclusive(new Exclusive());
- lockinfo.setLockscope(lockscope);
- Locktype locktype = new Locktype();
- locktype.setWrite(new Write());
- lockinfo.setLocktype(locktype);
- StringWriter writer = new StringWriter();
- WebDAVModelHelper.marshal(WebDAVModelHelper.createMarshaller(), lockinfo, writer,
- "lockinfo");
- request.setContent(writer.toString().getBytes());
- MockHttpServletResponse response = new MockHttpServletResponse();
- RequestProcessor requestProcessor = getRequestProcessor(RequestProcessor.class);
- requestProcessor.handleRequest(request, response);
-
- // lock response
- Assert.assertEquals(HttpStatus.OK.getCode(), response.getStatus());
- MediaType mediaType = MediaType.valueOf(response.getContentType());
- mediaType.getParameters().clear();
- Assert.assertEquals(MediaType.APPLICATION_XML_TYPE, mediaType);
- StringReader reader = new StringReader(response.getContentAsString());
- Prop prop = WebDAVModelHelper.unmarshal(WebDAVModelHelper.createUnmarshaller(), reader,
- Prop.class, "prop");
- List<Activelock> activelocks = prop.getLockdiscovery().getActivelock();
- Assert.assertNotNull(activelocks);
- Assert.assertEquals(1, activelocks.size());
- Assert.assertNotNull(activelocks.get(0).getLocktype().getWrite());
- Assert.assertNotNull(activelocks.get(0).getLockscope().getExclusive());
- Assert.assertEquals("0", activelocks.get(0).getDepth());
-
- // unlock request
- request = new MockHttpServletRequest() {
-
- public String getPathTranslated() {
- return null; // prevent Spring to resolve the file on the file system which fails
- }
- };
- request.setMethod(WebDAVMethod.UNLOCK.name());
- request.setRequestURI(path);
- response = new MockHttpServletResponse();
- requestProcessor.handleRequest(request, response);
-
- // lock response
- Assert.assertEquals(HttpStatus.NO_CONTENT.getCode(), response.getStatus());
- }
-}
+import org.junit.Assert;
+import org.springframework.mock.web.MockHttpServletRequest;
+import org.springframework.mock.web.MockHttpServletResponse;
+
+public abstract class AbstractWebDAVResourcesTest extends MockServletInvocationTest {
+
+ public static final HttpStatus[] COLLECTION_OKS = { HttpStatus.OK, HttpStatus.OK,
+ HttpStatus.OK };
+ public static final HttpStatus[] DOCUMENT_OKS = { HttpStatus.OK, HttpStatus.OK,
+ HttpStatus.OK, HttpStatus.OK };
+ public static QName[] PROPERTIES_DOCUMENT = new QName[] {
+ WebDAVConstants.PROPERTY_CREATIONDATE, WebDAVConstants.PROPERTY_DISPLAYNAME,
+ WebDAVConstants.PROPERTY_GETLASTMODIFIED, WebDAVConstants.PROPERTY_RESOURCETYPE };
+
+ public static QName[] PROPERTIES_COLLECTION = new QName[] {
+ WebDAVConstants.PROPERTY_RESOURCETYPE, WebDAVConstants.PROPERTY_DISPLAYNAME,
+ WebDAVConstants.PROPERTY_GETLASTMODIFIED };
+
+ protected static MockHttpServletRequest constructPropfindRequest(Propfind propfind,
+ String requestURI, int depth) throws IOException {
+
+ MockHttpServletRequest mockRequest = new MockHttpServletRequestWrapper() {
+
+ public String getPathTranslated() {
+ return null; // prevent Spring to resolve the file on the file system which fails
+ }
+ };
+ // headers
+ mockRequest.setMethod(WebDAVMethod.PROPFIND.name());
+ mockRequest.setRequestURI(requestURI);
+ mockRequest.setContentType(MediaType.APPLICATION_XML);
+ if (depth >= 0) {
+ mockRequest.addHeader(WebDAVHeaders.DEPTH, String.valueOf(depth));
+ }
+ // body
+ StringWriter writer = new StringWriter();
+ Propfind.marshal(propfind, writer);
+ mockRequest.setContent(writer.toString().getBytes());
+
+ return mockRequest;
+ }
+
+ protected static Multistatus getMultistatus(MockHttpServletResponse response)
+ throws IOException {
+
+ // headers
+ Assert.assertEquals(HttpStatus.MULTI_STATUS.getCode(), response.getStatus());
+ MediaType mediaType = MediaType.valueOf(response.getContentType());
+ mediaType.getParameters().clear();
+ Assert.assertEquals(MediaType.APPLICATION_XML_TYPE, mediaType);
+ // body
+ String responseContent = response.getContentAsString();
+ StringReader reader = new StringReader(responseContent);
+ Multistatus multistatus = Multistatus.unmarshal(reader);
+
+ return multistatus;
+ }
+
+ protected Multistatus propfind(Propfind propfind, String requestURI, int depth)
+ throws Exception {
+
+ MockHttpServletRequest request = constructPropfindRequest(propfind, requestURI, depth);
+ MockHttpServletResponse response = invoke(request);
+ return getMultistatus(response);
+ }
+
+ private static void checkProperties(Response response, QName[] propertyNames,
+ HttpStatus[] statuses) {
+ int totalCovered = 0;
+ for (Propstat propstat : response.getPropstat()) {
+ int statusCode = propstat.getStatusCode();
+
+ Set<QName> expectedPropnames = new HashSet<QName>();
+ for (int i = 0; i < statuses.length; ++i) {
+ if (statuses[i].getCode() == statusCode) {
+ expectedPropnames.add(propertyNames[i]);
+ }
+ }
+ totalCovered += expectedPropnames.size();
+
+ Prop prop = propstat.getProp();
+ Set<QName> propnames = WebDAVModelHelper.extractPropertyNames(prop,
+ new HashSet<QName>());
+ Assert.assertEquals(expectedPropnames.size(), propnames.size());
+
+ for (QName name : expectedPropnames) {
+ Assert.assertTrue(propnames.contains(name));
+ }
+ }
+ Assert.assertEquals(propertyNames.length, totalCovered);
+ }
+
+ protected static void checkCollectionPropertyNames(Response response) {
+ checkProperties(response, PROPERTIES_COLLECTION, COLLECTION_OKS);
+ }
+
+ protected static void checkCollectionProperties(Response response, String name) {
+
+ // check it contains all collection properties with OK status
+ checkCollectionPropertyNames(response);
+
+ Prop prop = response.getPropstat().get(0).getProp();
+
+ // check name property
+ Assert.assertEquals(name, prop.getDisplayname().getValue());
+
+ // check the resource type property
+ Assert.assertTrue(prop.getResourcetype().getCollection() != null);
+ }
+
+ protected static void checkRootCollectionProperties(Response response, String name) {
+
+ // check it contains the root collection properties with OK status
+ HttpStatus[] rootStatuses = { HttpStatus.OK, HttpStatus.OK, HttpStatus.NOT_FOUND };
+ checkProperties(response, PROPERTIES_COLLECTION, rootStatuses);
+
+ Prop prop = response.getPropstat().get(0).getProp();
+ // check name property
+ String displayName = "";
+ if (prop.getDisplayname().getValue() != null) {
+ displayName = prop.getDisplayname().getValue();
+ }
+ Assert.assertEquals(name, displayName);
+
+ // check the resource type property
+ Assert.assertTrue(prop.getResourcetype().getCollection() != null);
+ }
+
+ protected static void checkDocumentPropertyNames(Response response) {
+ checkProperties(response, PROPERTIES_DOCUMENT, DOCUMENT_OKS);
+ }
+
+ protected static void checkDocumentProperties(Response response, String name) {
+
+ // check it contains all document properties with OK status
+ checkDocumentPropertyNames(response);
+
+ Prop prop = response.getPropstat().get(0).getProp();
+ // check name property
+ Assert.assertEquals(name, prop.getDisplayname().getValue());
+
+ // check the resource type property
+ Assert.assertFalse(prop.getResourcetype().getCollection() != null);
+ }
+
+ protected void checkOptions(String path, boolean alsoLock) throws Exception {
+
+ // request
+ MockHttpServletRequest request = new MockHttpServletRequest() {
+
+ public String getPathTranslated() {
+ return null; // prevent Spring to resolve the file on the file system which fails
+ }
+ };
+ request.setMethod("OPTIONS");
+ request.setRequestURI(path);
+ MockHttpServletResponse response = invoke(request);
+
+ // response
+ Assert.assertEquals(HttpStatus.OK.getCode(), response.getStatus());
+ Assert.assertEquals("1", response.getHeader(WebDAVHeaders.DAV));
+ Assert.assertEquals("DAV", response.getHeader(WebDAVHeaders.MS_AUTHOR_VIA));
+ // check allow - must contain OPTIONS, PROPFIND, LOCK
+ String allowStr = (String) response.getHeader(HttpHeadersEx.ALLOW);
+ List<?> allows = Arrays.asList(allowStr.split("\\s*,\\s*"));
+ Assert.assertTrue(allows.contains("OPTIONS"));
+ Assert.assertTrue(allows.contains(WebDAVMethod.PROPFIND.name()));
+ if (alsoLock) {
+ Assert.assertTrue(allows.contains(WebDAVMethod.LOCK.name()));
+ } else {
+ Assert.assertFalse(allows.contains(WebDAVMethod.LOCK.name()));
+ }
+ }
+
+ protected void checkLockAndUnlock(String path) throws Exception {
+
+ // lock request
+ MockHttpServletRequest request = new MockHttpServletRequest() {
+
+ public String getPathTranslated() {
+ return null; // prevent Spring to resolve the file on the file system which fails
+ }
+ };
+ request.setMethod(WebDAVMethod.LOCK.name());
+ request.setRequestURI(path);
+ request.setContentType(MediaType.APPLICATION_XML);
+ Lockinfo lockinfo = new Lockinfo();
+ Lockscope lockscope = new Lockscope();
+ lockscope.setExclusive(new Exclusive());
+ lockinfo.setLockscope(lockscope);
+ Locktype locktype = new Locktype();
+ locktype.setWrite(new Write());
+ lockinfo.setLocktype(locktype);
+ StringWriter writer = new StringWriter();
+ WebDAVModelHelper.marshal(WebDAVModelHelper.createMarshaller(), lockinfo, writer,
+ "lockinfo");
+ request.setContent(writer.toString().getBytes());
+ MockHttpServletResponse response = invoke(request);
+
+ // lock response
+ Assert.assertEquals(HttpStatus.OK.getCode(), response.getStatus());
+ MediaType mediaType = MediaType.valueOf(response.getContentType());
+ mediaType.getParameters().clear();
+ Assert.assertEquals(MediaType.APPLICATION_XML_TYPE, mediaType);
+ StringReader reader = new StringReader(response.getContentAsString());
+ Prop prop = WebDAVModelHelper.unmarshal(WebDAVModelHelper.createUnmarshaller(), reader,
+ Prop.class, "prop");
+ List<Activelock> activelocks = prop.getLockdiscovery().getActivelock();
+ Assert.assertNotNull(activelocks);
+ Assert.assertEquals(1, activelocks.size());
+ Assert.assertNotNull(activelocks.get(0).getLocktype().getWrite());
+ Assert.assertNotNull(activelocks.get(0).getLockscope().getExclusive());
+ Assert.assertEquals("0", activelocks.get(0).getDepth());
+
+ // unlock request
+ request = new MockHttpServletRequest() {
+
+ public String getPathTranslated() {
+ return null; // prevent Spring to resolve the file on the file system which fails
+ }
+ };
+ request.setMethod(WebDAVMethod.UNLOCK.name());
+ request.setRequestURI(path);
+ response = invoke(request);
+
+ // lock response
+ Assert.assertEquals(HttpStatus.NO_CONTENT.getCode(), response.getStatus());
+ }
+}
Modified: incubator/wink/trunk/wink-webdav/src/test/java/org/apache/wink/webdav/server/WebDAVDocumentResourceTest.java
URL: http://svn.apache.org/viewvc/incubator/wink/trunk/wink-webdav/src/test/java/org/apache/wink/webdav/server/WebDAVDocumentResourceTest.java?rev=790550&r1=790549&r2=790550&view=diff
==============================================================================
--- incubator/wink/trunk/wink-webdav/src/test/java/org/apache/wink/webdav/server/WebDAVDocumentResourceTest.java (original)
+++ incubator/wink/trunk/wink-webdav/src/test/java/org/apache/wink/webdav/server/WebDAVDocumentResourceTest.java Thu Jul 2 11:14:47 2009
@@ -72,9 +72,7 @@
Propfind propfind = new Propfind();
propfind.setPropname(new Propname());
MockHttpServletRequest request = constructPropfindRequest(propfind, path, -1);
- MockHttpServletResponse response = new MockHttpServletResponse();
- RequestProcessor requestProcessor = getRequestProcessor(RequestProcessor.class);
- requestProcessor.handleRequest(request, response);
+ MockHttpServletResponse response = invoke(request);
// response
Assert.assertEquals(HttpStatus.NOT_FOUND.getCode(), response.getStatus());