Current regression tests.

This commit is contained in:
Andrew McMillan 2010-03-20 01:09:22 +13:00
parent 8811f48388
commit 94446f98ca
27 changed files with 674 additions and 19 deletions

View File

@ -18,7 +18,6 @@ ENDSQL
HEADER=Depth: 0
HEADER=Timeout: Infinite,Second-4100000000
HEADER=Content-type: text/xml; charset="utf-8"
HEADER=Lock-Token: <opaquelocktoken:##locktoken##>
HEAD

View File

@ -12,8 +12,10 @@ Content-Type: text/xml; charset="utf-8"
</response>
</multistatus>
changed_last_60se: >1<
dav_displayname: >User One's Calendar<
changed_last_5m: >1<
dav_displayname: >User One's Transparent Calendar<
is_addressbook: >0<
is_calendar: >1<
resourcetypes: ><DAV::collection/><urn:ietf:params:xml:ns:caldav:calendar/><
schedule_transp: >transparent<

View File

@ -2,7 +2,7 @@
# Check for support of PROPPATCH method
#
# Convert the collection back to a calendar, change the displayname
# again, and remove the owner property.
# again, set the calendar as transparent and remove the arbitrary property.
#
TYPE=PROPPATCH
URL=http://regression.host/caldav.php/user1/home/
@ -12,14 +12,18 @@ HEAD
BEGINDATA
<?xml version="1.0" encoding="utf-8" ?>
<propertyupdate xmlns="DAV:">
<propertyupdate xmlns="DAV:"
xmlns:C="urn:ietf:params:xml:ns:caldav">
<set>
<prop>
<resourcetype>
<collection/>
<calendar xmlns="urn:ietf:params:xml:ns:caldav"/>
<C:calendar/>
</resourcetype>
<displayname>User One's Calendar</displayname>
<displayname>User One's Transparent Calendar</displayname>
<C:schedule-calendar-transp>
<C:transparent/>
</C:schedule-calendar-transp>
</prop>
</set>
<remove>
@ -27,11 +31,12 @@ BEGINDATA
<arbitrary xmlns="urn:mcmillan:bogus:xml:ns:davical"/>
</prop>
</remove>
</propertyupdate>
</propertyupdate>
ENDDATA
QUERY
SELECT dav_displayname, is_calendar, resourcetypes,
modified > (current_timestamp - '60 seconds'::interval) AS changed_last_60secs
SELECT dav_displayname, is_calendar, is_addressbook, resourcetypes,
modified > (current_timestamp - '5 minutes'::interval) AS changed_last_5m,
schedule_transp
FROM collection WHERE dav_name = '/user1/home/';
ENDQUERY

View File

@ -24,7 +24,7 @@ Content-Type: text/xml; charset="utf-8"
</multistatus>
changed_last_60se: >1<
dav_displayname: >User One's Calendar<
dav_displayname: >User One's Transparent Calendar<
is_calendar: >1<
resourcetypes: ><DAV::collection/><urn:ietf:params:xml:ns:caldav:calendar/><

View File

@ -7,7 +7,7 @@
<owner>
<href>/caldav.php/user1/</href>
</owner>
<displayname>User One's Calendar</displayname>
<displayname>User One's Transparent Calendar</displayname>
</prop>
<status>HTTP/1.1 200 OK</status>
</propstat>

View File

@ -17,4 +17,5 @@ Content-Type: text/xml; charset="utf-8"
is_addressbook: >0<
is_calendar: >1<
resourcetypes: ><DAV::collection/><urn:ietf:params:xml:ns:caldav:calendar/><http://xmlns.comical.net/birds:spotted-grebe/><
schedule_transp: >opaque<

View File

@ -11,7 +11,7 @@ HEAD
BEGINDATA
<?xml version="1.0" encoding="utf-8" ?>
<propertyupdate xmlns="DAV:">
<propertyupdate xmlns="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
<set>
<prop>
<resourcetype>
@ -20,6 +20,9 @@ BEGINDATA
<spotted-grebe xmlns="http://xmlns.comical.net/birds"/>
</resourcetype>
<displayname>User 1's Calendaranza</displayname>
<C:schedule-calendar-transp>
<C:opaque/>
</C:schedule-calendar-transp>
</prop>
</set>
</propertyupdate>
@ -27,6 +30,7 @@ ENDDATA
QUERY
SELECT dav_displayname, is_addressbook, is_calendar, resourcetypes,
modified > (current_timestamp - '5 minutes'::interval) AS changed_last_5m
modified > (current_timestamp - '5 minutes'::interval) AS changed_last_5m,
schedule_transp
FROM collection WHERE dav_name = '/user1/home/';
ENDQUERY

View File

@ -1,14 +1,14 @@
HTTP/1.1 400 Bad Request
Date: Dow, 01 Jan 2000 00:00:00 GMT
DAV: 1, 2, access-control, calendar-access, calendar-schedule, extended-mkcol, calendar-proxy
ETag: "7bc3d8a76fb705dfff8a6654bb8d7fb8"
Content-Length: 155
ETag: "567b0424ecca3303b030d882be2093ef"
Content-Length: 86
Connection: close
Content-Type: text/xml; charset="utf-8"
<?xml version="1.0" encoding="utf-8" ?>
<error xmlns="DAV:" xmlns:T="http://www.xythos.com/namespaces/StorageServer">
<missing-xml-for-request/>
<error xmlns="DAV:">
<invalid-xml/>
</error>
dav_owner_id: >3<

View File

@ -8,7 +8,12 @@
<resource-id>
<href>/caldav.php/.resources/6</href>
</resource-id>
<parent-set/>
<parent-set>
<parent>
<href>/caldav.php</href>
<segment>user4</segment>
</parent>
</parent-set>
</prop>
<status>HTTP/1.1 200 OK</status>
</propstat>

View File

@ -0,0 +1,16 @@
HTTP/1.1 201 Created
Date: Dow, 01 Jan 2000 00:00:00 GMT
DAV: 1, 2, access-control, calendar-access, calendar-schedule, extended-mkcol, calendar-proxy
Cache-Control: no-cache
Content-Length: 0
Content-Type: text/plain; charset="utf-8"
dav_displayname: >A normal collection<
is_addressbook: >0<
is_calendar: >0<
parent_container: >/user4/<
public_events_onl: >0<
resourcetypes: ><DAV::collection/><
user_no: >13<

View File

@ -0,0 +1,29 @@
#
# Extended MKCOL test - Normal collection to create off a principal-URL
#
TYPE=MKCOL
URL=http://regression.host/caldav.php/user4/base/
HEADER=Content-Type: text/xml
AUTH=user4:user4
HEAD
BEGINDATA
<?xml version="1.0" encoding="UTF-8" ?>
<mkcol xmlns="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
<set>
<prop>
<displayname>A normal collection</displayname>
</prop>
</set>
</mkcol>
ENDDATA
QUERY
SELECT user_no, parent_container, dav_displayname,
is_calendar, public_events_only, is_addressbook, resourcetypes
FROM collection
WHERE dav_name ~ '/user4/base/';
ENDQUERY

View File

@ -0,0 +1,28 @@
HTTP/1.1 201 Created
Date: Dow, 01 Jan 2000 00:00:00 GMT
DAV: 1, 2, access-control, calendar-access, calendar-schedule, extended-mkcol, calendar-proxy
Cache-Control: no-cache
Content-Length: 0
Content-Type: text/plain; charset="utf-8"
dav_displayname: >A normal collection<
dav_name: >/user4/base/<
is_addressbook: >0<
is_calendar: >0<
parent_container: >/user4/<
public_events_onl: >0<
resourcetypes: ><DAV::collection/><
schedule_transp: >opaque<
user_no: >13<
dav_displayname: >A sub collection<
dav_name: >/user4/base/calendar/<
is_addressbook: >0<
is_calendar: >1<
parent_container: >/user4/base/<
public_events_onl: >0<
resourcetypes: ><DAV::collection/><urn:ietf:params:xml:ns:caldav:calendar/><
schedule_transp: >opaque<
user_no: >13<

View File

@ -0,0 +1,37 @@
#
# Extended MKCOL test - Sub collection to create off a normal collection
#
TYPE=MKCOL
URL=http://regression.host/caldav.php/user4/base/calendar/
HEADER=Content-Type: text/xml
AUTH=user4:user4
HEAD
BEGINDATA
<?xml version="1.0" encoding="UTF-8" ?>
<mkcol xmlns="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
<set>
<prop>
<resourcetype>
<collection/>
<C:calendar/>
</resourcetype>
<displayname>A sub collection</displayname>
<C:schedule-calendar-transp>
<C:transparent/>
</C:schedule-calendar-transp>
</prop>
</set>
</mkcol>
ENDDATA
QUERY
SELECT user_no, parent_container, dav_displayname, dav_name,
is_calendar, public_events_only, is_addressbook, resourcetypes,
schedule_transp
FROM collection
WHERE dav_name ~ '/user4/base/';
ENDQUERY

View File

@ -0,0 +1,29 @@
HTTP/1.1 201 Created
Date: Dow, 01 Jan 2000 00:00:00 GMT
DAV: 1, 2, access-control, calendar-access, calendar-schedule, extended-mkcol, calendar-proxy
Location: /caldav.php/user4/base/user1/
Content-Length: 0
Content-Type: text/plain; charset="utf-8"
bind_id: >1430<
bound_source_id: >11<
dav_displayname: >Updated Displayname with PROPPATCH<
dav_name: >/user4/user2/<
length: >8<
parent_container: >/user4/<
bind_id: >1431<
bound_source_id: >10<
dav_displayname: >User 1's Calendaranza<
dav_name: >/user4/user1/<
length: >8<
parent_container: >/user4/<
bind_id: >1435<
bound_source_id: >10<
dav_displayname: >User 1's Calendaranza<
dav_name: >/user4/base/user1/<
length: >8<
parent_container: >/user4/base/<

View File

@ -0,0 +1,38 @@
#
# BIND a collection into an additional location
# also applying a ticket during the bind
#
TYPE=BIND
URL=http://regression.host/caldav.php/user4/base/
AUTH=user4:user4
# Get the ticket we created earlier in 948...
GETSQL=ticket
SELECT ticket_id FROM access_ticket
WHERE target_collection_id = 10 AND target_resource_id is null;
ENDSQL
HEADER=User-Agent: Ticket Spec Tests
HEADER=Content-Type: text/xml; charset="UTF-8"
HEADER=Ticket: ##ticket##
HEAD
BEGINDATA
<?xml version="1.0" encoding="utf-8"?>
<bind xmlns="DAV:">
<segment>user1</segment>
<href>/caldav.php/user1/home</href>
</bind>
ENDDATA
QUERY
SELECT bind_id,
bound_source_id,
length(access_ticket_id),
parent_container,
dav_name,
dav_displayname
FROM dav_binding
ENDQUERY

View File

@ -0,0 +1,36 @@
HTTP/1.1 201 Created
Date: Dow, 01 Jan 2000 00:00:00 GMT
DAV: 1, 2, access-control, calendar-access, calendar-schedule, extended-mkcol, calendar-proxy
Location: /caldav.php/user4/base/user2/
Content-Length: 0
Content-Type: text/plain; charset="utf-8"
bind_id: >1430<
bound_source_id: >11<
dav_displayname: >Updated Displayname with PROPPATCH<
dav_name: >/user4/user2/<
length: >8<
parent_container: >/user4/<
bind_id: >1431<
bound_source_id: >10<
dav_displayname: >User 1's Calendaranza<
dav_name: >/user4/user1/<
length: >8<
parent_container: >/user4/<
bind_id: >1435<
bound_source_id: >10<
dav_displayname: >User 1's Calendaranza<
dav_name: >/user4/base/user1/<
length: >8<
parent_container: >/user4/base/<
bind_id: >1436<
bound_source_id: >11<
dav_displayname: >User 2's Calendar, as uploaded by Admin<
dav_name: >/user4/base/user2/<
length: >8<
parent_container: >/user4/base/<

View File

@ -0,0 +1,38 @@
#
# BIND a collection into an additional location
# also applying a ticket during the bind
#
TYPE=BIND
URL=http://regression.host/caldav.php/user4/base/
AUTH=user4:user4
# Get the ticket we created earlier in 948...
GETSQL=ticket
SELECT ticket_id FROM access_ticket
WHERE target_collection_id = 11 AND target_resource_id is null;
ENDSQL
HEADER=User-Agent: Ticket Spec Tests
HEADER=Content-Type: text/xml; charset="UTF-8"
HEADER=Ticket: ##ticket##
HEAD
BEGINDATA
<?xml version="1.0" encoding="utf-8"?>
<bind xmlns="DAV:">
<segment>user2</segment>
<href>/caldav.php/user2/home/</href>
</bind>
ENDDATA
QUERY
SELECT bind_id,
bound_source_id,
length(access_ticket_id),
parent_container,
dav_name,
dav_displayname
FROM dav_binding
ENDQUERY

View File

@ -0,0 +1,38 @@
HTTP/1.1 403 Forbidden
Date: Dow, 01 Jan 2000 00:00:00 GMT
DAV: 1, 2, access-control, calendar-access, calendar-schedule, extended-mkcol, calendar-proxy
Content-Length: 138
Content-Type: text/xml; charset="utf-8"
<?xml version="1.0" encoding="utf-8" ?>
<error xmlns="DAV:">
<DAV::can-overwrite/>A resource already exists at the destination.
</error>
bind_id: >1430<
bound_source_id: >11<
dav_displayname: >Updated Displayname with PROPPATCH<
dav_name: >/user4/user2/<
length: >8<
parent_container: >/user4/<
bind_id: >1431<
bound_source_id: >10<
dav_displayname: >User 1's Calendaranza<
dav_name: >/user4/user1/<
length: >8<
parent_container: >/user4/<
bind_id: >1435<
bound_source_id: >10<
dav_displayname: >User 1's Calendaranza<
dav_name: >/user4/base/user1/<
length: >8<
parent_container: >/user4/base/<
bind_id: >1436<
bound_source_id: >11<
dav_displayname: >User 2's Calendar, as uploaded by Admin<
dav_name: >/user4/base/user2/<
length: >8<
parent_container: >/user4/base/<

View File

@ -0,0 +1,38 @@
#
# BIND a collection into an additional location
# also applying a ticket during the bind
#
TYPE=BIND
URL=http://regression.host/caldav.php/user4/base/
AUTH=user4:user4
# Get the ticket we created earlier in 948...
GETSQL=ticket
SELECT ticket_id FROM access_ticket
WHERE target_collection_id = 11 AND target_resource_id is null;
ENDSQL
HEADER=User-Agent: Ticket Spec Tests
HEADER=Content-Type: text/xml; charset="UTF-8"
HEADER=Ticket: ##ticket##
HEAD
BEGINDATA
<?xml version="1.0" encoding="utf-8"?>
<bind xmlns="DAV:">
<segment>user2</segment>
<href>/caldav.php/user2/home</href>
</bind>
ENDDATA
QUERY
SELECT bind_id,
bound_source_id,
length(access_ticket_id),
parent_container,
dav_name,
dav_displayname
FROM dav_binding
ENDQUERY

View File

@ -0,0 +1,109 @@
<?xml version="1.0" encoding="utf-8" ?>
<multistatus xmlns="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav" xmlns:X="http://xmlns.comical.net/birds" xmlns:X1="http://xmlns.davical.org/davical">
<response>
<href>/caldav.php/user4/base/</href>
<propstat>
<prop>
<displayname>A normal collection</displayname>
<resource-id>
<href>/caldav.php/.resources/1433</href>
</resource-id>
<parent-set>
<parent>
<href>/caldav.php/user4</href>
<segment>base</segment>
</parent>
</parent-set>
<resourcetype>
<collection/>
</resourcetype>
</prop>
<status>HTTP/1.1 200 OK</status>
</propstat>
</response>
<response>
<href>/caldav.php/user4/base/user1/</href>
<propstat>
<prop>
<displayname>User 1's Calendaranza</displayname>
<resource-id>
<href>/caldav.php/.resources/10</href>
</resource-id>
<parent-set>
<parent>
<href>/caldav.php/user1</href>
<segment>home</segment>
</parent>
<parent>
<href>/caldav.php/user4</href>
<segment>user1</segment>
</parent>
<parent>
<href>/caldav.php/user4/base</href>
<segment>user1</segment>
</parent>
</parent-set>
<resourcetype>
<collection/>
<C:calendar/>
<X:spotted-grebe/>
<X1:webdav-binding/>
</resourcetype>
</prop>
<status>HTTP/1.1 200 OK</status>
</propstat>
</response>
<response>
<href>/caldav.php/user4/base/user2/</href>
<propstat>
<prop>
<displayname>User 2's Calendar, as uploaded by Admin</displayname>
<resource-id>
<href>/caldav.php/.resources/11</href>
</resource-id>
<parent-set>
<parent>
<href>/caldav.php/user2</href>
<segment>home</segment>
</parent>
<parent>
<href>/caldav.php/user4</href>
<segment>user2</segment>
</parent>
<parent>
<href>/caldav.php/user4/base</href>
<segment>user2</segment>
</parent>
</parent-set>
<resourcetype>
<collection/>
<C:calendar/>
<X1:webdav-binding/>
</resourcetype>
</prop>
<status>HTTP/1.1 200 OK</status>
</propstat>
</response>
<response>
<href>/caldav.php/user4/base/calendar/</href>
<propstat>
<prop>
<displayname>A sub collection</displayname>
<resource-id>
<href>/caldav.php/.resources/1434</href>
</resource-id>
<parent-set>
<parent>
<href>/caldav.php/user4/base</href>
<segment>calendar</segment>
</parent>
</parent-set>
<resourcetype>
<collection/>
<C:calendar/>
</resourcetype>
</prop>
<status>HTTP/1.1 200 OK</status>
</propstat>
</response>
</multistatus>

View File

@ -0,0 +1,25 @@
#
# PROPFIND on a collection in which we have binds & collections
#
TYPE=PROPFIND
URL=http://regression.host/caldav.php/user4/base/
AUTH=user4:user4
HEADER=User-Agent: BIND Spec Tests
HEADER=Content-Type: text/xml; charset="UTF-8"
HEADER=Depth: 1
BEGINDATA
<?xml version="1.0" encoding="utf-8"?>
<propfind xmlns="DAV:">
<prop>
<displayname/>
<resource-id/>
<parent-set/>
<resourcetype/>
</prop>
</propfind>
ENDDATA
# <current-user-privilege-set/>

View File

@ -0,0 +1,18 @@
HTTP/1.1 201 Created
Date: Dow, 01 Jan 2000 00:00:00 GMT
DAV: 1, 2, access-control, calendar-access, calendar-schedule, extended-mkcol, calendar-proxy
ETag: "1c7895f11787e71fd6dbe3260d72d4a0"
Content-Length: 0
Content-Type: text/plain; charset="utf-8"
dav_etag: >9a8d7696ee2e0a0f1f4170fe4f094a3a<
dav_name: >/user2/home/thiswillworkfine.ics<
dtstart: >2010-03-22 18:00:00+13<
summary: >Test adding an event to a bound collection<
dav_etag: >1c7895f11787e71fd6dbe3260d72d4a0<
dav_name: >/user2/home/thiswillalsobegood.ics<
dtstart: >2004-01-01 12:00:00+13<
summary: >Release DAViCal 0.9.9<

View File

@ -0,0 +1,54 @@
#
# Attempt to put an event into a bound location, where
# the binding does confer write privileges
#
TYPE=PUT
URL=http://regression.host/caldav.php/user4/base/user2/thiswillalsobegood.ics
HEADER=Content-Type: text/calendar; charset=utf-8
AUTH=user4:user4
HEAD
BEGINDATA
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Apple Inc.//iCal 3.0//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:VTODO
PRIORITY:0
SEQUENCE:4
DTSTART;TZID=Pacific/Auckland:20040101T120000
UID:A51AC037-E6F9-4E03-872C-7DFE0B67D1FF
DTSTAMP:20100318T210557Z
SUMMARY:Release DAViCal 0.9.9
CREATED:20100318T210457Z
X-APPLE-SORT-ORDER:2147483647
DUE;VALUE=DATE:20100326
END:VTODO
END:VCALENDAR
ENDDATA
QUERY
SELECT caldav_data.dav_name, caldav_data.dav_etag, dtstart, summary
FROM caldav_data JOIN calendar_item USING(dav_name)
WHERE caldav_data.dav_name ~ '/user2/.*thiswill'
ENDQUERY

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8" ?>
<multistatus xmlns="DAV:">
<response>
<href>/caldav.php/user4/base/</href>
<propstat>
<prop>
<displayname>A normal collection</displayname>
<resource-id>
<href>/caldav.php/.resources/1433</href>
</resource-id>
<parent-set>
<parent>
<href>/caldav.php/user4</href>
<segment>base</segment>
</parent>
</parent-set>
<resourcetype>
<collection/>
</resourcetype>
</prop>
<status>HTTP/1.1 200 OK</status>
</propstat>
</response>
</multistatus>

View File

@ -0,0 +1,27 @@
#
# PROPFIND on a collection in which we have binds & collections
#
# In this case we're doing Depth: 0
#
TYPE=PROPFIND
URL=http://regression.host/caldav.php/user4/base/
AUTH=user4:user4
HEADER=User-Agent: BIND Spec Tests
HEADER=Content-Type: text/xml; charset="UTF-8"
HEADER=Depth: 0
BEGINDATA
<?xml version="1.0" encoding="utf-8"?>
<propfind xmlns="DAV:">
<prop>
<displayname/>
<resource-id/>
<parent-set/>
<resourcetype/>
</prop>
</propfind>
ENDDATA
# <current-user-privilege-set/>

View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8" ?>
<multistatus xmlns="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
<response>
<href>/caldav.php/user4/</href>
<propstat>
<prop>
<C:calendar-home-set>
<href>/caldav.php/user4/</href>
</C:calendar-home-set>
<resource-id>
<href>/caldav.php/.resources/6</href>
</resource-id>
<parent-set>
<parent>
<href>/caldav.php</href>
<segment>user4</segment>
</parent>
</parent-set>
<resourcetype>
<collection/>
<principal/>
</resourcetype>
</prop>
<status>HTTP/1.1 200 OK</status>
</propstat>
</response>
</multistatus>

View File

@ -0,0 +1,28 @@
#
# PROPFIND calendar-home-set where we have a calendar in
# another collection somewhere.
#
# In this case we're doing Depth: 0 on the principal
#
TYPE=PROPFIND
URL=http://regression.host/caldav.php/user4/
AUTH=user4:user4
HEADER=User-Agent: BIND Spec Tests
HEADER=Content-Type: text/xml; charset="UTF-8"
HEADER=Depth: 0
BEGINDATA
<?xml version="1.0" encoding="utf-8"?>
<propfind xmlns="DAV:">
<prop>
<calendar-home-set xmlns="urn:ietf:params:xml:ns:caldav"/>
<resource-id/>
<parent-set/>
<resourcetype/>
</prop>
</propfind>
ENDDATA
# <current-user-privilege-set/>