Merge branch 'master' of github.com:DAViCal/davical into github
[davical.git] / testing / tests / regression-suite / 0516-iCal-POST.test
blob2c607b6fdac9facaa7ed6e1b98761e2cee8c1a4b
2 # Testing for how iCal does a POST for free/busy
4 TYPE=POST
5 URL=http://regression.host/caldav.php/user1/.out/
6 HEADER=User-Agent: DAVKit/3.0.4 (652); CalendarStore/3.0.5 (841); iCal/3.0.5 (1270); Mac OS X/10.5.5 (9F33)
7 HEADER=Recipient: mailto:user2@example.net
8 HEADER=Content-Type: text/calendar
9 HEADER=Originator: mailto:user1@example.net
12 BEGINDATA
13 BEGIN:VCALENDAR
14 PRODID:-//Apple Inc.//iCal 3.0//EN
15 CALSCALE:GREGORIAN
16 VERSION:2.0
17 METHOD:REQUEST
18 BEGIN:VFREEBUSY
19 DTSTART:20081022T054500Z
20 UID:89E43E7F-911D-4052-9FE3-4782268649E0
21 ORGANIZER:mailto:user1@example.net
22 X-WR-ATTENDEE:mailto:user2@example.net
23 DTSTAMP:20081025T112708Z
24 SUMMARY:Availability for mailto:user2@example.net
25 CREATED:20081025T112708Z
26 DTEND:20081024T083000Z
27 X-CALENDARSERVER-MASK-UID:174F9C2A-1223-40C4-9E06-6E91F2EA9491
28 END:VFREEBUSY
29 END:VCALENDAR
30 ENDDATA
32 REPLACE=#<creationdate>\d{8}T\d{6}</creationdate>#<creationdate>YYYYMMDDThhmmss</creationdate>#
33 REPLACE=/^DTSTAMP:\d{4}[01]\d[0123]\dT[012]\d[0-5]\d[0-6]\dZ\r?$/DTSTAMP:yyyymmddThhmmssZ/
35 QUERY
36 SELECT calendar_item.rrule, calendar_item.status,
37        dtstart AT TIME ZONE olson_name AS "a)    Start",
38        olson_name AS "b) Location",
39        to_char(calendar_item.dtstart at time zone 'GMT','YYYYMMDD"T"HH24MISS"Z"') AS "c)UTC Start",
40        to_char(calendar_item.dtend at time zone 'GMT','YYYYMMDD"T"HH24MISS"Z"') AS "d)  UTC End"
41  FROM usr INNER JOIN collection USING (user_no)
42           INNER JOIN caldav_data USING (collection_id)
43           INNER JOIN calendar_item USING(dav_id)
44           LEFT JOIN timezones ON (tz_id=tzid)
45 WHERE caldav_data.dav_name ~ '^/user2/'
46   AND collection.is_calendar
47   AND rrule_event_overlaps( dtstart, dtend, rrule, '20081022T054500Z', '20081024T083000Z' )
48   AND caldav_data.caldav_type IN ( 'VEVENT', 'VFREEBUSY' )
49   AND (calendar_item.transp != 'TRANSPARENT' OR calendar_item.transp IS NULL)
50   AND (calendar_item.status != 'CANCELLED' OR calendar_item.status IS NULL)
51  ORDER BY 2, 3
52 ENDQUERY