mirror of
https://gitlab.com/davical-project/davical.git
synced 2026-01-27 00:33:34 +00:00
Store DTSTART and DTEND from user in shadow columns
We want to store the calculated dtstart and dtend in the database so we can use SQL to fetch records. However, we also need what the user sent us so we can allow prop-filters to be used as well. So we store what the user sends us in dtstart_orig and dtend_orig and only use for relevant prop-filter reports.
This commit is contained in:
parent
5a73991496
commit
15d01c8bed
@ -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' );
|
||||
|
||||
25
dba/patches/1.3.5.sql
Normal file
25
dba/patches/1.3.5.sql
Normal file
@ -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;
|
||||
@ -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 = <<<EOSQL
|
||||
INSERT INTO calendar_item (user_no, dav_name, dav_id, dav_etag, uid, dtstamp,
|
||||
dtstart, dtend, summary, location, class, transp,
|
||||
description, rrule, tz_id, last_modified, url, priority,
|
||||
created, due, percent_complete, status, collection_id,
|
||||
first_instance_start, last_instance_end )
|
||||
VALUES ( :user_no, :dav_name, currval('dav_id_seq'), :etag, :uid, :dtstamp,
|
||||
:dtstart, $dtend, :summary, :location, :class, :transp,
|
||||
:description, :rrule, :tzid, :modified, :url, :priority,
|
||||
:created, :due, :percent_complete, :status, $collection_id,
|
||||
:first_instance_start, :last_instance_end)
|
||||
dtstart, dtstart_orig, dtend, dtend_orig, summary, location, class, transp,
|
||||
description, rrule, tz_id, last_modified, url, priority, created, due,
|
||||
percent_complete, status, collection_id, first_instance_start,
|
||||
last_instance_end )
|
||||
VALUES ( :user_no, :dav_name, currval('dav_id_seq'), :etag, :uid, :dtstamp,
|
||||
:dtstart, :dtstart_orig, $dtend, :dtend_orig, :summary, :location, :class,
|
||||
:transp, :description, :rrule, :tzid, :modified, :url, :priority,
|
||||
:created, :due, :percent_complete, :status, $collection_id,
|
||||
:first_instance_start, :last_instance_end)
|
||||
EOSQL;
|
||||
$sync_change = 201;
|
||||
}
|
||||
else {
|
||||
$sql = <<<EOSQL
|
||||
UPDATE calendar_item SET dav_etag=:etag, uid=:uid, dtstamp=:dtstamp,
|
||||
dtstart=:dtstart, dtend=$dtend, summary=:summary, location=:location, class=:class, transp=:transp,
|
||||
description=:description, rrule=:rrule, tz_id=:tzid, last_modified=:modified, url=:url, priority=:priority,
|
||||
created=:created, due=:due, percent_complete=:percent_complete, status=:status,
|
||||
first_instance_start=:first_instance_start, last_instance_end=:last_instance_end
|
||||
WHERE user_no=:user_no AND dav_name=:dav_name
|
||||
dtstart=:dtstart, dtstart_orig=:dtstart_orig, dtend=$dtend,
|
||||
dtend_orig=:dtend_orig, summary=:summary, location=:location, class=:class,
|
||||
transp=:transp, description=:description, rrule=:rrule, tz_id=:tzid,
|
||||
last_modified=:modified, url=:url, priority=:priority, created=:created,
|
||||
due=:due, percent_complete=:percent_complete, status=:status,
|
||||
first_instance_start=:first_instance_start,
|
||||
last_instance_end=:last_instance_end
|
||||
WHERE user_no=:user_no AND dav_name=:dav_name
|
||||
EOSQL;
|
||||
$sync_change = 200;
|
||||
}
|
||||
|
||||
@ -1037,19 +1037,25 @@ UPDATE caldav_data SET user_no=:user_no, caldav_data=:dav_data, dav_etag=:etag,
|
||||
EOSQL;
|
||||
|
||||
$calitem_insert = <<<EOSQL
|
||||
INSERT INTO calendar_item (user_no, dav_name, dav_id, dav_etag, uid, dtstamp, dtstart, dtend, summary, location, class, transp,
|
||||
description, rrule, tz_id, last_modified, url, priority, created, due, percent_complete, status, collection_id )
|
||||
VALUES ( :user_no, :dav_name, currval('dav_id_seq'), :etag, :uid, :dtstamp, :dtstart, ##dtend##, :summary, :location, :class, :transp,
|
||||
:description, :rrule, :tzid, :modified, :url, :priority, :created, :due, :percent_complete, :status, :collection_id)
|
||||
INSERT INTO calendar_item (user_no, dav_name, dav_id, dav_etag, uid, dtstamp,
|
||||
dtstart, dtstart_orig, dtend, dtend_orig, summary, location, class, transp,
|
||||
description, rrule, tz_id, last_modified, url, priority, created, due,
|
||||
percent_complete, status, collection_id )
|
||||
VALUES ( :user_no, :dav_name, currval('dav_id_seq'), :etag, :uid, :dtstamp,
|
||||
:dtstart, :dtstart_orig, ##dtend##, :dtend_orig, :summary, :location,
|
||||
:class, :transp, :description, :rrule, :tzid, :modified, :url, :priority,
|
||||
:created, :due, :percent_complete, :status, :collection_id)
|
||||
EOSQL;
|
||||
|
||||
$calitem_update = <<<EOSQL
|
||||
UPDATE calendar_item SET user_no=:user_no, dav_etag=:etag, uid=:uid, dtstamp=:dtstamp,
|
||||
dtstart=:dtstart, dtend=##dtend##, summary=:summary, location=:location,
|
||||
class=:class, transp=:transp, description=:description, rrule=:rrule,
|
||||
tz_id=:tzid, last_modified=:modified, url=:url, priority=:priority,
|
||||
due=:due, percent_complete=:percent_complete, status=:status
|
||||
WHERE collection_id=:collection_id AND dav_name=:dav_name
|
||||
UPDATE calendar_item
|
||||
SET user_no=:user_no, dav_etag=:etag, uid=:uid, dtstamp=:dtstamp, dtstart=:dtstart,
|
||||
dtstart_orig=:dtstart_orig, dtend=##dtend##, summary=:summary,
|
||||
location=:location, class=:class, transp=:transp, description=:description,
|
||||
rrule=:rrule, tz_id=:tzid, last_modified=:modified, url=:url,
|
||||
priority=:priority, due=:due, percent_complete=:percent_complete,
|
||||
status=:status
|
||||
WHERE collection_id=:collection_id AND dav_name=:dav_name
|
||||
EOSQL;
|
||||
|
||||
$last_olson = '';
|
||||
@ -1080,7 +1086,9 @@ EOSQL;
|
||||
$dav_data_params[':session_user'] = $session->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 = <<<EOSQL
|
||||
INSERT INTO calendar_item (user_no, dav_name, dav_id, dav_etag, uid, dtstamp,
|
||||
dtstart, dtend, summary, location, class, transp,
|
||||
description, rrule, tz_id, last_modified, url, priority,
|
||||
created, due, percent_complete, status, collection_id,
|
||||
first_instance_start, last_instance_end )
|
||||
VALUES ( :user_no, :dav_name, :dav_id, :etag, :uid, :dtstamp,
|
||||
:dtstart, $dtend, :summary, :location, :class, :transp,
|
||||
:description, :rrule, :tzid, :modified, :url, :priority,
|
||||
:created, :due, :percent_complete, :status, :collection_id,
|
||||
:first_instance_start, :last_instance_end)
|
||||
dtstart, dtstart_orig, dtend, dtend_orig, summary, location, class, transp,
|
||||
description, rrule, tz_id, last_modified, url, priority, created, due,
|
||||
percent_complete, status, collection_id, first_instance_start,
|
||||
last_instance_end )
|
||||
VALUES ( :user_no, :dav_name, :dav_id, :etag, :uid, :dtstamp, :dtstart,
|
||||
:dtstart_orig, $dtend, :dtend_orig, :summary, :location, :class, :transp,
|
||||
:description, :rrule, :tzid, :modified, :url, :priority, :created, :due,
|
||||
:percent_complete, :status, :collection_id, :first_instance_start,
|
||||
:last_instance_end)
|
||||
EOSQL;
|
||||
$sync_change = 201;
|
||||
$calitem_params[':collection_id'] = $collection_id;
|
||||
@ -1651,12 +1665,14 @@ EOSQL;
|
||||
else {
|
||||
$sql = <<<EOSQL
|
||||
UPDATE calendar_item SET dav_etag=:etag, uid=:uid, dtstamp=:dtstamp,
|
||||
dtstart=:dtstart, dtend=$dtend, summary=:summary, location=:location,
|
||||
class=:class, transp=:transp, description=:description, rrule=:rrule,
|
||||
tz_id=:tzid, last_modified=:modified, url=:url, priority=:priority,
|
||||
due=:due, percent_complete=:percent_complete, status=:status,
|
||||
first_instance_start=:first_instance_start, last_instance_end=:last_instance_end
|
||||
WHERE dav_id=:dav_id
|
||||
dtstart=:dtstart, dtstart_orig=:dtstart_orig, dtend=$dtend,
|
||||
dtend_orig=:dtend_orig, summary=:summary, location=:location, class=:class,
|
||||
transp=:transp, description=:description, rrule=:rrule, tz_id=:tzid,
|
||||
last_modified=:modified, url=:url, priority=:priority, due=:due,
|
||||
percent_complete=:percent_complete, status=:status,
|
||||
first_instance_start=:first_instance_start,
|
||||
last_instance_end=:last_instance_end
|
||||
WHERE dav_id=:dav_id
|
||||
EOSQL;
|
||||
$sync_change = 200;
|
||||
}
|
||||
|
||||
@ -105,7 +105,15 @@ function SqlFilterFragment( $filter, $components, $property = null, $parameter =
|
||||
$base_property = $property;
|
||||
}
|
||||
|
||||
// For some tables we want to check that the user actually sent us,
|
||||
// and that may be in a column with a '_orig' suffix.
|
||||
$property_suffix = '';
|
||||
|
||||
switch( $base_property ) {
|
||||
case 'dtend':
|
||||
case 'dtstart':
|
||||
$property_suffix = '_orig';
|
||||
|
||||
case 'created':
|
||||
case 'completed': /** @todo when it can be handled in the SQL - see around line 200 below */
|
||||
case 'dtend':
|
||||
@ -158,7 +166,7 @@ function SqlFilterFragment( $filter, $components, $property = null, $parameter =
|
||||
}
|
||||
|
||||
if (isset($property_defined_match)) {
|
||||
$sql .= sprintf( "AND %s %s%s ", $property, $not_defined, $property_defined_match );
|
||||
$sql .= sprintf( "AND %s%s %s%s ", $property, $property_suffix, $not_defined, $property_defined_match );
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -8,7 +8,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
|
||||
@ -17,7 +17,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
|
||||
@ -29,7 +29,8 @@ 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
|
||||
|
||||
@ -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: "7f689d339d2aaa93571b78742a2e0f33"
|
||||
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: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<
|
||||
|
||||
@ -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
|
||||
@ -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<
|
||||
|
||||
@ -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
|
||||
@ -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<
|
||||
|
||||
@ -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
|
||||
@ -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<
|
||||
|
||||
@ -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
|
||||
@ -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"
|
||||
|
||||
<?xml version="1.0" encoding="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
|
||||
</C:calendar-data>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/user1/events/hand-crafted-vtodo-1.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:calendar-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
|
||||
</C:calendar-data>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
|
||||
@ -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"
|
||||
|
||||
<?xml version="1.0" encoding="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
|
||||
</C:calendar-data>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/user1/events/hand-crafted-vtodo-2.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:calendar-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
|
||||
</C:calendar-data>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/user1/events/hand-crafted-vtodo-3.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:calendar-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
|
||||
</C:calendar-data>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
|
||||
@ -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"
|
||||
|
||||
<?xml version="1.0" encoding="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
|
||||
</C:calendar-data>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/user1/events/hand-crafted-vtodo-3.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:calendar-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
|
||||
</C:calendar-data>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
|
||||
@ -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"
|
||||
|
||||
<?xml version="1.0" encoding="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
|
||||
</C:calendar-data>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/user1/events/hand-crafted-vtodo-1.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:calendar-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
|
||||
</C:calendar-data>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/user1/events/hand-crafted-vtodo-2.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:calendar-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
|
||||
</C:calendar-data>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
|
||||
@ -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"
|
||||
|
||||
<?xml version="1.0" encoding="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
|
||||
</C:calendar-data>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/user1/events/hand-crafted-vtodo-1.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:calendar-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
|
||||
</C:calendar-data>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/user1/events/hand-crafted-vtodo-2.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:calendar-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
|
||||
</C:calendar-data>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
|
||||
@ -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"
|
||||
|
||||
<?xml version="1.0" encoding="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
|
||||
</C:calendar-data>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/user1/events/hand-crafted-vtodo-3.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:calendar-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
|
||||
</C:calendar-data>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
|
||||
@ -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"
|
||||
|
||||
<?xml version="1.0" encoding="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
|
||||
</C:calendar-data>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/user1/events/hand-crafted-vtodo-1.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:calendar-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
|
||||
</C:calendar-data>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/user1/events/hand-crafted-vtodo-2.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:calendar-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
|
||||
</C:calendar-data>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
|
||||
@ -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"
|
||||
|
||||
<?xml version="1.0" encoding="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
|
||||
</C:calendar-data>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/user1/events/hand-crafted-vtodo-3.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:calendar-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
|
||||
</C:calendar-data>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
|
||||
@ -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"
|
||||
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<multistatus xmlns="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
|
||||
<response>
|
||||
<href>/caldav.php/user1/events/19970901T130000Z-123405host.com.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:calendar-data>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
|
||||
</C:calendar-data>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/user1/events/19920901T130000Z-123408host.com.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:calendar-data>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
|
||||
</C:calendar-data>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/user1/events/hand-crafted-vtodo-1.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:calendar-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
|
||||
</C:calendar-data>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/user1/events/hand-crafted-vtodo-3.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:calendar-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
|
||||
</C:calendar-data>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
</response>
|
||||
</multistatus>
|
||||
@ -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
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<C:calendar-query xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
|
||||
<D:prop>
|
||||
<C:calendar-data/>
|
||||
</D:prop>
|
||||
<C:filter>
|
||||
<C:comp-filter name="VCALENDAR">
|
||||
<C:comp-filter name="VTODO">
|
||||
<C:prop-filter name="DTSTART">
|
||||
<C:is-defined/>
|
||||
</C:prop-filter>
|
||||
</C:comp-filter>
|
||||
</C:comp-filter>
|
||||
</C:filter>
|
||||
</C:calendar-query>
|
||||
ENDDATA
|
||||
|
||||
|
||||
@ -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"
|
||||
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<multistatus xmlns="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
|
||||
<response>
|
||||
<href>/caldav.php/user1/events/19920901T130000Z-123407host.com.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:calendar-data>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
|
||||
</C:calendar-data>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/user1/events/hand-crafted-vtodo-2.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:calendar-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
|
||||
</C:calendar-data>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
</response>
|
||||
</multistatus>
|
||||
@ -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
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<C:calendar-query xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
|
||||
<D:prop>
|
||||
<C:calendar-data/>
|
||||
</D:prop>
|
||||
<C:filter>
|
||||
<C:comp-filter name="VCALENDAR">
|
||||
<C:comp-filter name="VTODO">
|
||||
<C:prop-filter name="DTSTART">
|
||||
<C:is-not-defined/>
|
||||
</C:prop-filter>
|
||||
</C:comp-filter>
|
||||
</C:comp-filter>
|
||||
</C:filter>
|
||||
</C:calendar-query>
|
||||
ENDDATA
|
||||
|
||||
|
||||
@ -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"
|
||||
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<multistatus xmlns="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
|
||||
<response>
|
||||
<href>/caldav.php/user1/events/19920901T130000Z-123408host.com.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:calendar-data>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
|
||||
</C:calendar-data>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/user1/events/hand-crafted-vtodo-3.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:calendar-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
|
||||
</C:calendar-data>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
</response>
|
||||
</multistatus>
|
||||
@ -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
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<C:calendar-query xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
|
||||
<D:prop>
|
||||
<C:calendar-data/>
|
||||
</D:prop>
|
||||
<C:filter>
|
||||
<C:comp-filter name="VCALENDAR">
|
||||
<C:comp-filter name="VTODO">
|
||||
<C:prop-filter name="DTEND">
|
||||
<C:is-defined/>
|
||||
</C:prop-filter>
|
||||
</C:comp-filter>
|
||||
</C:comp-filter>
|
||||
</C:filter>
|
||||
</C:calendar-query>
|
||||
ENDDATA
|
||||
|
||||
|
||||
@ -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"
|
||||
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<multistatus xmlns="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
|
||||
<response>
|
||||
<href>/caldav.php/user1/events/19970901T130000Z-123405host.com.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:calendar-data>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
|
||||
</C:calendar-data>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/user1/events/19920901T130000Z-123407host.com.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:calendar-data>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
|
||||
</C:calendar-data>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/user1/events/hand-crafted-vtodo-1.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:calendar-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
|
||||
</C:calendar-data>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/user1/events/hand-crafted-vtodo-2.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:calendar-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
|
||||
</C:calendar-data>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
</response>
|
||||
</multistatus>
|
||||
@ -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
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<C:calendar-query xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
|
||||
<D:prop>
|
||||
<C:calendar-data/>
|
||||
</D:prop>
|
||||
<C:filter>
|
||||
<C:comp-filter name="VCALENDAR">
|
||||
<C:comp-filter name="VTODO">
|
||||
<C:prop-filter name="DTEND">
|
||||
<C:is-not-defined/>
|
||||
</C:prop-filter>
|
||||
</C:comp-filter>
|
||||
</C:comp-filter>
|
||||
</C:filter>
|
||||
</C:calendar-query>
|
||||
ENDDATA
|
||||
|
||||
|
||||
@ -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"
|
||||
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<multistatus xmlns="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
|
||||
<response>
|
||||
<href>/caldav.php/user1/events/hand-crafted-vevent.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:calendar-data>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
|
||||
</C:calendar-data>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
</response>
|
||||
</multistatus>
|
||||
@ -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
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<C:calendar-query xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
|
||||
<D:prop>
|
||||
<C:calendar-data/>
|
||||
</D:prop>
|
||||
<C:filter>
|
||||
<C:comp-filter name="VCALENDAR">
|
||||
<C:comp-filter name="VEVENT">
|
||||
<C:prop-filter name="DTEND">
|
||||
<C:is-not-defined/>
|
||||
</C:prop-filter>
|
||||
</C:comp-filter>
|
||||
</C:comp-filter>
|
||||
</C:filter>
|
||||
</C:calendar-query>
|
||||
ENDDATA
|
||||
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user