diff --git a/testing/README.regression_tests b/testing/README.regression_tests index 1eb8752b..8815aeba 100644 --- a/testing/README.regression_tests +++ b/testing/README.regression_tests @@ -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... diff --git a/testing/tests/regression-suite/001-Mulberry-1.result b/testing/tests/regression-suite/001-Mulberry-1.result index f7e7d7bd..ef4eddbb 100644 --- a/testing/tests/regression-suite/001-Mulberry-1.result +++ b/testing/tests/regression-suite/001-Mulberry-1.result @@ -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 diff --git a/testing/tests/regression-suite/020-Mulberry-DELETE-1.result b/testing/tests/regression-suite/020-Mulberry-DELETE-1.result new file mode 100644 index 00000000..1af56241 --- /dev/null +++ b/testing/tests/regression-suite/020-Mulberry-DELETE-1.result @@ -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 diff --git a/testing/tests/regression-suite/020-Mulberry-DELETE-1.test b/testing/tests/regression-suite/020-Mulberry-DELETE-1.test new file mode 100644 index 00000000..9dd111a4 --- /dev/null +++ b/testing/tests/regression-suite/020-Mulberry-DELETE-1.test @@ -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 diff --git a/testing/tests/regression-suite/021-Mulberry-DELETE-2.result b/testing/tests/regression-suite/021-Mulberry-DELETE-2.result new file mode 100644 index 00000000..7c2a2cf0 --- /dev/null +++ b/testing/tests/regression-suite/021-Mulberry-DELETE-2.result @@ -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 + diff --git a/testing/tests/regression-suite/021-Mulberry-DELETE-2.test b/testing/tests/regression-suite/021-Mulberry-DELETE-2.test new file mode 100644 index 00000000..97885868 --- /dev/null +++ b/testing/tests/regression-suite/021-Mulberry-DELETE-2.test @@ -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 diff --git a/testing/tests/regression-suite/101-Evo-OPTIONS-1.result b/testing/tests/regression-suite/101-Evo-OPTIONS-1.result index 8ffbd8c6..53fc8049 100644 --- a/testing/tests/regression-suite/101-Evo-OPTIONS-1.result +++ b/testing/tests/regression-suite/101-Evo-OPTIONS-1.result @@ -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 diff --git a/testing/tests/regression-suite/102-Evo-REPORT-1.result b/testing/tests/regression-suite/102-Evo-REPORT-1.result index 9f120952..696269be 100644 --- a/testing/tests/regression-suite/102-Evo-REPORT-1.result +++ b/testing/tests/regression-suite/102-Evo-REPORT-1.result @@ -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 - - http://mycaldav/caldav.php/user1/home/F56B49B10FC923D20FE2DC92D6580340-0.ics - - - "b000d7defa19ccb7cd21e546b54155ee" - - HTTP/1.1 200 OK - - http://mycaldav/caldav.php/user1/home/3F4CF6227300FD062D9EF3CDFB30D32D-0.ics diff --git a/testing/tests/regression-suite/103-Evo-GET-1.result b/testing/tests/regression-suite/103-Evo-GET-1.result index b9789eaf..9f2901b3 100644 --- a/testing/tests/regression-suite/103-Evo-GET-1.result +++ b/testing/tests/regression-suite/103-Evo-GET-1.result @@ -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 diff --git a/testing/tests/regression-suite/103-Evo-GET-1.test b/testing/tests/regression-suite/103-Evo-GET-1.test index 743156cc..9d7289c3 100644 --- a/testing/tests/regression-suite/103-Evo-GET-1.test +++ b/testing/tests/regression-suite/103-Evo-GET-1.test @@ -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 diff --git a/testing/tests/regression-suite/105-Evo-REPORT-1.result b/testing/tests/regression-suite/105-Evo-REPORT-1.result index 031bf2a3..395ab9e2 100644 --- a/testing/tests/regression-suite/105-Evo-REPORT-1.result +++ b/testing/tests/regression-suite/105-Evo-REPORT-1.result @@ -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 - - http://mycaldav/caldav.php/user1/home/F56B49B10FC923D20FE2DC92D6580340-0.ics - - - "b000d7defa19ccb7cd21e546b54155ee" - - HTTP/1.1 200 OK - - http://mycaldav/caldav.php/user1/home/3F4CF6227300FD062D9EF3CDFB30D32D-0.ics diff --git a/testing/tests/regression-suite/201-Moz-OPTIONS-2.result b/testing/tests/regression-suite/201-Moz-OPTIONS-2.result index 8ffbd8c6..53fc8049 100644 --- a/testing/tests/regression-suite/201-Moz-OPTIONS-2.result +++ b/testing/tests/regression-suite/201-Moz-OPTIONS-2.result @@ -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 diff --git a/testing/tests/regression-suite/203-Moz-REPORT-2.result b/testing/tests/regression-suite/203-Moz-REPORT-2.result index cd1b29d5..38bdf6eb 100644 --- a/testing/tests/regression-suite/203-Moz-REPORT-2.result +++ b/testing/tests/regression-suite/203-Moz-REPORT-2.result @@ -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 @@ -93,47 +93,6 @@ SUMMARY:Lunch with David UID:5A55230C8866CA8D3D325F3A@CA1CBED546AAE36FF3BC722E END:VEVENT END:VCALENDAR - - - HTTP/1.1 200 OK - - - - http://mycaldav/caldav.php/user1/home/F56B49B10FC923D20FE2DC92D6580340-0.ics - - - 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 HTTP/1.1 200 OK diff --git a/testing/tests/regression-suite/302-Chandler-OPTIONS-2.result b/testing/tests/regression-suite/302-Chandler-OPTIONS-2.result index 8ffbd8c6..53fc8049 100644 --- a/testing/tests/regression-suite/302-Chandler-OPTIONS-2.result +++ b/testing/tests/regression-suite/302-Chandler-OPTIONS-2.result @@ -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 diff --git a/testing/tests/regression-suite/305-Chandler-OPTIONS-3.result b/testing/tests/regression-suite/305-Chandler-OPTIONS-3.result index f7e7d7bd..53fc8049 100644 --- a/testing/tests/regression-suite/305-Chandler-OPTIONS-3.result +++ b/testing/tests/regression-suite/305-Chandler-OPTIONS-3.result @@ -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