Updated & new regression tests for various XML processing changes.

This commit is contained in:
Andrew McMillan 2012-05-20 21:50:30 +12:00
parent 2808bab03b
commit 1f5d8ddcac
19 changed files with 311 additions and 41 deletions

View File

@ -1,5 +1,5 @@
<?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">
<multistatus xmlns="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav" xmlns:X="http://xmlns.davical.org/davical">
<response>
<href>/caldav.php/user4/base/</href>
<propstat>
@ -46,8 +46,7 @@
<resourcetype>
<collection/>
<C:calendar/>
<X:spotted-grebe/>
<X1:webdav-binding/>
<X:webdav-binding/>
</resourcetype>
</prop>
<status>HTTP/1.1 200 OK</status>
@ -78,7 +77,7 @@
<resourcetype>
<collection/>
<C:calendar/>
<X1:webdav-binding/>
<X:webdav-binding/>
</resourcetype>
</prop>
<status>HTTP/1.1 200 OK</status>

View File

@ -1,5 +1,5 @@
<?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">
<multistatus xmlns="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav" xmlns:X="http://xmlns.davical.org/davical">
<response>
<href>/caldav.php/user4/base/</href>
<propstat>
@ -46,8 +46,7 @@
<resourcetype>
<collection/>
<C:calendar/>
<X:spotted-grebe/>
<X1:webdav-binding/>
<X:webdav-binding/>
</resourcetype>
</prop>
<status>HTTP/1.1 200 OK</status>
@ -78,7 +77,7 @@
<resourcetype>
<collection/>
<C:calendar/>
<X1:webdav-binding/>
<X:webdav-binding/>
</resourcetype>
</prop>
<status>HTTP/1.1 200 OK</status>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" ?>
<multistatus xmlns="DAV:" xmlns:X="http://xmlns.davical.org/davical" xmlns:C="urn:ietf:params:xml:ns:caldav" xmlns:X1="http://xmlns.comical.net/birds">
<multistatus xmlns="DAV:" xmlns:X="http://xmlns.davical.org/davical" xmlns:C="urn:ietf:params:xml:ns:caldav">
<response>
<href>/caldav.php/user4/boundbase/</href>
<propstat>
@ -51,7 +51,6 @@
<resourcetype>
<collection/>
<C:calendar/>
<X1:spotted-grebe/>
<X:webdav-binding/>
</resourcetype>
</prop>

View File

@ -20,6 +20,6 @@ public_events_onl: >0<
changed_by: >10<
property_name: >urn:ietf:params:xml:ns:caldav:supported-calendar-component-set<
property_value: >
<urn:ietf:params:xml:ns:caldav:comp name="VTODO"/>
<comp name="VTODO" xmlns="urn:ietf:params:xml:ns:caldav"/>
<

View File

@ -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: "2b2bbe0fd58f5dc4b170658721ef721f"
Content-Length: 735
Content-Type: text/xml; charset="utf-8"
<?xml version="1.0" encoding="utf-8" ?>
<multistatus xmlns="DAV:" xmlns:A="http://apple.com/ns/ical/" xmlns:C="urn:ietf:params:xml:ns:caldav">
<response>
<href>/caldav.php/user1/VTODO-EFD9-4F0F-9BDC-5335E04D47E0/</href>
<propstat>
<prop>
<displayname>Untitled</displayname>
<A:calendar-color>#391B71A0</A:calendar-color>
<C:supported-calendar-component-set>
<C:comp name="VTODO"/>
</C:supported-calendar-component-set>
<resourcetype>
<collection/>
<C:calendar/>
</resourcetype>
</prop>
<status>HTTP/1.1 200 OK</status>
</propstat>
<propstat>
<prop>
<C:calendar-description/>
</prop>
<status>HTTP/1.1 404 Not Found</status>
</propstat>
</response>
</multistatus>

View File

@ -0,0 +1,29 @@
#
# Testing with a process similar to iPhone 3.1
#
TYPE=PROPFIND
URL=http://mycaldav/caldav.php/user1/VTODO-EFD9-4F0F-9BDC-5335E04D47E0/
HEAD
AUTH=user1:user1
HEADER=User-Agent: DAVKit/4.0 (728.3); iCalendar/1 (34); iPhone/3.0 7A341
HEADER=Content-Type: text/xml
HEADER=Depth: 0
#
# This query from the iPhone goes to the calendar-home-set and checks
# what is available under that collection.
#
BEGINDATA
<?xml version="1.0" encoding="utf-8"?>
<x0:propfind xmlns:x2="http://calendarserver.org/ns/" xmlns:x0="DAV:" xmlns:x3="http://apple.com/ns/ical/" xmlns:x1="urn:ietf:params:xml:ns:caldav">
<x0:prop>
<x0:displayname/>
<x1:calendar-description/>
<x3:calendar-color/>
<x1:supported-calendar-component-set/>
<x0:resourcetype/>
</x0:prop>
</x0:propfind>
ENDDATA

View File

@ -0,0 +1,27 @@
HTTP/1.1 200 OK
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
Content-Length: 0
Content-Type: text/plain; charset="utf-8"
property_name: >http://apple.com/ns/ical/:calendar-color<
property_value: >#0252D4FF<
property_name: >http://apple.com/ns/ical/:calendar-order<
property_value: >1<
property_name: >urn:ietf:params:xml:ns:caldav:schedule-default-calendar-URL<
property_value: >
<href xmlns="DAV:">/caldav.php/user1/home/</href>
<
property_name: >urn:org:davical:outer<
property_value: >
<middle xmlns="urn:org:davical">
<inner xmlns="urn:org:davical">inside</inner>
<inner xmlns="urn:org:davical">inside2</inner>
</middle>
<

View File

@ -0,0 +1,23 @@
#
# Testing the encoding of arbitrary XML into the database
#
TYPE=PROPPATCH
URL=http://regression.host/caldav.php/user1/home/
HEAD
HEADER=DAVKit/4.0 (729); CalendarStore/4.0 (965); iCal/4.0 (1362); Mac OS X/10.6.1 (10B504)
HEADER=Content-Type: text/xml
HEADER=Prefer: return-minimal
#
#
BEGINDATA
<?xml version="1.0" encoding="utf-8" ?>
<x0:propertyupdate xmlns:x0="DAV:" xmlns:x1="http://apple.com/ns/ical/" xmlns:C1="urn:ietf:params:xml:ns:caldav" xmlns:D="urn:org:davical"><x0:set><x0:prop><C1:schedule-default-calendar-URL><x0:href>/caldav.php/user1/home/</x0:href></C1:schedule-default-calendar-URL><x1:calendar-order>1</x1:calendar-order>
<D:outer><D:middle><D:inner>inside</D:inner><D:inner>inside2</D:inner></D:middle></D:outer>
</x0:prop></x0:set></x0:propertyupdate>
ENDDATA
QUERY
SELECT property_name, property_value FROM property WHERE dav_name = '/user1/home/'
ENDQUERY

View File

@ -0,0 +1,42 @@
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: "ad7ec8d22f626f3c8f86c0a275847c93"
Content-Length: 997
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" xmlns:A="http://apple.com/ns/ical/" xmlns:D="urn:org:davical">
<response>
<href>/caldav.php/user1/home/</href>
<propstat>
<prop>
<C:schedule-default-calendar-URL>
<href>/caldav.php/user1/home/</href>
</C:schedule-default-calendar-URL>
<A:calendar-order>1</A:calendar-order>
<C:supported-calendar-component-set>
<C:comp name="VEVENT"/>
<C:comp name="VTODO"/>
<C:comp name="VJOURNAL"/>
<C:comp name="VTIMEZONE"/>
<C:comp name="VFREEBUSY"/>
<C:comp name="VPOLL"/>
<C:comp name="VAVAILABILITY"/>
</C:supported-calendar-component-set>
<resourcetype>
<collection/>
<C:calendar/>
</resourcetype>
<D:outer>
<D:middle>
<D:inner>inside</D:inner>
<D:inner>inside2</D:inner>
</D:middle>
</D:outer>
</prop>
<status>HTTP/1.1 200 OK</status>
</propstat>
</response>
</multistatus>

View File

@ -0,0 +1,29 @@
#
# Testing retrieval of the wierd properties we just set
#
TYPE=PROPFIND
URL=http://mycaldav/caldav.php/user1/home/
HEAD
AUTH=user1:user1
HEADER=User-Agent: DAVKit/4.0 (728.3); iCalendar/1 (34); iPhone/3.0 7A341
HEADER=Content-Type: text/xml
HEADER=Depth: 0
#
# This query from the iPhone goes to the calendar-home-set and checks
# what is available under that collection.
#
BEGINDATA
<?xml version="1.0" encoding="utf-8"?>
<x0:propfind xmlns:x0="DAV:" xmlns:x3="http://apple.com/ns/ical/" xmlns:x1="urn:ietf:params:xml:ns:caldav" xmlns:D="urn:org:davical">
<x0:prop>
<x1:schedule-default-calendar-URL/>
<x3:calendar-order/>
<x1:supported-calendar-component-set/>
<x0:resourcetype/>
<D:outer/>
</x0:prop>
</x0:propfind>
ENDDATA

View File

@ -47,3 +47,22 @@ Content-Type: text/xml; charset="utf-8"
property_name: >http://apple.com/ns/ical/:calendar-order<
property_value: >1<
changed_by: >10<
changed_recently: >1<
dav_name: >/user1/home/<
property_name: >urn:ietf:params:xml:ns:caldav:schedule-default-calendar-URL<
property_value: >
<href xmlns="DAV:">/caldav.php/user1/home/</href>
<
changed_by: >10<
changed_recently: >1<
dav_name: >/user1/home/<
property_name: >urn:org:davical:outer<
property_value: >
<middle xmlns="urn:org:davical">
<inner xmlns="urn:org:davical">inside</inner>
<inner xmlns="urn:org:davical">inside2</inner>
</middle>
<

View File

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

View File

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

View File

@ -22,5 +22,5 @@ Content-Type: text/xml; charset="utf-8"
dav_displayname: >User One's addressbook<
is_addressbook: >1<
is_calendar: >0<
resourcetypes: ><DAV::collection/><urn:ietf:params:xml:ns:carddav:addressbook/><
resourcetypes: ><collection xmlns="DAV:"/><addressbook xmlns="urn:ietf:params:xml:ns:carddav"/><

View File

@ -2,7 +2,7 @@ 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
Content-Length: 508
Content-Length: 452
Content-Type: text/xml; charset="utf-8"
<?xml version="1.0" encoding="utf-8" ?>
@ -14,11 +14,8 @@ Content-Type: text/xml; charset="utf-8"
<prop>
<resourcetype/>
</prop>
<status>HTTP/1.1 403 Forbidden</status>
<responsedescription>Resources may not be changed to / from collections.</responsedescription>
<error>
<cannot-modify-protected-property/>
</error>
<status>HTTP/1.1 409 Conflict</status>
<responsedescription>A collection may not be both a calendar and an addressbook.</responsedescription>
</propstat>
</response>
</multistatus>
@ -27,5 +24,5 @@ Content-Type: text/xml; charset="utf-8"
dav_displayname: >User One's addressbook<
is_addressbook: >1<
is_calendar: >0<
resourcetypes: ><DAV::collection/><urn:ietf:params:xml:ns:carddav:addressbook/><
resourcetypes: ><collection xmlns="DAV:"/><addressbook xmlns="urn:ietf:params:xml:ns:carddav"/><

View File

@ -2,27 +2,38 @@ 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
Content-Length: 386
Content-Length: 687
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">
<href>/caldav.php/user1/home/</href>
<responsedescription>All requested changes were made.</responsedescription>
<propstat>
<prop>
<resourcetype/>
<displayname/>
<C:schedule-calendar-transp/>
</prop>
<status>HTTP/1.1 200 OK</status>
</propstat>
<response>
<href>/caldav.php/user1/home/</href>
<responsedescription>Some properties were not able to be changed.</responsedescription>
<propstat>
<prop>
<resourcetype/>
</prop>
<status>HTTP/1.1 403 Forbidden</status>
<responsedescription>Unsupported resourcetype modification.</responsedescription>
<error>
<cannot-modify-protected-property/>
</error>
</propstat>
<propstat>
<prop>
<displayname/>
<C:schedule-calendar-transp/>
</prop>
<status>HTTP/1.1 424 Failed Dependency</status>
</propstat>
</response>
</multistatus>
changed_last_5m: >1<
dav_displayname: >User 1's Calendaranza<
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<
dav_displayname: >User One's addressbook<
is_addressbook: >1<
is_calendar: >0<
resourcetypes: ><collection xmlns="DAV:"/><addressbook xmlns="urn:ietf:params:xml:ns:carddav"/><
schedule_transp: >transparent<

View File

@ -0,0 +1,28 @@
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
Content-Length: 386
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">
<href>/caldav.php/user1/home/</href>
<responsedescription>All requested changes were made.</responsedescription>
<propstat>
<prop>
<resourcetype/>
<displayname/>
<C:schedule-calendar-transp/>
</prop>
<status>HTTP/1.1 200 OK</status>
</propstat>
</multistatus>
changed_last_5m: >1<
dav_displayname: >User 1's Calendaranza<
is_addressbook: >0<
is_calendar: >1<
resourcetypes: ><collection xmlns="DAV:"/><calendar xmlns="urn:ietf:params:xml:ns:caldav"/><
schedule_transp: >opaque<

View File

@ -0,0 +1,35 @@
#
# Check for support of PROPPATCH method
#
# Try (and succeed) to set the collection to be a calendar.
#
TYPE=PROPPATCH
URL=http://regression.host/caldav.php/user1/home/
HEADER=User-agent: SpecTest PROPPATCH
HEADER=Content-type: text/xml
HEAD
BEGINDATA
<?xml version="1.0" encoding="utf-8" ?>
<propertyupdate xmlns="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
<set>
<prop>
<resourcetype>
<collection/>
<calendar xmlns="urn:ietf:params:xml:ns:caldav"/>
</resourcetype>
<displayname>User 1's Calendaranza</displayname>
<C:schedule-calendar-transp>
<C:opaque/>
</C:schedule-calendar-transp>
</prop>
</set>
</propertyupdate>
ENDDATA
QUERY
SELECT dav_displayname, is_addressbook, is_calendar, resourcetypes,
modified > (current_timestamp - '5 minutes'::interval) AS changed_last_5m,
schedule_transp
FROM collection WHERE dav_name = '/user1/home/';
ENDQUERY

View File

@ -2,12 +2,12 @@ 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: "6991cc83557b9ab4224fafebcb6e8565"
Content-Length: 2220
ETag: "d8ca6e096e4f41c01747fcc58a8e822f"
Content-Length: 2155
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" xmlns:X="http://xmlns.comical.net/birds">
<multistatus xmlns="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
<response>
<href>/caldav.php/user1/home/</href>
<propstat>
@ -16,7 +16,6 @@ Content-Type: text/xml; charset="utf-8"
<resourcetype>
<collection/>
<C:calendar/>
<X:spotted-grebe/>
</resourcetype>
<supported-method-set>
<supported-method name="OPTIONS"/>