mirror of
https://gitlab.com/davical-project/davical.git
synced 2026-05-19 01:34:26 +00:00
Regression tests that tickle #247
Zero duration meeting should have a zero duration time in Free/Busy, but doesn't, the times are whacky.
This commit is contained in:
parent
04f2da406e
commit
f82929e6a2
@ -0,0 +1,64 @@
|
|||||||
|
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: "8a414b95eff37e1c939823191048ed22"
|
||||||
|
Content-Length: 0
|
||||||
|
Content-Type: text/plain; charset="utf-8"
|
||||||
|
|
||||||
|
|
||||||
|
CalDAV Data: >BEGIN:VCALENDAR
|
||||||
|
VERSION:2.0
|
||||||
|
PRODID:-//davical.org//NONSGML AWL Calendar//EN
|
||||||
|
CALSCALE:GREGORIAN
|
||||||
|
BEGIN:VTIMEZONE
|
||||||
|
TZID:Pacific/Auckland
|
||||||
|
BEGIN:STANDARD
|
||||||
|
TZOFFSETFROM:+1300
|
||||||
|
TZOFFSETTO:+1200
|
||||||
|
DTSTART:19900318T030000
|
||||||
|
RRULE:FREQ=YEARLY;UNTIL=20070317T140000Z;BYMONTH=3;BYDAY=3SU
|
||||||
|
TZNAME:NZST
|
||||||
|
END:STANDARD
|
||||||
|
BEGIN:DAYLIGHT
|
||||||
|
TZOFFSETFROM:+1200
|
||||||
|
TZOFFSETTO:+1300
|
||||||
|
DTSTART:19901007T020000
|
||||||
|
RRULE:FREQ=YEARLY;UNTIL=20060930T140000Z;BYMONTH=10;BYDAY=1SU
|
||||||
|
TZNAME:NZDT
|
||||||
|
END:DAYLIGHT
|
||||||
|
END:VTIMEZONE
|
||||||
|
BEGIN:VEVENT
|
||||||
|
UID:zero-duration-event
|
||||||
|
DTSTAMP:20210918T123000
|
||||||
|
SUMMARY:Zero duration event
|
||||||
|
DESCRIPTION:Zero duration event
|
||||||
|
CREATED:20210918T123000
|
||||||
|
DTSTART;TZID=Pacific/Auckland:20210919T013000
|
||||||
|
DTEND;TZID=Pacific/Auckland:20210919T013000
|
||||||
|
END:VEVENT
|
||||||
|
END:VCALENDAR
|
||||||
|
<
|
||||||
|
caldav_type: >VEVENT<
|
||||||
|
class: >PUBLIC<
|
||||||
|
dav_etag: >8a414b95eff37e1c939823191048ed22<
|
||||||
|
description: >Zero duration event<
|
||||||
|
dtend: >2021-09-19 01:30:00<
|
||||||
|
dtstamp: >2021-09-18 12:30:00<
|
||||||
|
dtstart: >2021-09-19 01:30:00<
|
||||||
|
due: >NULL<
|
||||||
|
last_modified: >2021-09-18 12:30:00<
|
||||||
|
location: >NULL<
|
||||||
|
logged_user: >10<
|
||||||
|
percent_complete: >NULL<
|
||||||
|
priority: >NULL<
|
||||||
|
rrule: >NULL<
|
||||||
|
status: >NULL<
|
||||||
|
summary: >Zero duration event<
|
||||||
|
transp: >NULL<
|
||||||
|
tz_id: >Pacific/Auckland<
|
||||||
|
uid: >zero-duration-event<
|
||||||
|
url: >NULL<
|
||||||
|
user_no: >10<
|
||||||
|
~Duration: >00:00:00<
|
||||||
|
|
||||||
@ -0,0 +1,58 @@
|
|||||||
|
#
|
||||||
|
# Create a zero time event, should have zero time in Free/Busy
|
||||||
|
#
|
||||||
|
TYPE=PUT
|
||||||
|
URL=http://regression.host/caldav.php/user1/home/zero-duration-event.ics
|
||||||
|
HEADER=Content-Type: text/calendar
|
||||||
|
HEADER=User-Agent: RFC5545 Duration P0D
|
||||||
|
HEAD
|
||||||
|
|
||||||
|
|
||||||
|
BEGINDATA
|
||||||
|
BEGIN:VCALENDAR
|
||||||
|
VERSION:2.0
|
||||||
|
PRODID:-//davical.org//NONSGML AWL Calendar//EN
|
||||||
|
CALSCALE:GREGORIAN
|
||||||
|
BEGIN:VTIMEZONE
|
||||||
|
TZID:Pacific/Auckland
|
||||||
|
BEGIN:STANDARD
|
||||||
|
TZOFFSETFROM:+1300
|
||||||
|
TZOFFSETTO:+1200
|
||||||
|
DTSTART:19900318T030000
|
||||||
|
RRULE:FREQ=YEARLY;UNTIL=20070317T140000Z;BYMONTH=3;BYDAY=3SU
|
||||||
|
TZNAME:NZST
|
||||||
|
END:STANDARD
|
||||||
|
BEGIN:DAYLIGHT
|
||||||
|
TZOFFSETFROM:+1200
|
||||||
|
TZOFFSETTO:+1300
|
||||||
|
DTSTART:19901007T020000
|
||||||
|
RRULE:FREQ=YEARLY;UNTIL=20060930T140000Z;BYMONTH=10;BYDAY=1SU
|
||||||
|
TZNAME:NZDT
|
||||||
|
END:DAYLIGHT
|
||||||
|
END:VTIMEZONE
|
||||||
|
BEGIN:VEVENT
|
||||||
|
UID:zero-duration-event
|
||||||
|
DTSTAMP:20210918T123000
|
||||||
|
SUMMARY:Zero duration event
|
||||||
|
DESCRIPTION:Zero duration event
|
||||||
|
CREATED:20210918T123000
|
||||||
|
DTSTART;TZID=Pacific/Auckland:20210919T013000
|
||||||
|
DTEND;TZID=Pacific/Auckland:20210919T013000
|
||||||
|
END:VEVENT
|
||||||
|
END:VCALENDAR
|
||||||
|
ENDDATA
|
||||||
|
|
||||||
|
|
||||||
|
QUERY
|
||||||
|
SELECT caldav_data.user_no, caldav_data.dav_etag, caldav_type, logged_user,
|
||||||
|
uid, dtstamp, dtstart at time zone olson_name as dtstart,
|
||||||
|
dtend at time zone olson_name as dtend, due, summary, location,
|
||||||
|
description, priority, class, transp, rrule, url,
|
||||||
|
percent_complete, tz_id, status,
|
||||||
|
caldav_data AS " CalDAV Data", calendar_item.last_modified,
|
||||||
|
dtend - dtstart AS "~Duration"
|
||||||
|
FROM caldav_data JOIN calendar_item USING(dav_name) JOIN timezones ON (tz_id=tzid)
|
||||||
|
WHERE caldav_data.dav_name =
|
||||||
|
'/user1/home/zero-duration-event.ics';
|
||||||
|
ENDQUERY
|
||||||
|
|
||||||
@ -0,0 +1,25 @@
|
|||||||
|
HTTP/1.1 200 OK
|
||||||
|
Date: Dow, 01 Jan 2000 00:00:00 GMT
|
||||||
|
Content-Length: 310
|
||||||
|
Content-Type: text/calendar;charset=UTF-8
|
||||||
|
|
||||||
|
BEGIN:VCALENDAR
|
||||||
|
PRODID:-//davical.org//NONSGML AWL Calendar//EN
|
||||||
|
VERSION:2.0
|
||||||
|
CALSCALE:GREGORIAN
|
||||||
|
BEGIN:VFREEBUSY
|
||||||
|
DTSTAMP:yyyymmddThhmmssZ
|
||||||
|
DTSTART:correct
|
||||||
|
DTEND:correct
|
||||||
|
FREEBUSY:20210918T133000Z/20210918T133000Z
|
||||||
|
FREEBUSY:20210920T194500Z/20210920T203000Z
|
||||||
|
END:VFREEBUSY
|
||||||
|
END:VCALENDAR
|
||||||
|
|
||||||
|
a) Start: >2021-09-19 01:30:00<
|
||||||
|
b) Location: >Pacific/Auckland<
|
||||||
|
c) UTC Start: >20210918T133000Z<
|
||||||
|
d) UTC End: >20210918T133000Z<
|
||||||
|
rrule: >NULL<
|
||||||
|
status: >NULL<
|
||||||
|
|
||||||
@ -0,0 +1,33 @@
|
|||||||
|
#
|
||||||
|
# Request a freebusy report by URL
|
||||||
|
#
|
||||||
|
# The event that we care about has DTSTART of 20210918T133000Z.
|
||||||
|
#
|
||||||
|
TYPE=GET
|
||||||
|
URL=http://regression.host/freebusy.php/user1/home/?start=20210918T000000&period=P3D
|
||||||
|
HEAD
|
||||||
|
|
||||||
|
AUTH=user1:user1
|
||||||
|
|
||||||
|
REPLACE=/^DTSTAMP:\d{8}T\d{6}Z\r?$/DTSTAMP:yyyymmddThhmmssZ/
|
||||||
|
REPLACE=/^DTSTART:20210918T000000Z\r?$/DTSTART:correct/
|
||||||
|
REPLACE=/^DTEND:20210921T000000Z\r?$/DTEND:correct/
|
||||||
|
|
||||||
|
QUERY
|
||||||
|
SELECT calendar_item.rrule, calendar_item.status,
|
||||||
|
dtstart AT TIME ZONE olson_name AS "a) Start",
|
||||||
|
olson_name AS "b) Location",
|
||||||
|
to_char(calendar_item.dtstart at time zone 'GMT','YYYYMMDD"T"HH24MISS"Z"') AS "c) UTC Start",
|
||||||
|
to_char(calendar_item.dtend at time zone 'GMT','YYYYMMDD"T"HH24MISS"Z"') AS "d) UTC End"
|
||||||
|
FROM usr INNER JOIN collection USING (user_no)
|
||||||
|
INNER JOIN caldav_data USING (collection_id)
|
||||||
|
INNER JOIN calendar_item USING(dav_id)
|
||||||
|
LEFT JOIN timezones ON (tz_id=tzid)
|
||||||
|
WHERE caldav_data.dav_name ~ '^/user1/home/'
|
||||||
|
AND collection.is_calendar AND collection.schedule_transp = 'opaque'
|
||||||
|
AND rrule_event_overlaps( dtstart, dtend, rrule, '20210918T000000Z', '20210921T000000Z' )
|
||||||
|
AND caldav_data.caldav_type IN ( 'VEVENT', 'VFREEBUSY' )
|
||||||
|
AND (calendar_item.transp != 'TRANSPARENT' OR calendar_item.transp IS NULL)
|
||||||
|
AND (calendar_item.status != 'CANCELLED' OR calendar_item.status IS NULL)
|
||||||
|
ORDER BY 3
|
||||||
|
ENDQUERY
|
||||||
Loading…
x
Reference in New Issue
Block a user