mirror of
https://gitlab.com/davical-project/davical.git
synced 2026-09-01 18:48:17 +00:00
Updates to regression tests. Starting a review of the design.
This commit is contained in:
parent
8056e9bc40
commit
9420cac5f5
@ -5,18 +5,41 @@ At present these regression tests are basically written to work in my
|
||||
own environment. While I am, of course, happy to see patches that make
|
||||
them more generic they are still very much a work in progress.
|
||||
|
||||
Mulberry
|
||||
========
|
||||
At present the most demanding client to support is Mulberry, so the first
|
||||
regression tests imitate Mulberry taking RSCDS through it's paces:
|
||||
set of regression tests imitate Mulberry taking RSCDS through it's paces:
|
||||
|
||||
- Initial OPTIONS request at the root
|
||||
- Initial PROPFIND request at the root with Depth 1
|
||||
- Second PROPFIND request at the second level
|
||||
- MKCALENDAR request to create a calendar at /user1/home/
|
||||
- Third PROPFIND request duplicating the Second one (but finding a calendar now).
|
||||
- Fourth PROPFIND request solely looking for the new calendar, requesting 'getetag'
|
||||
- Not that Mulberry would let us do this, but we try to MKCALENDAR again at /user1/home/ to check for the error we expect.
|
||||
- PUT our first event into the calendar.
|
||||
- PUT the same event a second time, which should not give an error, but should respond with 'Replaced' rather than 'Created'.
|
||||
1. Initial OPTIONS request at the root
|
||||
2. Initial PROPFIND request at the root with Depth 1
|
||||
3. Second PROPFIND request at the second level
|
||||
4. MKCALENDAR request to create a calendar at /user1/home/
|
||||
5. Third PROPFIND request duplicating the Second one (but finding a calendar now).
|
||||
6. Fourth PROPFIND request solely looking for the new calendar, requesting 'getetag'
|
||||
7. Not that Mulberry would let us do this, but we try to MKCALENDAR again at /user1/home/ to check for the error we expect.
|
||||
10. PUT our first event into the calendar.
|
||||
11. PUT the same event a second time, which should not give an error, but should respond with 'Replaced' rather than 'Created'.
|
||||
12. PUT a second event into the calendar.
|
||||
13. PROPFIND which should now show us both events.
|
||||
14. PUT an update to that second event.
|
||||
15. PROPFIND which should show us both events, with changes.
|
||||
16. MKCALENDAR somewhere else that we have rights to do so.
|
||||
17. MKCALENDAR somewhere else where we do not have rights, and which should fail.
|
||||
18. PUT into the other calendar we have just created.
|
||||
19. OPTIONS request against an illegal path, which should fail.
|
||||
20. DELETE the first appointment we created, but with an If-Match header that will cause it to return a 412 Precondition Failed.
|
||||
21. DELETE the first appointment, but this time with a correct If-Match header, it should succeed.
|
||||
|
||||
|
||||
Evolution
|
||||
=========
|
||||
Evolution does things quite differently to Mulberry, only doing one OPTIONS request to confirm that
|
||||
calendaring support is available, and then going for REPORT and GET. It maintains an internal cache
|
||||
so does not GET events listed in a REPORT unless they are new or changed.
|
||||
|
||||
100. Initial unauthenticated OPTIONS request.
|
||||
101. Initial authenticated OPTIONS request.
|
||||
102. Initial REPORT request.
|
||||
|
||||
=====>>>> We are up to here...
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@ HTTP/1.1 200 OK
|
||||
Date: Dow, 01 Jan 2000 00:00:00 GMT
|
||||
Server: Apache/2.2.3 (Debian) DAV/2
|
||||
Content-length: 0
|
||||
Allow: OPTIONS, GET, PUT, DELETE, PROPFIND, MKCOL, MKCALENDAR
|
||||
Allow: OPTIONS, GET, PUT, DELETE, PROPFIND, PROPPATCH, MKCOL, MKCALENDAR
|
||||
DAV: 1, 2, access-control
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
|
||||
|
||||
@ -0,0 +1,7 @@
|
||||
HTTP/1.1 412 Precondition Failed
|
||||
Date: Dow, 01 Jan 2000 00:00:00 GMT
|
||||
Server: Apache/2.2.3 (Debian) DAV/2
|
||||
Content-Length: 56
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
|
||||
Resource does not match 'If-Match' header - not deleted
|
||||
@ -0,0 +1,6 @@
|
||||
#
|
||||
# Do a DELETE with a bogus etag so it will fail.
|
||||
TYPE=DELETE
|
||||
URL=http://mycaldav/caldav.php/user1/home/F56B49B10FC923D20FE2DC92D6580340-0.ics
|
||||
HEADER=If-Match: "bogus-etag-b000d7defa19ccb7cd21e546b54155ee"
|
||||
HEAD
|
||||
@ -0,0 +1,6 @@
|
||||
HTTP/1.1 200 Deleted
|
||||
Date: Dow, 01 Jan 2000 00:00:00 GMT
|
||||
Server: Apache/2.2.3 (Debian) DAV/2
|
||||
Content-length: 0
|
||||
Content-Type: text/html; charset=UTF-8
|
||||
|
||||
@ -0,0 +1,6 @@
|
||||
#
|
||||
# Do a DELETE with a correct etag which will succeed.
|
||||
TYPE=DELETE
|
||||
URL=http://mycaldav/caldav.php/user1/home/F56B49B10FC923D20FE2DC92D6580340-0.ics
|
||||
HEADER=If-Match: "b000d7defa19ccb7cd21e546b54155ee"
|
||||
HEAD
|
||||
@ -2,7 +2,7 @@ HTTP/1.1 200 OK
|
||||
Date: Dow, 01 Jan 2000 00:00:00 GMT
|
||||
Server: Apache/2.2.3 (Debian) DAV/2
|
||||
Content-length: 0
|
||||
Allow: OPTIONS, GET, PUT, DELETE, PROPFIND, MKCOL, MKCALENDAR, REPORT
|
||||
Allow: OPTIONS, GET, PUT, DELETE, PROPFIND, PROPPATCH, MKCOL, MKCALENDAR, REPORT
|
||||
DAV: 1, 2, access-control, calendar-access
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
|
||||
|
||||
@ -1,21 +1,12 @@
|
||||
HTTP/1.1 207 Multi-Status
|
||||
Date: Dow, 01 Jan 2000 00:00:00 GMT
|
||||
Server: Apache/2.2.3 (Debian) DAV/2
|
||||
ETag: "999029ee508d00d69a8251bc727d6e52"
|
||||
Content-Length: 600
|
||||
ETag: "9af8e0a0b4fe1d20dd7b016d8916a1c0"
|
||||
Content-Length: 341
|
||||
Content-Type: text/xml;charset=UTF-8
|
||||
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<multistatus xmlns="DAV:">
|
||||
<response>
|
||||
<href>http://mycaldav/caldav.php/user1/home/F56B49B10FC923D20FE2DC92D6580340-0.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<getetag>"b000d7defa19ccb7cd21e546b54155ee"</getetag>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>http://mycaldav/caldav.php/user1/home/3F4CF6227300FD062D9EF3CDFB30D32D-0.ics</href>
|
||||
<propstat>
|
||||
|
||||
@ -1,15 +1,14 @@
|
||||
HTTP/1.1 200 OK
|
||||
Date: Dow, 01 Jan 2000 00:00:00 GMT
|
||||
Server: Apache/2.2.3 (Debian) DAV/2
|
||||
ETag: "b000d7defa19ccb7cd21e546b54155ee"
|
||||
Content-Length: 720
|
||||
ETag: "2c32a2f8aba853654eb17fe037a4db4d"
|
||||
Content-Length: 747
|
||||
Content-Type: text/calendar
|
||||
|
||||
BEGIN:VCALENDAR
|
||||
CALSCALE:GREGORIAN
|
||||
PRODID:-//mulberrymail.com//Mulberry v4.0//EN
|
||||
VERSION:2.0
|
||||
X-WR-CALNAME:home
|
||||
BEGIN:VTIMEZONE
|
||||
LAST-MODIFIED:20040110T032845Z
|
||||
TZID:New Zealand Standard Time
|
||||
@ -30,10 +29,12 @@ TZOFFSETTO:+1200
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
BEGIN:VEVENT
|
||||
DTSTAMP:20061025T101327Z
|
||||
DTSTART;TZID=New Zealand Standard Time:20061025T091500
|
||||
DTSTAMP:20061102T090217Z
|
||||
DTSTART;TZID=New Zealand Standard Time:20061102T123000
|
||||
DURATION:PT1H
|
||||
SUMMARY:A first event
|
||||
UID:B18CBB57295D01D7661A6DD4@D76FAF7B10D9E8D2D41F779C
|
||||
LAST-MODIFIED:20061104T002921Z
|
||||
SEQUENCE:1
|
||||
SUMMARY:Lunch with David
|
||||
UID:5A55230C8866CA8D3D325F3A@CA1CBED546AAE36FF3BC722E
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
@ -2,6 +2,6 @@
|
||||
# Now we GET the entry that was in the report.
|
||||
#
|
||||
TYPE=GET
|
||||
URL=http://mycaldav/caldav.php/user1/home/F56B49B10FC923D20FE2DC92D6580340-0.ics
|
||||
URL=http://mycaldav/caldav.php/user1/home/3F4CF6227300FD062D9EF3CDFB30D32D-0.ics
|
||||
HEADER=User-Agent: Evolution/1.8.1
|
||||
HEAD
|
||||
|
||||
@ -1,21 +1,12 @@
|
||||
HTTP/1.1 207 Multi-Status
|
||||
Date: Dow, 01 Jan 2000 00:00:00 GMT
|
||||
Server: Apache/2.2.3 (Debian) DAV/2
|
||||
ETag: "aec354a7e336855131053ef08ca190b8"
|
||||
Content-Length: 841
|
||||
ETag: "0ebe2932552a8091e8d9e941663d6b44"
|
||||
Content-Length: 582
|
||||
Content-Type: text/xml;charset=UTF-8
|
||||
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<multistatus xmlns="DAV:">
|
||||
<response>
|
||||
<href>http://mycaldav/caldav.php/user1/home/F56B49B10FC923D20FE2DC92D6580340-0.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<getetag>"b000d7defa19ccb7cd21e546b54155ee"</getetag>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>http://mycaldav/caldav.php/user1/home/3F4CF6227300FD062D9EF3CDFB30D32D-0.ics</href>
|
||||
<propstat>
|
||||
|
||||
@ -2,7 +2,7 @@ HTTP/1.1 200 OK
|
||||
Date: Dow, 01 Jan 2000 00:00:00 GMT
|
||||
Server: Apache/2.2.3 (Debian) DAV/2
|
||||
Content-length: 0
|
||||
Allow: OPTIONS, GET, PUT, DELETE, PROPFIND, MKCOL, MKCALENDAR, REPORT
|
||||
Allow: OPTIONS, GET, PUT, DELETE, PROPFIND, PROPPATCH, MKCOL, MKCALENDAR, REPORT
|
||||
DAV: 1, 2, access-control, calendar-access
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
HTTP/1.1 207 Multi-Status
|
||||
Date: Dow, 01 Jan 2000 00:00:00 GMT
|
||||
Server: Apache/2.2.3 (Debian) DAV/2
|
||||
ETag: "d544d88a68854d4b3abb2241a0ce6ef5"
|
||||
Content-Length: 3415
|
||||
ETag: "5b96765475e589f86d394a09499d000e"
|
||||
Content-Length: 2420
|
||||
Content-Type: text/xml;charset=UTF-8
|
||||
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
@ -93,47 +93,6 @@ SUMMARY:Lunch with David
|
||||
UID:5A55230C8866CA8D3D325F3A@CA1CBED546AAE36FF3BC722E
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
</calendar-data>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>http://mycaldav/caldav.php/user1/home/F56B49B10FC923D20FE2DC92D6580340-0.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<calendar-data xmlns="urn:ietf:params:xml:ns:caldav">BEGIN:VCALENDAR
|
||||
CALSCALE:GREGORIAN
|
||||
PRODID:-//mulberrymail.com//Mulberry v4.0//EN
|
||||
VERSION:2.0
|
||||
X-WR-CALNAME:home
|
||||
BEGIN:VTIMEZONE
|
||||
LAST-MODIFIED:20040110T032845Z
|
||||
TZID:New Zealand Standard Time
|
||||
X-LIC-LOCATION:Pacific/Auckland
|
||||
BEGIN:DAYLIGHT
|
||||
DTSTART:20000404T020000
|
||||
RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
|
||||
TZNAME:NZDT
|
||||
TZOFFSETFROM:+1200
|
||||
TZOFFSETTO:+1300
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
DTSTART:20001026T020000
|
||||
RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=10
|
||||
TZNAME:NZST
|
||||
TZOFFSETFROM:+1300
|
||||
TZOFFSETTO:+1200
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
BEGIN:VEVENT
|
||||
DTSTAMP:20061025T101327Z
|
||||
DTSTART;TZID=New Zealand Standard Time:20061025T091500
|
||||
DURATION:PT1H
|
||||
SUMMARY:A first event
|
||||
UID:B18CBB57295D01D7661A6DD4@D76FAF7B10D9E8D2D41F779C
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
</calendar-data>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
|
||||
@ -2,7 +2,7 @@ HTTP/1.1 200 OK
|
||||
Date: Dow, 01 Jan 2000 00:00:00 GMT
|
||||
Server: Apache/2.2.3 (Debian) DAV/2
|
||||
Content-length: 0
|
||||
Allow: OPTIONS, GET, PUT, DELETE, PROPFIND, MKCOL, MKCALENDAR, REPORT
|
||||
Allow: OPTIONS, GET, PUT, DELETE, PROPFIND, PROPPATCH, MKCOL, MKCALENDAR, REPORT
|
||||
DAV: 1, 2, access-control, calendar-access
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@ HTTP/1.1 200 OK
|
||||
Date: Dow, 01 Jan 2000 00:00:00 GMT
|
||||
Server: Apache/2.2.3 (Debian) DAV/2
|
||||
Content-length: 0
|
||||
Allow: OPTIONS, GET, PUT, DELETE, PROPFIND, MKCOL, MKCALENDAR
|
||||
DAV: 1, 2, access-control
|
||||
Allow: OPTIONS, GET, PUT, DELETE, PROPFIND, PROPPATCH, MKCOL, MKCALENDAR, REPORT
|
||||
DAV: 1, 2, access-control, calendar-access
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user