- From: Jim Whitehead <ejw@ics.uci.edu>
- Date: Sun, 14 Nov 1999 12:52:59 -0800
- To: WebDAV WG <w3c-dist-auth@w3.org>
Accidentally caught by the spam filter. - Jim -----Original Message----- From: Jim Davis [mailto:jrd3@alum.mit.edu] Sent: Tuesday, November 09, 1999 2:01 PM To: w3c-dist-auth@w3.org Subject: [Moderator Action] results of interoperability testing: tdav.py (client) vs five servers I tried this evening to use tdav.py to test five webdav servers for compliance with RFC 2518. www.hisdad.org.nz:80 webdav.zope.org:2518 kurgan.lyra.org:8080 www.sharemation.com:80 pydav (running locally) These represent every server that I believe to be accesible via the Internet I do not know of anyone running the MS server on an open machine, alas. 1. hisdad I am not sure what kind of server this is, except it's clearly using Apache. I was not able to authenticate. The server claims to support basic authentication. It may be an error in the authentication code of davlib, or perhaps the server's authentication is not configured correctly. I will try this after the server administrator gets back to me. 2. Zope This is a class 1 server. The DAV:getcontenttype appears to not be supported. A PROPFIND for this property returned no data. It appears that the server does not support any of the DAV properties. An attempt to get all properties of foo.html (which I created) produced exactly one result, for http://www.zope.org/propsets/defaulttitle. RFC 2518 13.1 and following list several properties that MUST be supported, among them DAV:getcontentlanguage, DAV:getcontentlength, DAV:getcontenttype, DAV:getetag and DAV:getresourcetype, so it appears to me this server is not fully compliant. 3. Lyra *** basic tests Server claims to support locking Resource type of /dav/ is DAV:collection: PASS *** Testing error cases for MakeCollection Attempt to create collection that already exists should fail: PASS Attempt to create collection with no parent should fail: PASS *** Testing Delete Attempt to delete a non-existant resource should complain: PASS *** Testing Put /dav/foo.html PUT of a new resource is possible: PASS The media type used in PUT's Content-Type is returned by a PROPFIND FAIL GetProp of /dav/foo.html DAV:getcontenttype returned ['text/html'] not text/plain *** Testing Get Mime type in Header of GET is same as that used in PUT: FAIL, it was text/html but should have been text/plain Number of bytes returned by GET is same as the number PUT: PASS *** Testing Head HEAD header for content-type has same value as GET header: PASS HEAD header for content-length has same value as GET header: PASS *** Testing Properties The DAV:getcontenttype property is the same as that in the GET header: FAIL it was text/html not text/plain The getcontentlength property is the same as the value in the GET header: PASS PROPPATCH of dead property (http://parc.xerox.com/standards/burlap/foo) is possible: PASS PROPFIND retrieves same value : PASS Attempt to PROPPATCH a readonly property should fail PASS *** Testing LOCK with /dav/foo.html locked. Got token: opaquelocktoken:39a268f8-1dd2-11b2-959e-fb4938e57af8 Attempt to Lock resource already locked should fail: FAIL (it worked) It was not possible to continue beyond this point. 4. sharemation (aka Xythos) bash.exe-2.02$ python tdav.py -h www.sharemation.com -p 80 -collection /~jrd/ -verbose *** basic tests Server claims to support locking Resource type of /~jrd/ is DAV:collection: PASS *** Testing error cases for MakeCollection Attempt to create collection that already exists should fail: PASS Attempt to create collection with no parent should fail: PASS *** Testing Delete Attempt to delete a non-existant resource should complain: PASS *** Testing Put /~jrd/foo.html PUT of a new resource is possible: PASS The media type used in PUT's Content-Type is returned by a PROPFIND PASS *** Testing Get Mime type in Header of GET is same as that used in PUT: PASS Number of bytes returned by GET is same as the number PUT: PASS *** Testing Head HEAD header for content-type has same value as GET header: PASS HEAD header for content-length has same value as GET header: PASS *** Testing Properties The DAV:getcontenttype property is the same as that in the GET header: PASS The getcontentlength property is the same as the value in the GET header: PASS PROPPATCH of dead property (http://parc.xerox.com/standards/burlap/foo) is possible: PASS PROPFIND retrieves same value : PASS Attempt to PROPPATCH a readonly property (DAV:creationdate) should fail PASS dead property http://example.com/author was preserved across deletion of /~jrd/foo.html PropPatch failed with tagged-list production PUT could not create resource in a locked collection even with token Traceback (innermost last): File "tdav.py", line 679, in ? newcoll = test_coll + "newcoll/" File "davlib.py", line 157, in MakeCollection self.Invoke ('MKCOL', uri, h) File "davlib.py", line 369, in Invoke raise Locked Locked (it was not possible to continue automated testing beyond this point.) 5. Pydav The tests worked completely, but that is not surprising since I wrote both the test script and the server, so it does not show any true interoperation. Note that the list of tests run is only partial. (beyond a certain point, the automatic test script only reports problems, not successes, so you aren't seeing any indication of the more obscure and complex tests) bash.exe-2.02$ python tdav.py -h localhost -verbose *** basic tests Server claims to support locking Resource type of / is DAV:collection: PASS *** Testing error cases for MakeCollection Attempt to create collection that already exists should fail: PASS Attempt to create collection with no parent should fail: PASS *** Testing Delete Attempt to delete a non-existant resource should complain: PASS *** Testing Put /foo.html PUT of a new resource is possible: PASS The media type used in PUT's Content-Type is returned by a PROPFIND PASS *** Testing Get Mime type in Header of GET is same as that used in PUT: PASS Number of bytes returned by GET is same as the number PUT: PASS *** Testing Head HEAD header for content-type has same value as GET header: PASS HEAD header for content-length has same value as GET header: PASS *** Testing Properties The DAV:getcontenttype property is the same as that in the GET header: PASS The getcontentlength property is the same as the value in the GET header: PASS PROPPATCH of dead property (http://parc.xerox.com/standards/burlap/foo) is possible: PASS PROPFIND retrieves same value : PASS *** Getting all properties of /foo.html <A:getcontenttype xmlns:A="DAV:">text/plain</A:getcontenttype> <A:foo xmlns:A="http://parc.xerox.com/standards/burlap/">fish</A:foo> <A:lockdiscovery xmlns:A="DAV:"/> <A:creationdate xmlns:A="DAV:">1999-11-09T21:41:09Z</A:creationdate> <A:getcontentlength xmlns:A="DAV:">51</A:getcontentlength> <A:resourcetype xmlns:A="DAV:"/> <A:supportedlock xmlns:A="DAV:"><A:lockentry><A:locktype><A:write/></A:locktype><A:lockscope> <A:exclusive/></A:lockscope></A:lockentry></A:supportedlock> <A:getlastmodified xmlns:A="DAV:">Tue, 09 Nov 1999 21:41:09 GMT</A:getlastmodified> Attempt to PROPPATCH a readonly property (DAV:creationdate) should fail PASS *** Testing LOCK with /foo.html *** Trying Unlock opaquelocktoken:942183673.149 *** More lock tests *** Trying creation and deletion *** Trying misc. tests *** Testing locks on null resource
Received on Sunday, 14 November 1999 15:54:10 UTC