Return-Path: Delivered-To: apmail-jackrabbit-commits-archive@www.apache.org Received: (qmail 65847 invoked from network); 9 Oct 2008 15:35:29 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 9 Oct 2008 15:35:29 -0000 Received: (qmail 33872 invoked by uid 500); 9 Oct 2008 15:35:28 -0000 Delivered-To: apmail-jackrabbit-commits-archive@jackrabbit.apache.org Received: (qmail 33779 invoked by uid 500); 9 Oct 2008 15:35:28 -0000 Mailing-List: contact commits-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@jackrabbit.apache.org Delivered-To: mailing list commits@jackrabbit.apache.org Received: (qmail 33770 invoked by uid 99); 9 Oct 2008 15:35:28 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 09 Oct 2008 08:35:28 -0700 X-ASF-Spam-Status: No, hits=-1999.9 required=10.0 tests=ALL_TRUSTED,DNS_FROM_SECURITYSAGE X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 09 Oct 2008 15:34:21 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id AB8C12388995; Thu, 9 Oct 2008 08:34:27 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r703185 - in /jackrabbit/trunk/jackrabbit-webdav/src: main/java/org/apache/jackrabbit/webdav/ main/java/org/apache/jackrabbit/webdav/bind/ main/java/org/apache/jackrabbit/webdav/client/methods/ main/java/org/apache/jackrabbit/webdav/observa... Date: Thu, 09 Oct 2008 15:34:27 -0000 To: commits@jackrabbit.apache.org From: reschke@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20081009153427.AB8C12388995@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: reschke Date: Thu Oct 9 08:34:26 2008 New Revision: 703185 URL: http://svn.apache.org/viewvc?rev=703185&view=rev Log: JCR-1795: advertise RFC 4918 compliance (compliance class 3), clean up code handling compliance classes, add support in OptionsMethod, add test case Modified: jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/DavCompliance.java jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/DavResource.java jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/bind/BindConstants.java jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/bind/BindableResource.java jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/client/methods/OptionsMethod.java jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/observation/ObservationResource.java jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/ordering/OrderingResource.java jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/search/SearchResource.java jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/security/AclResource.java jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/transaction/TransactionResource.java jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/version/DeltaVResource.java jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/version/VersionHistoryResource.java jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/version/VersionableResource.java jackrabbit/trunk/jackrabbit-webdav/src/test/java/org/apache/jackrabbit/webdav/server/BindTest.java jackrabbit/trunk/jackrabbit-webdav/src/test/java/org/apache/jackrabbit/webdav/server/RFC4918PropfindTest.java Modified: jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/DavCompliance.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/DavCompliance.java?rev=703185&r1=703184&r2=703185&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/DavCompliance.java (original) +++ jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/DavCompliance.java Thu Oct 9 08:34:26 2008 @@ -21,7 +21,7 @@ /** * DavCompliance defines constants for the various compliance - * classes defined RFC 2518 and it's extensions. + * classes defined RFC 2518, RFC 4918 and it's extensions. */ public final class DavCompliance { @@ -31,6 +31,9 @@ public static final String _1_ = "1"; public static final String _2_ = "2"; + // RFC 4918 + public static final String _3_ = "3"; + // RFC 3253 public static final String ACTIVITY = "activity"; public static final String BASELINE = "baseline"; @@ -48,8 +51,11 @@ public static final String ORDERED_COLLECTIONS = "ordered-collections"; // RFC 3744 - public static final String ACCESS_CONTROLL = "access-control"; + public static final String ACCESS_CONTROL = "access-control"; + // draft-ietf-webdav-bind + public static final String BIND = "bind"; + // no RFC public static final String OBSERVATION = "observation"; Modified: jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/DavResource.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/DavResource.java?rev=703185&r1=703184&r2=703185&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/DavResource.java (original) +++ jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/DavResource.java Thu Oct 9 08:34:26 2008 @@ -38,12 +38,6 @@ public interface DavResource { /** - * Constant for WebDAV 1 and 2 compliance class as is represented by this - * resource. - */ - public static final String COMPLIANCE_CLASS = "1, 2"; - - /** * String constant representing the WebDAV 1 and 2 method set. */ public static final String METHODS = "OPTIONS, GET, HEAD, POST, TRACE, PROPFIND, PROPPATCH, MKCOL, COPY, PUT, DELETE, MOVE, LOCK, UNLOCK"; Modified: jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/bind/BindConstants.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/bind/BindConstants.java?rev=703185&r1=703184&r2=703185&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/bind/BindConstants.java (original) +++ jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/bind/BindConstants.java Thu Oct 9 08:34:26 2008 @@ -44,8 +44,6 @@ public static final String METHODS = "BIND, REBIND, UNBIND"; - public static final String COMPLIANCE_CLASS = "bind"; - /* * Webdav properties defined by the BIND specification. */ Modified: jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/bind/BindableResource.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/bind/BindableResource.java?rev=703185&r1=703184&r2=703185&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/bind/BindableResource.java (original) +++ jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/bind/BindableResource.java Thu Oct 9 08:34:26 2008 @@ -16,12 +16,11 @@ */ package org.apache.jackrabbit.webdav.bind; +import java.util.Set; + import org.apache.jackrabbit.webdav.DavException; import org.apache.jackrabbit.webdav.DavResource; -import java.util.Collection; -import java.util.Set; - public interface BindableResource { /** Modified: jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/client/methods/OptionsMethod.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/client/methods/OptionsMethod.java?rev=703185&r1=703184&r2=703185&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/client/methods/OptionsMethod.java (original) +++ jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/client/methods/OptionsMethod.java Thu Oct 9 08:34:26 2008 @@ -30,6 +30,7 @@ import java.io.IOException; import java.util.HashSet; +import java.util.Set; /** * OptionsMethod... @@ -38,7 +39,8 @@ private static Logger log = LoggerFactory.getLogger(OptionsMethod.class); - private final HashSet allowedMethods = new HashSet(); + private final Set allowedMethods = new HashSet(); + private final Set complianceClasses = new HashSet(); public OptionsMethod(String uri) { super(uri); @@ -56,8 +58,6 @@ } /** - * - * @return * @throws IOException */ public OptionsResponse getResponseAsOptionsResponse() throws IOException { @@ -93,6 +93,28 @@ return (String[]) allowedMethods.toArray(new String[allowedMethods.size()]); } + /** + * Checks if the specified compliance class is supported by the resource + * identified by the original URI. + * + * @param complianceClass WebDAV compliance class + * @return true if the given compliance class is contained in the 'DAV' response header. + */ + public boolean hasComplianceClass(String complianceClass) { + checkUsed(); + return complianceClasses.contains(complianceClass); + } + + + /** + * Returns an array of String listing the WebDAV compliance classes. + * + * @return all compliance classes supported by the resource specified by the original URI. + */ + public String[] getComplianceClasses() { + checkUsed(); + return (String[]) complianceClasses.toArray(new String[complianceClasses.size()]); + } //---------------------------------------------------------< HttpMethod >--- /** @@ -105,8 +127,9 @@ //-----------------------------------------------------< HttpMethodBase >--- /** *

- * This implementation will parse the Allow header to obtain - * the set of methods supported by the resource identified by the Request-URI. + * This implementation will parse the Allow and DAV headers to obtain + * the set of HTTP methods and WebDAV compliance classes supported by the resource + * identified by the Request-URI. *

* * @param state the {@link HttpState state} information associated with this method @@ -122,6 +145,13 @@ allowedMethods.add(methods[i].trim().toUpperCase()); } } + Header dav = getResponseHeader("DAV"); + if (dav != null) { + String[] classes = dav.getValue().split(","); + for (int i = 0; i < classes.length; i++) { + complianceClasses.add(classes[i].trim()); + } + } } //------------------------------------------------------< DavMethodBase >--- Modified: jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/observation/ObservationResource.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/observation/ObservationResource.java?rev=703185&r1=703184&r2=703185&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/observation/ObservationResource.java (original) +++ jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/observation/ObservationResource.java Thu Oct 9 08:34:26 2008 @@ -25,7 +25,6 @@ */ public interface ObservationResource extends DavResource { - public String COMPLIANCE_CLASS = "observation"; public String METHODS = "SUBSCRIBE, UNSUBSCRIBE, POLL"; /** Modified: jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/ordering/OrderingResource.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/ordering/OrderingResource.java?rev=703185&r1=703184&r2=703185&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/ordering/OrderingResource.java (original) +++ jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/ordering/OrderingResource.java Thu Oct 9 08:34:26 2008 @@ -26,7 +26,6 @@ */ public interface OrderingResource extends DavResource { - public String COMPLIANCE_CLASS = "ordered-collections"; public String METHODS = "ORDERPATCH"; /** Modified: jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/search/SearchResource.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/search/SearchResource.java?rev=703185&r1=703184&r2=703185&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/search/SearchResource.java (original) +++ jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/search/SearchResource.java Thu Oct 9 08:34:26 2008 @@ -26,12 +26,6 @@ public interface SearchResource { /** - * No extra compliance class defined by the Webdav Search spec. - * Instead an extra DASL header is included. - */ - public String COMPLIANCE_CLASS = ""; - - /** * The 'SEARCH' method */ public String METHODS = "SEARCH"; Modified: jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/security/AclResource.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/security/AclResource.java?rev=703185&r1=703184&r2=703185&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/security/AclResource.java (original) +++ jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/security/AclResource.java Thu Oct 9 08:34:26 2008 @@ -28,9 +28,6 @@ */ public interface AclResource extends DavResource { - // RFC 3744 defines one additional compliance class for the DAV header. - public String COMPLIANCE_CLASS = "access-control"; - /** * The AclResource must support the ACL method and the REPORT method in order * to retrieve various security related reports. Modified: jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/transaction/TransactionResource.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/transaction/TransactionResource.java?rev=703185&r1=703184&r2=703185&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/transaction/TransactionResource.java (original) +++ jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/transaction/TransactionResource.java Thu Oct 9 08:34:26 2008 @@ -25,7 +25,6 @@ */ public interface TransactionResource extends DavResource { - public static final String COMPLIANCE_CLASS = ""; public static final String METHODS = ""; /** Modified: jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/version/DeltaVResource.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/version/DeltaVResource.java?rev=703185&r1=703184&r2=703185&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/version/DeltaVResource.java (original) +++ jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/version/DeltaVResource.java Thu Oct 9 08:34:26 2008 @@ -47,8 +47,6 @@ */ public interface DeltaVResource extends DavResource { - public String COMPLIANCE_CLASS = "version-control, checkout-in-place, version-history, update, label, merge, workspace"; - /** * The generic deltaV complient resource defines one additional method REPORT. * Modified: jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/version/VersionHistoryResource.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/version/VersionHistoryResource.java?rev=703185&r1=703184&r2=703185&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/version/VersionHistoryResource.java (original) +++ jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/version/VersionHistoryResource.java Thu Oct 9 08:34:26 2008 @@ -45,8 +45,6 @@ public interface VersionHistoryResource extends DeltaVResource { // supported METHODS: same as DeltaVResource > set to empty string - public static final String COMPLIANCE_CLASS = ""; - // supported METHODS: same as DeltaVResource > set to empty string public static final String METHODS = ""; /** Modified: jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/version/VersionableResource.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/version/VersionableResource.java?rev=703185&r1=703184&r2=703185&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/version/VersionableResource.java (original) +++ jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/version/VersionableResource.java Thu Oct 9 08:34:26 2008 @@ -42,11 +42,6 @@ public interface VersionableResource extends DeltaVResource { /** - * No extra compliance class defined, therefore set to empty string - */ - public static final String COMPLIANCE_CLASS = ""; - - /** * The versionable resource defines one additional method VERSION-CONTROL. * * @see DeltaVResource#METHODS Modified: jackrabbit/trunk/jackrabbit-webdav/src/test/java/org/apache/jackrabbit/webdav/server/BindTest.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-webdav/src/test/java/org/apache/jackrabbit/webdav/server/BindTest.java?rev=703185&r1=703184&r2=703185&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-webdav/src/test/java/org/apache/jackrabbit/webdav/server/BindTest.java (original) +++ jackrabbit/trunk/jackrabbit-webdav/src/test/java/org/apache/jackrabbit/webdav/server/BindTest.java Thu Oct 9 08:34:26 2008 @@ -22,10 +22,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; -import java.util.HashSet; import java.util.List; -import java.util.Set; -import java.util.StringTokenizer; import junit.framework.TestCase; @@ -47,7 +44,6 @@ import org.apache.jackrabbit.webdav.bind.RebindInfo; import org.apache.jackrabbit.webdav.bind.UnbindInfo; import org.apache.jackrabbit.webdav.client.methods.BindMethod; -import org.apache.jackrabbit.webdav.client.methods.DavMethod; import org.apache.jackrabbit.webdav.client.methods.DavMethodBase; import org.apache.jackrabbit.webdav.client.methods.DeleteMethod; import org.apache.jackrabbit.webdav.client.methods.MkColMethod; @@ -63,7 +59,7 @@ import org.w3c.dom.Node; /** - * Test cases for WebDAV BIND functionality (see draft-ietf-webdav-bind-20 + * Test cases for WebDAV BIND functionality (see draft-ietf-webdav-bind-21 *

* Required system properties: *

    @@ -104,9 +100,8 @@ OptionsMethod options = new OptionsMethod(this.uri.toASCIIString()); int status = this.client.executeMethod(options); assertEquals(200, status); - Set features = getDavFeatures(options); List allow = Arrays.asList(options.getAllowedMethods()); - assertTrue("DAV header should include 'bind' feature: " + features, features.contains("bind")); + assertTrue("DAV header should include 'bind' feature", options.hasComplianceClass("bind")); assertTrue("Allow header should include BIND method", allow.contains("BIND")); assertTrue("Allow header should include REBIND method", allow.contains("REBIND")); assertTrue("Allow header should include UNBIND method", allow.contains("UNBIND")); @@ -647,17 +642,4 @@ } return s; } - - private Set getDavFeatures(DavMethod method) { - Set result = new HashSet(); - Header[] features = method.getResponseHeaders("DAV"); - for (int i = 0; i < features.length; i++) { - String val = features[i].getValue(); - StringTokenizer tok = new StringTokenizer(val, "\t ,"); - while (tok.hasMoreTokens()) { - result.add(tok.nextToken()); - } - } - return result; - } } Modified: jackrabbit/trunk/jackrabbit-webdav/src/test/java/org/apache/jackrabbit/webdav/server/RFC4918PropfindTest.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-webdav/src/test/java/org/apache/jackrabbit/webdav/server/RFC4918PropfindTest.java?rev=703185&r1=703184&r2=703185&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-webdav/src/test/java/org/apache/jackrabbit/webdav/server/RFC4918PropfindTest.java (original) +++ jackrabbit/trunk/jackrabbit-webdav/src/test/java/org/apache/jackrabbit/webdav/server/RFC4918PropfindTest.java Thu Oct 9 08:34:26 2008 @@ -20,6 +20,8 @@ import java.net.URI; import java.net.URISyntaxException; +import junit.framework.TestCase; + import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpException; import org.apache.commons.httpclient.UsernamePasswordCredentials; @@ -30,17 +32,12 @@ import org.apache.jackrabbit.webdav.DavException; import org.apache.jackrabbit.webdav.MultiStatus; import org.apache.jackrabbit.webdav.MultiStatusResponse; -import org.apache.jackrabbit.webdav.bind.BindConstants; import org.apache.jackrabbit.webdav.client.methods.DeleteMethod; +import org.apache.jackrabbit.webdav.client.methods.OptionsMethod; import org.apache.jackrabbit.webdav.client.methods.PropFindMethod; -import org.apache.jackrabbit.webdav.property.DavProperty; -import org.apache.jackrabbit.webdav.property.DavPropertyName; import org.apache.jackrabbit.webdav.property.DavPropertyNameSet; import org.apache.jackrabbit.webdav.property.DavPropertySet; import org.apache.jackrabbit.webdav.version.DeltaVConstants; -import org.w3c.dom.Element; - -import junit.framework.TestCase; /** * Test cases for RFC 4918 PROPFIND functionality @@ -80,6 +77,12 @@ super.tearDown(); } + public void testOptions() throws HttpException, IOException, DavException, URISyntaxException { + OptionsMethod options = new OptionsMethod(this.root); + this.client.executeMethod(options); + assertTrue(options.hasComplianceClass("3")); + } + public void testPropfindInclude() throws HttpException, IOException, DavException, URISyntaxException { String testuri = this.root + "iftest";