diff --git a/dba/davical.sql b/dba/davical.sql index 73048b8d..92287a73 100644 --- a/dba/davical.sql +++ b/dba/davical.sql @@ -151,7 +151,9 @@ CREATE TABLE calendar_item ( last_modified TIMESTAMP, dtstamp TIMESTAMP, dtstart TIMESTAMP WITH TIME ZONE, + dtstart_orig TIMESTAMP WITH TIME ZONE, dtend TIMESTAMP WITH TIME ZONE, + dtend_orig TIMESTAMP WITH TIME ZONE, due TIMESTAMP WITH TIME ZONE, summary TEXT, location TEXT, @@ -497,4 +499,4 @@ CREATE SEQUENCE metrics_count_delticket; CREATE SEQUENCE metrics_count_bind; CREATE SEQUENCE metrics_count_unknown; -SELECT new_db_revision(1,3,4, 'KwiecieĊ„' ); +SELECT new_db_revision(1,3,5, 'Maj' ); diff --git a/dba/patches/1.3.5.sql b/dba/patches/1.3.5.sql new file mode 100644 index 00000000..8751e7d1 --- /dev/null +++ b/dba/patches/1.3.5.sql @@ -0,0 +1,25 @@ + +-- Notable enhancement: add shadow columns to calendar_item + +BEGIN; +SELECT check_db_revision(1,3,4); + +ALTER TABLE calendar_item + ADD COLUMN dtstart_orig TIMESTAMP WITH TIME ZONE, + ADD COLUMN dtend_orig TIMESTAMP WITH TIME ZONE; + +-- We don't know what the user sent us without reparsing all the VCALENDAR +-- blobs, which I'm not going to do in SQL. We'll just have to wing it, and +-- hope this is good enough (it is no better than the current situation for +-- existing deployments) and dtstart_orig and dtend_orig will end up with +-- correct data over time as users re-upload the VCALENDAR blobs. +UPDATE calendar_item +SET + dtstart_orig = dtstart, + dtend_orig = dtend; + +-- http://blogs.transparent.com/polish/names-of-the-months-and-their-meaning/ +SELECT new_db_revision(1,3,5, 'Maj' ); + +COMMIT; +ROLLBACK; diff --git a/inc/WritableCollection.php b/inc/WritableCollection.php index b3c32b9d..1cf2e254 100644 --- a/inc/WritableCollection.php +++ b/inc/WritableCollection.php @@ -124,7 +124,14 @@ class WritableCollection extends DAVResource { return false; } + $dtstart = $first->GetPValue('DTSTART'); + $calitem_params[':dtstart_orig'] = $dtstart; + if ( (!isset($dtstart) || $dtstart == '') && $first->GetPValue('DUE') != '' ) { + $dtstart = $first->GetPValue('DUE'); + } + $dtend = $first->GetPValue('DTEND'); + $calitem_params[':dtend_orig'] = $dtend; if ( isset($dtend) && $dtend != '' ) { dbg_error_log( 'PUT', ' DTEND: "%s", DTSTART: "%s", DURATION: "%s"', $dtend, $first->GetPValue('DTSTART'), $first->GetPValue('DURATION') ); $calitem_params[':dtend'] = $dtend; @@ -218,26 +225,29 @@ class WritableCollection extends DAVResource { if ( $create_resource ) { $sql = <<user_no; $dtstart = $first->GetPValue('DTSTART'); + $calitem_params[':dtstart_orig'] = $dtstart; $calitem_params[':dtstart'] = $dtstart; + if ( (!isset($dtstart) || $dtstart == '') && $first->GetPValue('DUE') != '' ) { $dtstart = $first->GetPValue('DUE'); if ( isset($after) ) $dtstart_date = new RepeatRuleDateTime($first->GetProperty('DUE')); @@ -1121,6 +1129,8 @@ EOSQL; } $dtend = $first->GetPValue('DTEND'); + $calitem_params[':dtend_orig'] = $dtend; + if ( isset($dtend) && $dtend != '' ) { dbg_error_log( 'PUT', ' DTEND: "%s", DTSTART: "%s", DURATION: "%s"', $dtend, $dtstart, $first->GetPValue('DURATION') ); $calitem_params[':dtend'] = $dtend; @@ -1203,17 +1213,17 @@ EOSQL; } $sql = str_replace( '##dtend##', $dtend, ($inserting ? $calitem_insert : $calitem_update) ); + $calitem_params[':uid'] = $first->GetPValue('UID'); + $calitem_params[':url'] = $first->GetPValue('URL'); + $calitem_params[':due'] = $first->GetPValue('DUE'); $calitem_params[':tzid'] = $tzid; - $calitem_params[':uid'] = $first->GetPValue('UID'); - $calitem_params[':summary'] = $first->GetPValue('SUMMARY'); + $calitem_params[':transp'] = $first->GetPValue('TRANSP'); + $calitem_params[':status'] = $first->GetPValue('STATUS'); + $calitem_params[':summary'] = $first->GetPValue('SUMMARY'); $calitem_params[':location'] = $first->GetPValue('LOCATION'); - $calitem_params[':transp'] = $first->GetPValue('TRANSP'); - $calitem_params[':description'] = $first->GetPValue('DESCRIPTION'); - $calitem_params[':url'] = $first->GetPValue('URL'); $calitem_params[':priority'] = $first->GetPValue('PRIORITY'); - $calitem_params[':due'] = $first->GetPValue('DUE'); + $calitem_params[':description'] = $first->GetPValue('DESCRIPTION'); $calitem_params[':percent_complete'] = $first->GetPValue('PERCENT-COMPLETE'); - $calitem_params[':status'] = $first->GetPValue('STATUS'); // Intentionally not populating first_instance_start and last_instance_end // here, As they may depend on the default tzid of the collection, which as @@ -1469,12 +1479,16 @@ function write_resource( DAVResource $resource, $caldav_data, DAVResource $colle if ( $first->GetType() == 'VTODO' ) $due = $first->GetPValue('DUE'); $calitem_params[':due'] = $due; $dtstart = $first->GetPValue('DTSTART'); + $calitem_params[':dtstart_orig'] = $dtstart; + if ( empty($dtstart) ) $dtstart = $due; if (isset($dtstart) && preg_match("/^1[0-8][0-9][0-9][01][0-9][0-3][0-9]$/", $dtstart)) $dtstart = $dtstart . "T000000Z"; $calitem_params[':dtstart'] = $dtstart; $dtend = $first->GetPValue('DTEND'); + $calitem_params[':dtend_orig'] = $dtend; + if ( isset($dtend) && $dtend != '' ) { dbg_error_log( 'PUT', ' DTEND: "%s", DTSTART: "%s", DURATION: "%s"', $dtend, $dtstart, $first->GetPValue('DURATION') ); if (preg_match("/^1[0-8][0-9][0-9][01][0-9][0-3][0-9]$/", $dtend)) @@ -1632,15 +1646,15 @@ function write_resource( DAVResource $resource, $caldav_data, DAVResource $colle if ( $put_action_type == 'INSERT' ) { $sql = <<BEGIN:VCALENDAR +PRODID:-//Puck Handcrafted VCAL//NONSGML Sunbird//EN +VERSION:2.0 +BEGIN:VEVENT +SUMMARY:No DTEND, from PUT +DTSTART;VALUE=DATE:19971102 +DTSTAMP:19970901T130000Z +UID:19970901T130000Z-123403@example.com +RRULE:FREQ=YEARLY +CATEGORIES:ANNIVERSARY,PERSONAL,SPECIAL OCCASION +CLASS:CONFIDENTIAL +TRANSP:TRANSPARENT +END:VEVENT +END:VCALENDAR +< + caldav_type: >VEVENT< + class: >CONFIDENTIAL< + dav_etag: >7f689d339d2aaa93571b78742a2e0f33< + description: >NULL< + dtend: >1997-11-03 00:00:00+13< + dtend_orig: >NULL< + dtstamp: >1997-09-01 13:00:00< + dtstart: >1997-11-02 00:00:00+13< + dtstart_orig: >1997-11-02 00:00:00+13< + due: >NULL< + location: >NULL< + logged_user: >10< + percent_complete: >NULL< + priority: >NULL< + rrule: >FREQ=YEARLY< + status: >NULL< + summary: >No DTEND, from PUT< + transp: >TRANSPARENT< + uid: >19970901T130000Z-123403@example.com< + url: >NULL< + user_no: >10< + diff --git a/testing/tests/regression-suite/2500-is-defined-Setup-PUT-resources-1.test b/testing/tests/regression-suite/2500-is-defined-Setup-PUT-resources-1.test new file mode 100644 index 00000000..0b23f362 --- /dev/null +++ b/testing/tests/regression-suite/2500-is-defined-Setup-PUT-resources-1.test @@ -0,0 +1,39 @@ +# +# PUT a events into the database +# +TYPE=PUT +URL=http://regression.host/caldav.php/user1/events/hand-crafted-vevent.ics +HEADER=User-Agent: DAViCal Testing/1.12.x +HEADER=Content-Type: text/calendar; charset=utf-8 +AUTH=user1:user1 + +HEAD + + +BEGINDATA +BEGIN:VCALENDAR +PRODID:-//Puck Handcrafted VCAL//NONSGML Sunbird//EN +VERSION:2.0 +BEGIN:VEVENT +SUMMARY:No DTEND, from PUT +DTSTART;VALUE=DATE:19971102 +DTSTAMP:19970901T130000Z +UID:19970901T130000Z-123403@example.com +RRULE:FREQ=YEARLY +CATEGORIES:ANNIVERSARY,PERSONAL,SPECIAL OCCASION +CLASS:CONFIDENTIAL +TRANSP:TRANSPARENT +END:VEVENT +END:VCALENDAR +ENDDATA + + +QUERY +SELECT caldav_data.user_no, caldav_data.dav_etag, caldav_type, logged_user, + uid, dtstamp, dtstart, dtstart_orig, dtend, dtend_orig, due, summary, + location, description, priority, class, transp, rrule, url, + percent_complete, status, caldav_data AS " CalDAV Data" +FROM caldav_data + JOIN calendar_item AS ci USING(dav_name) +WHERE caldav_data.dav_name = '/user1/events/hand-crafted-vevent.ics'; +ENDQUERY diff --git a/testing/tests/regression-suite/2500-is-defined-Setup-PUT-resources-2.result b/testing/tests/regression-suite/2500-is-defined-Setup-PUT-resources-2.result new file mode 100644 index 00000000..66842e81 --- /dev/null +++ b/testing/tests/regression-suite/2500-is-defined-Setup-PUT-resources-2.result @@ -0,0 +1,46 @@ +HTTP/1.1 201 Created +Date: Dow, 01 Jan 2000 00:00:00 GMT +DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule +DAV: extended-mkcol, bind, addressbook, calendar-auto-schedule, calendar-proxy +ETag: "1cb73d8b8271b3293874e4ecaae6b118" +Content-Length: 0 +Content-Type: text/plain; charset="utf-8" + + + CalDAV Data: >BEGIN:VCALENDAR +PRODID:-//Puck Handcrafted VCAL//NONSGML Sunbird//EN +VERSION:2.0 +BEGIN:VTODO +UID:19980901T130000Z-123405@host.com +DTSTAMP:19980901T130000Z +DTSTART:19980415T133000Z +DUE:19980516T045959Z +SUMMARY:Status is not set, CLASS set, from PUT +CLASS:CONFIDENTIAL +CATEGORIES:FAMILY,FINANCE +PRIORITY:1 +END:VTODO +END:VCALENDAR +< + caldav_type: >VTODO< + class: >CONFIDENTIAL< + dav_etag: >1cb73d8b8271b3293874e4ecaae6b118< + description: >NULL< + dtend: >NULL< + dtend_orig: >NULL< + dtstamp: >1998-09-01 13:00:00< + dtstart: >1998-04-16 01:30:00+12< + dtstart_orig: >1998-04-16 01:30:00+12< + due: >1998-05-16 16:59:59+12< + location: >NULL< + logged_user: >10< + percent_complete: >NULL< + priority: >1< + rrule: >NULL< + status: >NULL< + summary: >Status is not set, CLASS set, from PUT< + transp: >NULL< + uid: >19980901T130000Z-123405@host.com< + url: >NULL< + user_no: >10< + diff --git a/testing/tests/regression-suite/2500-is-defined-Setup-PUT-resources-2.test b/testing/tests/regression-suite/2500-is-defined-Setup-PUT-resources-2.test new file mode 100644 index 00000000..c898df1d --- /dev/null +++ b/testing/tests/regression-suite/2500-is-defined-Setup-PUT-resources-2.test @@ -0,0 +1,39 @@ +# +# PUT a todo into the database +# +TYPE=PUT +URL=http://regression.host/caldav.php/user1/events/hand-crafted-vtodo-1.ics +HEADER=User-Agent: DAViCal Testing/1.12.x +HEADER=Content-Type: text/calendar; charset=utf-8 +AUTH=user1:user1 + +HEAD + + +BEGINDATA +BEGIN:VCALENDAR +PRODID:-//Puck Handcrafted VCAL//NONSGML Sunbird//EN +VERSION:2.0 +BEGIN:VTODO +UID:19980901T130000Z-123405@host.com +DTSTAMP:19980901T130000Z +DTSTART:19980415T133000Z +DUE:19980516T045959Z +SUMMARY:Status is not set, CLASS set, from PUT +CLASS:CONFIDENTIAL +CATEGORIES:FAMILY,FINANCE +PRIORITY:1 +END:VTODO +END:VCALENDAR +ENDDATA + + +QUERY +SELECT caldav_data.user_no, caldav_data.dav_etag, caldav_type, logged_user, + uid, dtstamp, dtstart, dtstart_orig, dtend, dtend_orig, due, summary, + location, description, priority, class, transp, rrule, url, + percent_complete, status, caldav_data AS " CalDAV Data" +FROM caldav_data + JOIN calendar_item AS ci USING(dav_name) +WHERE caldav_data.dav_name = '/user1/events/hand-crafted-vtodo-1.ics'; +ENDQUERY diff --git a/testing/tests/regression-suite/2500-is-defined-Setup-PUT-resources-3.result b/testing/tests/regression-suite/2500-is-defined-Setup-PUT-resources-3.result new file mode 100644 index 00000000..cc443717 --- /dev/null +++ b/testing/tests/regression-suite/2500-is-defined-Setup-PUT-resources-3.result @@ -0,0 +1,48 @@ +HTTP/1.1 201 Created +Date: Dow, 01 Jan 2000 00:00:00 GMT +DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule +DAV: extended-mkcol, bind, addressbook, calendar-auto-schedule, calendar-proxy +ETag: "3f89f2173cd61aa277012407cf1f3d8e" +Content-Length: 0 +Content-Type: text/plain; charset="utf-8" + + + CalDAV Data: >BEGIN:VCALENDAR +PRODID:-//Puck Handcrafted VCAL//NONSGML Sunbird//EN +VERSION:2.0 +BEGIN:VTODO +UID:19930901T130000Z-123407@host.com +DTSTAMP:19930901T130000Z +DUE:19930516T045959Z +SUMMARY:Status is set to COMPLETED, empty URL, CLASS set, from PUT +CLASS:PUBLIC +CATEGORIES:FAMILY,FINANCE +STATUS:COMPLETED +URL: +COMPLETED:19950101T000000Z +PRIORITY:1 +END:VTODO +END:VCALENDAR +< + caldav_type: >VTODO< + class: >PUBLIC< + dav_etag: >3f89f2173cd61aa277012407cf1f3d8e< + description: >NULL< + dtend: >NULL< + dtend_orig: >NULL< + dtstamp: >1993-09-01 13:00:00< + dtstart: >1993-05-16 16:59:59+12< + dtstart_orig: >NULL< + due: >1993-05-16 16:59:59+12< + location: >NULL< + logged_user: >10< + percent_complete: >NULL< + priority: >1< + rrule: >NULL< + status: >COMPLETED< + summary: >Status is set to COMPLETED, empty URL, CLASS set, from PUT< + transp: >NULL< + uid: >19930901T130000Z-123407@host.com< + url: >< + user_no: >10< + diff --git a/testing/tests/regression-suite/2500-is-defined-Setup-PUT-resources-3.test b/testing/tests/regression-suite/2500-is-defined-Setup-PUT-resources-3.test new file mode 100644 index 00000000..4350448d --- /dev/null +++ b/testing/tests/regression-suite/2500-is-defined-Setup-PUT-resources-3.test @@ -0,0 +1,41 @@ +# +# PUT a todo into the database +# +TYPE=PUT +URL=http://regression.host/caldav.php/user1/events/hand-crafted-vtodo-2.ics +HEADER=User-Agent: DAViCal Testing/1.12.x +HEADER=Content-Type: text/calendar; charset=utf-8 +AUTH=user1:user1 + +HEAD + + +BEGINDATA +BEGIN:VCALENDAR +PRODID:-//Puck Handcrafted VCAL//NONSGML Sunbird//EN +VERSION:2.0 +BEGIN:VTODO +UID:19930901T130000Z-123407@host.com +DTSTAMP:19930901T130000Z +DUE:19930516T045959Z +SUMMARY:Status is set to COMPLETED, empty URL, CLASS set, from PUT +CLASS:PUBLIC +CATEGORIES:FAMILY,FINANCE +STATUS:COMPLETED +URL: +COMPLETED:19950101T000000Z +PRIORITY:1 +END:VTODO +END:VCALENDAR +ENDDATA + + +QUERY +SELECT caldav_data.user_no, caldav_data.dav_etag, caldav_type, logged_user, + uid, dtstamp, dtstart, dtstart_orig, dtend, dtend_orig, due, summary, + location, description, priority, class, transp, rrule, url, + percent_complete, status, caldav_data AS " CalDAV Data" +FROM caldav_data + JOIN calendar_item AS ci USING(dav_name) +WHERE caldav_data.dav_name = '/user1/events/hand-crafted-vtodo-2.ics'; +ENDQUERY diff --git a/testing/tests/regression-suite/2500-is-defined-Setup-PUT-resources-4.result b/testing/tests/regression-suite/2500-is-defined-Setup-PUT-resources-4.result new file mode 100644 index 00000000..ad7b65ab --- /dev/null +++ b/testing/tests/regression-suite/2500-is-defined-Setup-PUT-resources-4.result @@ -0,0 +1,47 @@ +HTTP/1.1 201 Created +Date: Dow, 01 Jan 2000 00:00:00 GMT +DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule +DAV: extended-mkcol, bind, addressbook, calendar-auto-schedule, calendar-proxy +ETag: "782dee4f8d7cfdac111d80ce74530419" +Content-Length: 0 +Content-Type: text/plain; charset="utf-8" + + + CalDAV Data: >BEGIN:VCALENDAR +PRODID:-//Puck Handcrafted VCAL//NONSGML Sunbird//EN +VERSION:2.0 +BEGIN:VTODO +UID:19930901T130000Z-123408@host.com +DTSTAMP:19930901T130000Z +DTSTART:19930415T133000Z +DTEND:19930416T133000Z +SUMMARY:Status is IN-PROCESS, URL is set, CLASS isn't set, from PUT +STATUS:IN-PROCESS +URL:https://www.davical.org +CATEGORIES:FAMILY,FINANCE +PRIORITY:1 +END:VTODO +END:VCALENDAR +< + caldav_type: >VTODO< + class: >NULL< + dav_etag: >782dee4f8d7cfdac111d80ce74530419< + description: >NULL< + dtend: >1993-04-17 01:30:00+12< + dtend_orig: >1993-04-17 01:30:00+12< + dtstamp: >1993-09-01 13:00:00< + dtstart: >1993-04-16 01:30:00+12< + dtstart_orig: >1993-04-16 01:30:00+12< + due: >NULL< + location: >NULL< + logged_user: >10< + percent_complete: >NULL< + priority: >1< + rrule: >NULL< + status: >IN-PROCESS< + summary: >Status is IN-PROCESS, URL is set, CLASS isn't set, from PUT< + transp: >NULL< + uid: >19930901T130000Z-123408@host.com< + url: >https://www.davical.org< + user_no: >10< + diff --git a/testing/tests/regression-suite/2500-is-defined-Setup-PUT-resources-4.test b/testing/tests/regression-suite/2500-is-defined-Setup-PUT-resources-4.test new file mode 100644 index 00000000..10f85a29 --- /dev/null +++ b/testing/tests/regression-suite/2500-is-defined-Setup-PUT-resources-4.test @@ -0,0 +1,40 @@ +# +# PUT a todo into the database +# +TYPE=PUT +URL=http://regression.host/caldav.php/user1/events/hand-crafted-vtodo-3.ics +HEADER=User-Agent: DAViCal Testing/1.12.x +HEADER=Content-Type: text/calendar; charset=utf-8 +AUTH=user1:user1 + +HEAD + + +BEGINDATA +BEGIN:VCALENDAR +PRODID:-//Puck Handcrafted VCAL//NONSGML Sunbird//EN +VERSION:2.0 +BEGIN:VTODO +UID:19930901T130000Z-123408@host.com +DTSTAMP:19930901T130000Z +DTSTART:19930415T133000Z +DTEND:19930416T133000Z +SUMMARY:Status is IN-PROCESS, URL is set, CLASS isn't set, from PUT +STATUS:IN-PROCESS +URL:https://www.davical.org +CATEGORIES:FAMILY,FINANCE +PRIORITY:1 +END:VTODO +END:VCALENDAR +ENDDATA + + +QUERY +SELECT caldav_data.user_no, caldav_data.dav_etag, caldav_type, logged_user, + uid, dtstamp, dtstart, dtstart_orig, dtend, dtend_orig, due, summary, + location, description, priority, class, transp, rrule, url, + percent_complete, status, caldav_data AS " CalDAV Data" +FROM caldav_data + JOIN calendar_item AS ci USING(dav_name) +WHERE caldav_data.dav_name = '/user1/events/hand-crafted-vtodo-3.ics'; +ENDQUERY diff --git a/testing/tests/regression-suite/2501-is-defined-REPORT-is-not-defined.result b/testing/tests/regression-suite/2501-is-defined-REPORT-is-not-defined.result index fade010d..af6b68b6 100644 --- a/testing/tests/regression-suite/2501-is-defined-REPORT-is-not-defined.result +++ b/testing/tests/regression-suite/2501-is-defined-REPORT-is-not-defined.result @@ -2,8 +2,8 @@ HTTP/1.1 207 Multi-Status Date: Dow, 01 Jan 2000 00:00:00 GMT DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule DAV: extended-mkcol, bind, addressbook, calendar-auto-schedule, calendar-proxy -ETag: "59f93496e3ef79135478f26203487b2c" -Content-Length: 683 +ETag: "3c108dfa61c05aef6748e4695e59b374" +Content-Length: 1249 Content-Type: text/xml; charset="utf-8" @@ -21,12 +21,35 @@ UID:19970901T130000Z-123405@host.com DTSTAMP:19970901T130000Z DTSTART:19970415T133000Z DUE:19970516T045959Z -SUMMARY:Status is not set +SUMMARY:Status is not set, CLASS set, from import CLASS:CONFIDENTIAL CATEGORIES:FAMILY,FINANCE PRIORITY:1 END:VTODO END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user1/events/hand-crafted-vtodo-1.ics + + + BEGIN:VCALENDAR +PRODID:-//Puck Handcrafted VCAL//NONSGML Sunbird//EN +VERSION:2.0 +BEGIN:VTODO +UID:19980901T130000Z-123405@host.com +DTSTAMP:19980901T130000Z +DTSTART:19980415T133000Z +DUE:19980516T045959Z +SUMMARY:Status is not set, CLASS set, from PUT +CLASS:CONFIDENTIAL +CATEGORIES:FAMILY,FINANCE +PRIORITY:1 +END:VTODO +END:VCALENDAR HTTP/1.1 200 OK diff --git a/testing/tests/regression-suite/2502-is-defined-REPORT-is-defined-STATUS.result b/testing/tests/regression-suite/2502-is-defined-REPORT-is-defined-STATUS.result index d8071ab8..89977caa 100644 --- a/testing/tests/regression-suite/2502-is-defined-REPORT-is-defined-STATUS.result +++ b/testing/tests/regression-suite/2502-is-defined-REPORT-is-defined-STATUS.result @@ -2,8 +2,8 @@ HTTP/1.1 207 Multi-Status Date: Dow, 01 Jan 2000 00:00:00 GMT DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule DAV: extended-mkcol, bind, addressbook, calendar-auto-schedule, calendar-proxy -ETag: "e13eac7fed1103177aa17ad7379ea098" -Content-Length: 1333 +ETag: "a96e0f18e10c1fea687382f6923e6928" +Content-Length: 2555 Content-Type: text/xml; charset="utf-8" @@ -20,7 +20,7 @@ BEGIN:VTODO UID:19920901T130000Z-123407@host.com DTSTAMP:19920901T130000Z DUE:19920516T045959Z -SUMMARY:Status is set to COMPLETED, empty URL, CLASS set +SUMMARY:Status is set to COMPLETED, empty URL, CLASS set, from import CLASS:PUBLIC CATEGORIES:FAMILY,FINANCE STATUS:COMPLETED @@ -46,13 +46,63 @@ BEGIN:VTODO UID:19920901T130000Z-123408@host.com DTSTAMP:19920901T130000Z DTSTART:19920415T133000Z -SUMMARY:Status is IN-PROCESS, URL is set, CLASS isn't set +DTEND:19920416T133000Z +SUMMARY:Status is IN-PROCESS, URL is set, CLASS isn't set, from import STATUS:IN-PROCESS URL:https://www.davical.org CATEGORIES:FAMILY,FINANCE PRIORITY:1 END:VTODO END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user1/events/hand-crafted-vtodo-2.ics + + + BEGIN:VCALENDAR +PRODID:-//Puck Handcrafted VCAL//NONSGML Sunbird//EN +VERSION:2.0 +BEGIN:VTODO +UID:19930901T130000Z-123407@host.com +DTSTAMP:19930901T130000Z +DUE:19930516T045959Z +SUMMARY:Status is set to COMPLETED, empty URL, CLASS set, from PUT +CLASS:PUBLIC +CATEGORIES:FAMILY,FINANCE +STATUS:COMPLETED +URL: +COMPLETED:19950101T000000Z +PRIORITY:1 +END:VTODO +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user1/events/hand-crafted-vtodo-3.ics + + + BEGIN:VCALENDAR +PRODID:-//Puck Handcrafted VCAL//NONSGML Sunbird//EN +VERSION:2.0 +BEGIN:VTODO +UID:19930901T130000Z-123408@host.com +DTSTAMP:19930901T130000Z +DTSTART:19930415T133000Z +DTEND:19930416T133000Z +SUMMARY:Status is IN-PROCESS, URL is set, CLASS isn't set, from PUT +STATUS:IN-PROCESS +URL:https://www.davical.org +CATEGORIES:FAMILY,FINANCE +PRIORITY:1 +END:VTODO +END:VCALENDAR HTTP/1.1 200 OK diff --git a/testing/tests/regression-suite/2503-is-defined-REPORT-is-defined-URL.result b/testing/tests/regression-suite/2503-is-defined-REPORT-is-defined-URL.result index e15e5d4f..d91b7c8c 100644 --- a/testing/tests/regression-suite/2503-is-defined-REPORT-is-defined-URL.result +++ b/testing/tests/regression-suite/2503-is-defined-REPORT-is-defined-URL.result @@ -2,8 +2,8 @@ HTTP/1.1 207 Multi-Status Date: Dow, 01 Jan 2000 00:00:00 GMT DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule DAV: extended-mkcol, bind, addressbook, calendar-auto-schedule, calendar-proxy -ETag: "b9f1d001b8dd22ce62bf8e98c0bbca20" -Content-Length: 721 +ETag: "2d3006a2bd83544b013f68196a3fc5d0" +Content-Length: 1350 Content-Type: text/xml; charset="utf-8" @@ -20,13 +20,38 @@ BEGIN:VTODO UID:19920901T130000Z-123408@host.com DTSTAMP:19920901T130000Z DTSTART:19920415T133000Z -SUMMARY:Status is IN-PROCESS, URL is set, CLASS isn't set +DTEND:19920416T133000Z +SUMMARY:Status is IN-PROCESS, URL is set, CLASS isn't set, from import STATUS:IN-PROCESS URL:https://www.davical.org CATEGORIES:FAMILY,FINANCE PRIORITY:1 END:VTODO END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user1/events/hand-crafted-vtodo-3.ics + + + BEGIN:VCALENDAR +PRODID:-//Puck Handcrafted VCAL//NONSGML Sunbird//EN +VERSION:2.0 +BEGIN:VTODO +UID:19930901T130000Z-123408@host.com +DTSTAMP:19930901T130000Z +DTSTART:19930415T133000Z +DTEND:19930416T133000Z +SUMMARY:Status is IN-PROCESS, URL is set, CLASS isn't set, from PUT +STATUS:IN-PROCESS +URL:https://www.davical.org +CATEGORIES:FAMILY,FINANCE +PRIORITY:1 +END:VTODO +END:VCALENDAR HTTP/1.1 200 OK diff --git a/testing/tests/regression-suite/2504-is-defined-REPORT-is-not-defined-URL.result b/testing/tests/regression-suite/2504-is-defined-REPORT-is-not-defined-URL.result index 4915d675..7c52d1b6 100644 --- a/testing/tests/regression-suite/2504-is-defined-REPORT-is-not-defined-URL.result +++ b/testing/tests/regression-suite/2504-is-defined-REPORT-is-not-defined-URL.result @@ -2,8 +2,8 @@ HTTP/1.1 207 Multi-Status Date: Dow, 01 Jan 2000 00:00:00 GMT DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule DAV: extended-mkcol, bind, addressbook, calendar-auto-schedule, calendar-proxy -ETag: "50cac5fed58d0f6d00abd3453b758f25" -Content-Length: 1295 +ETag: "7cb8d3652fc88cbdce202a4028116fa2" +Content-Length: 2454 Content-Type: text/xml; charset="utf-8" @@ -21,7 +21,7 @@ UID:19970901T130000Z-123405@host.com DTSTAMP:19970901T130000Z DTSTART:19970415T133000Z DUE:19970516T045959Z -SUMMARY:Status is not set +SUMMARY:Status is not set, CLASS set, from import CLASS:CONFIDENTIAL CATEGORIES:FAMILY,FINANCE PRIORITY:1 @@ -44,7 +44,7 @@ BEGIN:VTODO UID:19920901T130000Z-123407@host.com DTSTAMP:19920901T130000Z DUE:19920516T045959Z -SUMMARY:Status is set to COMPLETED, empty URL, CLASS set +SUMMARY:Status is set to COMPLETED, empty URL, CLASS set, from import CLASS:PUBLIC CATEGORIES:FAMILY,FINANCE STATUS:COMPLETED @@ -53,6 +53,54 @@ COMPLETED:19940101T000000Z PRIORITY:1 END:VTODO END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user1/events/hand-crafted-vtodo-1.ics + + + BEGIN:VCALENDAR +PRODID:-//Puck Handcrafted VCAL//NONSGML Sunbird//EN +VERSION:2.0 +BEGIN:VTODO +UID:19980901T130000Z-123405@host.com +DTSTAMP:19980901T130000Z +DTSTART:19980415T133000Z +DUE:19980516T045959Z +SUMMARY:Status is not set, CLASS set, from PUT +CLASS:CONFIDENTIAL +CATEGORIES:FAMILY,FINANCE +PRIORITY:1 +END:VTODO +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user1/events/hand-crafted-vtodo-2.ics + + + BEGIN:VCALENDAR +PRODID:-//Puck Handcrafted VCAL//NONSGML Sunbird//EN +VERSION:2.0 +BEGIN:VTODO +UID:19930901T130000Z-123407@host.com +DTSTAMP:19930901T130000Z +DUE:19930516T045959Z +SUMMARY:Status is set to COMPLETED, empty URL, CLASS set, from PUT +CLASS:PUBLIC +CATEGORIES:FAMILY,FINANCE +STATUS:COMPLETED +URL: +COMPLETED:19950101T000000Z +PRIORITY:1 +END:VTODO +END:VCALENDAR HTTP/1.1 200 OK diff --git a/testing/tests/regression-suite/2505-is-defined-REPORT-is-defined-DUE.result b/testing/tests/regression-suite/2505-is-defined-REPORT-is-defined-DUE.result index 4915d675..7c52d1b6 100644 --- a/testing/tests/regression-suite/2505-is-defined-REPORT-is-defined-DUE.result +++ b/testing/tests/regression-suite/2505-is-defined-REPORT-is-defined-DUE.result @@ -2,8 +2,8 @@ HTTP/1.1 207 Multi-Status Date: Dow, 01 Jan 2000 00:00:00 GMT DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule DAV: extended-mkcol, bind, addressbook, calendar-auto-schedule, calendar-proxy -ETag: "50cac5fed58d0f6d00abd3453b758f25" -Content-Length: 1295 +ETag: "7cb8d3652fc88cbdce202a4028116fa2" +Content-Length: 2454 Content-Type: text/xml; charset="utf-8" @@ -21,7 +21,7 @@ UID:19970901T130000Z-123405@host.com DTSTAMP:19970901T130000Z DTSTART:19970415T133000Z DUE:19970516T045959Z -SUMMARY:Status is not set +SUMMARY:Status is not set, CLASS set, from import CLASS:CONFIDENTIAL CATEGORIES:FAMILY,FINANCE PRIORITY:1 @@ -44,7 +44,7 @@ BEGIN:VTODO UID:19920901T130000Z-123407@host.com DTSTAMP:19920901T130000Z DUE:19920516T045959Z -SUMMARY:Status is set to COMPLETED, empty URL, CLASS set +SUMMARY:Status is set to COMPLETED, empty URL, CLASS set, from import CLASS:PUBLIC CATEGORIES:FAMILY,FINANCE STATUS:COMPLETED @@ -53,6 +53,54 @@ COMPLETED:19940101T000000Z PRIORITY:1 END:VTODO END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user1/events/hand-crafted-vtodo-1.ics + + + BEGIN:VCALENDAR +PRODID:-//Puck Handcrafted VCAL//NONSGML Sunbird//EN +VERSION:2.0 +BEGIN:VTODO +UID:19980901T130000Z-123405@host.com +DTSTAMP:19980901T130000Z +DTSTART:19980415T133000Z +DUE:19980516T045959Z +SUMMARY:Status is not set, CLASS set, from PUT +CLASS:CONFIDENTIAL +CATEGORIES:FAMILY,FINANCE +PRIORITY:1 +END:VTODO +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user1/events/hand-crafted-vtodo-2.ics + + + BEGIN:VCALENDAR +PRODID:-//Puck Handcrafted VCAL//NONSGML Sunbird//EN +VERSION:2.0 +BEGIN:VTODO +UID:19930901T130000Z-123407@host.com +DTSTAMP:19930901T130000Z +DUE:19930516T045959Z +SUMMARY:Status is set to COMPLETED, empty URL, CLASS set, from PUT +CLASS:PUBLIC +CATEGORIES:FAMILY,FINANCE +STATUS:COMPLETED +URL: +COMPLETED:19950101T000000Z +PRIORITY:1 +END:VTODO +END:VCALENDAR HTTP/1.1 200 OK diff --git a/testing/tests/regression-suite/2506-is-defined-REPORT-is-not-defined-DUE.result b/testing/tests/regression-suite/2506-is-defined-REPORT-is-not-defined-DUE.result index e15e5d4f..d91b7c8c 100644 --- a/testing/tests/regression-suite/2506-is-defined-REPORT-is-not-defined-DUE.result +++ b/testing/tests/regression-suite/2506-is-defined-REPORT-is-not-defined-DUE.result @@ -2,8 +2,8 @@ HTTP/1.1 207 Multi-Status Date: Dow, 01 Jan 2000 00:00:00 GMT DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule DAV: extended-mkcol, bind, addressbook, calendar-auto-schedule, calendar-proxy -ETag: "b9f1d001b8dd22ce62bf8e98c0bbca20" -Content-Length: 721 +ETag: "2d3006a2bd83544b013f68196a3fc5d0" +Content-Length: 1350 Content-Type: text/xml; charset="utf-8" @@ -20,13 +20,38 @@ BEGIN:VTODO UID:19920901T130000Z-123408@host.com DTSTAMP:19920901T130000Z DTSTART:19920415T133000Z -SUMMARY:Status is IN-PROCESS, URL is set, CLASS isn't set +DTEND:19920416T133000Z +SUMMARY:Status is IN-PROCESS, URL is set, CLASS isn't set, from import STATUS:IN-PROCESS URL:https://www.davical.org CATEGORIES:FAMILY,FINANCE PRIORITY:1 END:VTODO END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user1/events/hand-crafted-vtodo-3.ics + + + BEGIN:VCALENDAR +PRODID:-//Puck Handcrafted VCAL//NONSGML Sunbird//EN +VERSION:2.0 +BEGIN:VTODO +UID:19930901T130000Z-123408@host.com +DTSTAMP:19930901T130000Z +DTSTART:19930415T133000Z +DTEND:19930416T133000Z +SUMMARY:Status is IN-PROCESS, URL is set, CLASS isn't set, from PUT +STATUS:IN-PROCESS +URL:https://www.davical.org +CATEGORIES:FAMILY,FINANCE +PRIORITY:1 +END:VTODO +END:VCALENDAR HTTP/1.1 200 OK diff --git a/testing/tests/regression-suite/2507-is-defined-REPORT-is-defined-CLASS.result b/testing/tests/regression-suite/2507-is-defined-REPORT-is-defined-CLASS.result index 4915d675..7c52d1b6 100644 --- a/testing/tests/regression-suite/2507-is-defined-REPORT-is-defined-CLASS.result +++ b/testing/tests/regression-suite/2507-is-defined-REPORT-is-defined-CLASS.result @@ -2,8 +2,8 @@ HTTP/1.1 207 Multi-Status Date: Dow, 01 Jan 2000 00:00:00 GMT DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule DAV: extended-mkcol, bind, addressbook, calendar-auto-schedule, calendar-proxy -ETag: "50cac5fed58d0f6d00abd3453b758f25" -Content-Length: 1295 +ETag: "7cb8d3652fc88cbdce202a4028116fa2" +Content-Length: 2454 Content-Type: text/xml; charset="utf-8" @@ -21,7 +21,7 @@ UID:19970901T130000Z-123405@host.com DTSTAMP:19970901T130000Z DTSTART:19970415T133000Z DUE:19970516T045959Z -SUMMARY:Status is not set +SUMMARY:Status is not set, CLASS set, from import CLASS:CONFIDENTIAL CATEGORIES:FAMILY,FINANCE PRIORITY:1 @@ -44,7 +44,7 @@ BEGIN:VTODO UID:19920901T130000Z-123407@host.com DTSTAMP:19920901T130000Z DUE:19920516T045959Z -SUMMARY:Status is set to COMPLETED, empty URL, CLASS set +SUMMARY:Status is set to COMPLETED, empty URL, CLASS set, from import CLASS:PUBLIC CATEGORIES:FAMILY,FINANCE STATUS:COMPLETED @@ -53,6 +53,54 @@ COMPLETED:19940101T000000Z PRIORITY:1 END:VTODO END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user1/events/hand-crafted-vtodo-1.ics + + + BEGIN:VCALENDAR +PRODID:-//Puck Handcrafted VCAL//NONSGML Sunbird//EN +VERSION:2.0 +BEGIN:VTODO +UID:19980901T130000Z-123405@host.com +DTSTAMP:19980901T130000Z +DTSTART:19980415T133000Z +DUE:19980516T045959Z +SUMMARY:Status is not set, CLASS set, from PUT +CLASS:CONFIDENTIAL +CATEGORIES:FAMILY,FINANCE +PRIORITY:1 +END:VTODO +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user1/events/hand-crafted-vtodo-2.ics + + + BEGIN:VCALENDAR +PRODID:-//Puck Handcrafted VCAL//NONSGML Sunbird//EN +VERSION:2.0 +BEGIN:VTODO +UID:19930901T130000Z-123407@host.com +DTSTAMP:19930901T130000Z +DUE:19930516T045959Z +SUMMARY:Status is set to COMPLETED, empty URL, CLASS set, from PUT +CLASS:PUBLIC +CATEGORIES:FAMILY,FINANCE +STATUS:COMPLETED +URL: +COMPLETED:19950101T000000Z +PRIORITY:1 +END:VTODO +END:VCALENDAR HTTP/1.1 200 OK diff --git a/testing/tests/regression-suite/2508-is-defined-REPORT-is-not-defined-CLASS.result b/testing/tests/regression-suite/2508-is-defined-REPORT-is-not-defined-CLASS.result index e15e5d4f..d91b7c8c 100644 --- a/testing/tests/regression-suite/2508-is-defined-REPORT-is-not-defined-CLASS.result +++ b/testing/tests/regression-suite/2508-is-defined-REPORT-is-not-defined-CLASS.result @@ -2,8 +2,8 @@ HTTP/1.1 207 Multi-Status Date: Dow, 01 Jan 2000 00:00:00 GMT DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule DAV: extended-mkcol, bind, addressbook, calendar-auto-schedule, calendar-proxy -ETag: "b9f1d001b8dd22ce62bf8e98c0bbca20" -Content-Length: 721 +ETag: "2d3006a2bd83544b013f68196a3fc5d0" +Content-Length: 1350 Content-Type: text/xml; charset="utf-8" @@ -20,13 +20,38 @@ BEGIN:VTODO UID:19920901T130000Z-123408@host.com DTSTAMP:19920901T130000Z DTSTART:19920415T133000Z -SUMMARY:Status is IN-PROCESS, URL is set, CLASS isn't set +DTEND:19920416T133000Z +SUMMARY:Status is IN-PROCESS, URL is set, CLASS isn't set, from import STATUS:IN-PROCESS URL:https://www.davical.org CATEGORIES:FAMILY,FINANCE PRIORITY:1 END:VTODO END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user1/events/hand-crafted-vtodo-3.ics + + + BEGIN:VCALENDAR +PRODID:-//Puck Handcrafted VCAL//NONSGML Sunbird//EN +VERSION:2.0 +BEGIN:VTODO +UID:19930901T130000Z-123408@host.com +DTSTAMP:19930901T130000Z +DTSTART:19930415T133000Z +DTEND:19930416T133000Z +SUMMARY:Status is IN-PROCESS, URL is set, CLASS isn't set, from PUT +STATUS:IN-PROCESS +URL:https://www.davical.org +CATEGORIES:FAMILY,FINANCE +PRIORITY:1 +END:VTODO +END:VCALENDAR HTTP/1.1 200 OK diff --git a/testing/tests/regression-suite/2509-is-defined-REPORT-is-defined-DTSTART.result b/testing/tests/regression-suite/2509-is-defined-REPORT-is-defined-DTSTART.result new file mode 100644 index 00000000..8cf42989 --- /dev/null +++ b/testing/tests/regression-suite/2509-is-defined-REPORT-is-defined-DTSTART.result @@ -0,0 +1,107 @@ +HTTP/1.1 207 Multi-Status +Date: Dow, 01 Jan 2000 00:00:00 GMT +DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule +DAV: extended-mkcol, bind, addressbook, calendar-auto-schedule, calendar-proxy +ETag: "6d71edd0742cade0b6dd7cf7dbc2accb" +Content-Length: 2477 +Content-Type: text/xml; charset="utf-8" + + + + + /caldav.php/user1/events/19970901T130000Z-123405host.com.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VTODO +UID:19970901T130000Z-123405@host.com +DTSTAMP:19970901T130000Z +DTSTART:19970415T133000Z +DUE:19970516T045959Z +SUMMARY:Status is not set, CLASS set, from import +CLASS:CONFIDENTIAL +CATEGORIES:FAMILY,FINANCE +PRIORITY:1 +END:VTODO +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user1/events/19920901T130000Z-123408host.com.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VTODO +UID:19920901T130000Z-123408@host.com +DTSTAMP:19920901T130000Z +DTSTART:19920415T133000Z +DTEND:19920416T133000Z +SUMMARY:Status is IN-PROCESS, URL is set, CLASS isn't set, from import +STATUS:IN-PROCESS +URL:https://www.davical.org +CATEGORIES:FAMILY,FINANCE +PRIORITY:1 +END:VTODO +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user1/events/hand-crafted-vtodo-1.ics + + + BEGIN:VCALENDAR +PRODID:-//Puck Handcrafted VCAL//NONSGML Sunbird//EN +VERSION:2.0 +BEGIN:VTODO +UID:19980901T130000Z-123405@host.com +DTSTAMP:19980901T130000Z +DTSTART:19980415T133000Z +DUE:19980516T045959Z +SUMMARY:Status is not set, CLASS set, from PUT +CLASS:CONFIDENTIAL +CATEGORIES:FAMILY,FINANCE +PRIORITY:1 +END:VTODO +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user1/events/hand-crafted-vtodo-3.ics + + + BEGIN:VCALENDAR +PRODID:-//Puck Handcrafted VCAL//NONSGML Sunbird//EN +VERSION:2.0 +BEGIN:VTODO +UID:19930901T130000Z-123408@host.com +DTSTAMP:19930901T130000Z +DTSTART:19930415T133000Z +DTEND:19930416T133000Z +SUMMARY:Status is IN-PROCESS, URL is set, CLASS isn't set, from PUT +STATUS:IN-PROCESS +URL:https://www.davical.org +CATEGORIES:FAMILY,FINANCE +PRIORITY:1 +END:VTODO +END:VCALENDAR + + + HTTP/1.1 200 OK + + + diff --git a/testing/tests/regression-suite/2509-is-defined-REPORT-is-defined-DTSTART.test b/testing/tests/regression-suite/2509-is-defined-REPORT-is-defined-DTSTART.test new file mode 100644 index 00000000..1af71b28 --- /dev/null +++ b/testing/tests/regression-suite/2509-is-defined-REPORT-is-defined-DTSTART.test @@ -0,0 +1,33 @@ +# +# is-defined REPORT +# +# Regression test for https://gitlab.com/davical-project/davical/-/issues/279 +# +# Check that DTSTART is defined. +# +TYPE=REPORT +URL=http://regression.host/caldav.php/user1/events/ +HEADER=Content-Type: text/xml; charset="UTF-8" +HEADER=Depth: 0 +HEAD + + +BEGINDATA + + + + + + + + + + + + + + + +ENDDATA + + diff --git a/testing/tests/regression-suite/2510-is-defined-REPORT-is-not-defined-DTSTART.result b/testing/tests/regression-suite/2510-is-defined-REPORT-is-not-defined-DTSTART.result new file mode 100644 index 00000000..7d588383 --- /dev/null +++ b/testing/tests/regression-suite/2510-is-defined-REPORT-is-not-defined-DTSTART.result @@ -0,0 +1,62 @@ +HTTP/1.1 207 Multi-Status +Date: Dow, 01 Jan 2000 00:00:00 GMT +DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule +DAV: extended-mkcol, bind, addressbook, calendar-auto-schedule, calendar-proxy +ETag: "ed5bce12bc74602dd4a4d8eaeab6d868" +Content-Length: 1327 +Content-Type: text/xml; charset="utf-8" + + + + + /caldav.php/user1/events/19920901T130000Z-123407host.com.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VTODO +UID:19920901T130000Z-123407@host.com +DTSTAMP:19920901T130000Z +DUE:19920516T045959Z +SUMMARY:Status is set to COMPLETED, empty URL, CLASS set, from import +CLASS:PUBLIC +CATEGORIES:FAMILY,FINANCE +STATUS:COMPLETED +URL: +COMPLETED:19940101T000000Z +PRIORITY:1 +END:VTODO +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user1/events/hand-crafted-vtodo-2.ics + + + BEGIN:VCALENDAR +PRODID:-//Puck Handcrafted VCAL//NONSGML Sunbird//EN +VERSION:2.0 +BEGIN:VTODO +UID:19930901T130000Z-123407@host.com +DTSTAMP:19930901T130000Z +DUE:19930516T045959Z +SUMMARY:Status is set to COMPLETED, empty URL, CLASS set, from PUT +CLASS:PUBLIC +CATEGORIES:FAMILY,FINANCE +STATUS:COMPLETED +URL: +COMPLETED:19950101T000000Z +PRIORITY:1 +END:VTODO +END:VCALENDAR + + + HTTP/1.1 200 OK + + + diff --git a/testing/tests/regression-suite/2510-is-defined-REPORT-is-not-defined-DTSTART.test b/testing/tests/regression-suite/2510-is-defined-REPORT-is-not-defined-DTSTART.test new file mode 100644 index 00000000..ec37623c --- /dev/null +++ b/testing/tests/regression-suite/2510-is-defined-REPORT-is-not-defined-DTSTART.test @@ -0,0 +1,33 @@ +# +# is-not-defined REPORT +# +# Regression test for https://gitlab.com/davical-project/davical/-/issues/279 +# +# Check that DTSTART is not defined. +# +TYPE=REPORT +URL=http://regression.host/caldav.php/user1/events/ +HEADER=Content-Type: text/xml; charset="UTF-8" +HEADER=Depth: 0 +HEAD + + +BEGINDATA + + + + + + + + + + + + + + + +ENDDATA + + diff --git a/testing/tests/regression-suite/2511-is-defined-REPORT-is-defined-DTEND.result b/testing/tests/regression-suite/2511-is-defined-REPORT-is-defined-DTEND.result new file mode 100644 index 00000000..d91b7c8c --- /dev/null +++ b/testing/tests/regression-suite/2511-is-defined-REPORT-is-defined-DTEND.result @@ -0,0 +1,60 @@ +HTTP/1.1 207 Multi-Status +Date: Dow, 01 Jan 2000 00:00:00 GMT +DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule +DAV: extended-mkcol, bind, addressbook, calendar-auto-schedule, calendar-proxy +ETag: "2d3006a2bd83544b013f68196a3fc5d0" +Content-Length: 1350 +Content-Type: text/xml; charset="utf-8" + + + + + /caldav.php/user1/events/19920901T130000Z-123408host.com.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VTODO +UID:19920901T130000Z-123408@host.com +DTSTAMP:19920901T130000Z +DTSTART:19920415T133000Z +DTEND:19920416T133000Z +SUMMARY:Status is IN-PROCESS, URL is set, CLASS isn't set, from import +STATUS:IN-PROCESS +URL:https://www.davical.org +CATEGORIES:FAMILY,FINANCE +PRIORITY:1 +END:VTODO +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user1/events/hand-crafted-vtodo-3.ics + + + BEGIN:VCALENDAR +PRODID:-//Puck Handcrafted VCAL//NONSGML Sunbird//EN +VERSION:2.0 +BEGIN:VTODO +UID:19930901T130000Z-123408@host.com +DTSTAMP:19930901T130000Z +DTSTART:19930415T133000Z +DTEND:19930416T133000Z +SUMMARY:Status is IN-PROCESS, URL is set, CLASS isn't set, from PUT +STATUS:IN-PROCESS +URL:https://www.davical.org +CATEGORIES:FAMILY,FINANCE +PRIORITY:1 +END:VTODO +END:VCALENDAR + + + HTTP/1.1 200 OK + + + diff --git a/testing/tests/regression-suite/2511-is-defined-REPORT-is-defined-DTEND.test b/testing/tests/regression-suite/2511-is-defined-REPORT-is-defined-DTEND.test new file mode 100644 index 00000000..69e89c80 --- /dev/null +++ b/testing/tests/regression-suite/2511-is-defined-REPORT-is-defined-DTEND.test @@ -0,0 +1,33 @@ +# +# is-defined REPORT +# +# Regression test for https://gitlab.com/davical-project/davical/-/issues/279 +# +# Check that DTEND is defined. +# +TYPE=REPORT +URL=http://regression.host/caldav.php/user1/events/ +HEADER=Content-Type: text/xml; charset="UTF-8" +HEADER=Depth: 0 +HEAD + + +BEGINDATA + + + + + + + + + + + + + + + +ENDDATA + + diff --git a/testing/tests/regression-suite/2512-is-defined-REPORT-is-not-defined-DTEND.result b/testing/tests/regression-suite/2512-is-defined-REPORT-is-not-defined-DTEND.result new file mode 100644 index 00000000..7c52d1b6 --- /dev/null +++ b/testing/tests/regression-suite/2512-is-defined-REPORT-is-not-defined-DTEND.result @@ -0,0 +1,109 @@ +HTTP/1.1 207 Multi-Status +Date: Dow, 01 Jan 2000 00:00:00 GMT +DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule +DAV: extended-mkcol, bind, addressbook, calendar-auto-schedule, calendar-proxy +ETag: "7cb8d3652fc88cbdce202a4028116fa2" +Content-Length: 2454 +Content-Type: text/xml; charset="utf-8" + + + + + /caldav.php/user1/events/19970901T130000Z-123405host.com.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VTODO +UID:19970901T130000Z-123405@host.com +DTSTAMP:19970901T130000Z +DTSTART:19970415T133000Z +DUE:19970516T045959Z +SUMMARY:Status is not set, CLASS set, from import +CLASS:CONFIDENTIAL +CATEGORIES:FAMILY,FINANCE +PRIORITY:1 +END:VTODO +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user1/events/19920901T130000Z-123407host.com.ics + + + BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +BEGIN:VTODO +UID:19920901T130000Z-123407@host.com +DTSTAMP:19920901T130000Z +DUE:19920516T045959Z +SUMMARY:Status is set to COMPLETED, empty URL, CLASS set, from import +CLASS:PUBLIC +CATEGORIES:FAMILY,FINANCE +STATUS:COMPLETED +URL: +COMPLETED:19940101T000000Z +PRIORITY:1 +END:VTODO +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user1/events/hand-crafted-vtodo-1.ics + + + BEGIN:VCALENDAR +PRODID:-//Puck Handcrafted VCAL//NONSGML Sunbird//EN +VERSION:2.0 +BEGIN:VTODO +UID:19980901T130000Z-123405@host.com +DTSTAMP:19980901T130000Z +DTSTART:19980415T133000Z +DUE:19980516T045959Z +SUMMARY:Status is not set, CLASS set, from PUT +CLASS:CONFIDENTIAL +CATEGORIES:FAMILY,FINANCE +PRIORITY:1 +END:VTODO +END:VCALENDAR + + + HTTP/1.1 200 OK + + + + /caldav.php/user1/events/hand-crafted-vtodo-2.ics + + + BEGIN:VCALENDAR +PRODID:-//Puck Handcrafted VCAL//NONSGML Sunbird//EN +VERSION:2.0 +BEGIN:VTODO +UID:19930901T130000Z-123407@host.com +DTSTAMP:19930901T130000Z +DUE:19930516T045959Z +SUMMARY:Status is set to COMPLETED, empty URL, CLASS set, from PUT +CLASS:PUBLIC +CATEGORIES:FAMILY,FINANCE +STATUS:COMPLETED +URL: +COMPLETED:19950101T000000Z +PRIORITY:1 +END:VTODO +END:VCALENDAR + + + HTTP/1.1 200 OK + + + diff --git a/testing/tests/regression-suite/2512-is-defined-REPORT-is-not-defined-DTEND.test b/testing/tests/regression-suite/2512-is-defined-REPORT-is-not-defined-DTEND.test new file mode 100644 index 00000000..f7fd40a5 --- /dev/null +++ b/testing/tests/regression-suite/2512-is-defined-REPORT-is-not-defined-DTEND.test @@ -0,0 +1,33 @@ +# +# is-not-defined REPORT +# +# Regression test for https://gitlab.com/davical-project/davical/-/issues/279 +# +# Check that DTEND is not defined. +# +TYPE=REPORT +URL=http://regression.host/caldav.php/user1/events/ +HEADER=Content-Type: text/xml; charset="UTF-8" +HEADER=Depth: 0 +HEAD + + +BEGINDATA + + + + + + + + + + + + + + + +ENDDATA + + diff --git a/testing/tests/regression-suite/2513-is-defined-REPORT-is-not-defined-DTEND-VEVENT.result b/testing/tests/regression-suite/2513-is-defined-REPORT-is-not-defined-DTEND-VEVENT.result new file mode 100644 index 00000000..96165fb0 --- /dev/null +++ b/testing/tests/regression-suite/2513-is-defined-REPORT-is-not-defined-DTEND-VEVENT.result @@ -0,0 +1,34 @@ +HTTP/1.1 207 Multi-Status +Date: Dow, 01 Jan 2000 00:00:00 GMT +DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule +DAV: extended-mkcol, bind, addressbook, calendar-auto-schedule, calendar-proxy +ETag: "d7f94e424da8a0734990704f42b308d4" +Content-Length: 679 +Content-Type: text/xml; charset="utf-8" + + + + + /caldav.php/user1/events/hand-crafted-vevent.ics + + + BEGIN:VCALENDAR +PRODID:-//Puck Handcrafted VCAL//NONSGML Sunbird//EN +VERSION:2.0 +BEGIN:VEVENT +SUMMARY:No DTEND, from PUT +DTSTART;VALUE=DATE:19971102 +DTSTAMP:19970901T130000Z +UID:19970901T130000Z-123403@example.com +RRULE:FREQ=YEARLY +CATEGORIES:ANNIVERSARY,PERSONAL,SPECIAL OCCASION +CLASS:CONFIDENTIAL +TRANSP:TRANSPARENT +END:VEVENT +END:VCALENDAR + + + HTTP/1.1 200 OK + + + diff --git a/testing/tests/regression-suite/2513-is-defined-REPORT-is-not-defined-DTEND-VEVENT.test b/testing/tests/regression-suite/2513-is-defined-REPORT-is-not-defined-DTEND-VEVENT.test new file mode 100644 index 00000000..14e0dc5e --- /dev/null +++ b/testing/tests/regression-suite/2513-is-defined-REPORT-is-not-defined-DTEND-VEVENT.test @@ -0,0 +1,33 @@ +# +# is-not-defined REPORT +# +# Regression test for https://gitlab.com/davical-project/davical/-/issues/279 +# +# Check that DTEND is not defined for a VEVENT. +# +TYPE=REPORT +URL=http://regression.host/caldav.php/user1/events/ +HEADER=Content-Type: text/xml; charset="UTF-8" +HEADER=Depth: 0 +HEAD + + +BEGINDATA + + + + + + + + + + + + + + + +ENDDATA + + diff --git a/testing/tests/regression-suite/Really-Upgrade-Database.result b/testing/tests/regression-suite/Really-Upgrade-Database.result index 9bdec045..1a6af925 100644 --- a/testing/tests/regression-suite/Really-Upgrade-Database.result +++ b/testing/tests/regression-suite/Really-Upgrade-Database.result @@ -1,4 +1,4 @@ -The database is version XX currently at revision 1.3.4. +The database is version XX currently at revision 1.3.5. No patches were applied. Supported locales updated. Updated view: dav_principal.sql applied. diff --git a/testing/tests/scheduling/Really-Upgrade-Database.result b/testing/tests/scheduling/Really-Upgrade-Database.result index 9bdec045..1a6af925 100644 --- a/testing/tests/scheduling/Really-Upgrade-Database.result +++ b/testing/tests/scheduling/Really-Upgrade-Database.result @@ -1,4 +1,4 @@ -The database is version XX currently at revision 1.3.4. +The database is version XX currently at revision 1.3.5. No patches were applied. Supported locales updated. Updated view: dav_principal.sql applied. diff --git a/testing/tests/timezone/Really-Upgrade-Database.result b/testing/tests/timezone/Really-Upgrade-Database.result index 299acd5c..1a6af925 100644 --- a/testing/tests/timezone/Really-Upgrade-Database.result +++ b/testing/tests/timezone/Really-Upgrade-Database.result @@ -1,4 +1,4 @@ -The database is version XX currently at revision 1.3.3. +The database is version XX currently at revision 1.3.5. No patches were applied. Supported locales updated. Updated view: dav_principal.sql applied.