add regression tests for iCal handling calendar delegations

This commit is contained in:
Florian Schlichting 2018-01-09 23:02:48 +01:00
parent 4335e790d1
commit bc9c39c455
10 changed files with 402 additions and 0 deletions

View File

@ -0,0 +1,149 @@
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: "626d7fecd0f819df2410bd1977919d8e"
Content-Length: 3664
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:C1="http://calendarserver.org/ns/">
<response>
<href>/caldav.php/user1/</href>
<propstat>
<prop>
<principal-URL>
<href>/caldav.php/user1/</href>
</principal-URL>
<C:calendar-user-address-set>
<href>mailto:user1@example.net</href>
<href>/caldav.php/user1/</href>
</C:calendar-user-address-set>
<C:calendar-user-type>INDIVIDUAL</C:calendar-user-type>
<displayname>User 1</displayname>
</prop>
<status>HTTP/1.1 200 OK</status>
</propstat>
<propstat>
<prop>
<C1:record-type/>
</prop>
<status>HTTP/1.1 404 Not Found</status>
</propstat>
</response>
<response>
<href>/caldav.php/user2/</href>
<propstat>
<prop>
<principal-URL>
<href>/caldav.php/user2/</href>
</principal-URL>
<C:calendar-user-address-set>
<href>mailto:user2@example.net</href>
<href>/caldav.php/user2/</href>
</C:calendar-user-address-set>
<C:calendar-user-type>INDIVIDUAL</C:calendar-user-type>
<displayname>User 2</displayname>
</prop>
<status>HTTP/1.1 200 OK</status>
</propstat>
<propstat>
<prop>
<C1:record-type/>
</prop>
<status>HTTP/1.1 404 Not Found</status>
</propstat>
</response>
<response>
<href>/caldav.php/user3/</href>
<propstat>
<prop>
<principal-URL>
<href>/caldav.php/user3/</href>
</principal-URL>
<C:calendar-user-address-set>
<href>mailto:user3@example.net</href>
<href>/caldav.php/user3/</href>
</C:calendar-user-address-set>
<C:calendar-user-type>INDIVIDUAL</C:calendar-user-type>
<displayname>User 3</displayname>
</prop>
<status>HTTP/1.1 200 OK</status>
</propstat>
<propstat>
<prop>
<C1:record-type/>
</prop>
<status>HTTP/1.1 404 Not Found</status>
</propstat>
</response>
<response>
<href>/caldav.php/user4/</href>
<propstat>
<prop>
<principal-URL>
<href>/caldav.php/user4/</href>
</principal-URL>
<C:calendar-user-address-set>
<href>mailto:user4@example.net</href>
<href>/caldav.php/user4/</href>
</C:calendar-user-address-set>
<C:calendar-user-type>INDIVIDUAL</C:calendar-user-type>
<displayname>User 4</displayname>
</prop>
<status>HTTP/1.1 200 OK</status>
</propstat>
<propstat>
<prop>
<C1:record-type/>
</prop>
<status>HTTP/1.1 404 Not Found</status>
</propstat>
</response>
<response>
<href>/caldav.php/user5/</href>
<propstat>
<prop>
<principal-URL>
<href>/caldav.php/user5/</href>
</principal-URL>
<C:calendar-user-address-set>
<href>mailto:user5@example.net</href>
<href>/caldav.php/user5/</href>
</C:calendar-user-address-set>
<C:calendar-user-type>INDIVIDUAL</C:calendar-user-type>
<displayname>User 5</displayname>
</prop>
<status>HTTP/1.1 200 OK</status>
</propstat>
<propstat>
<prop>
<C1:record-type/>
</prop>
<status>HTTP/1.1 404 Not Found</status>
</propstat>
</response>
<response>
<href>/caldav.php/User%20Six/</href>
<propstat>
<prop>
<principal-URL>
<href>/caldav.php/User%20Six/</href>
</principal-URL>
<C:calendar-user-address-set>
<href>mailto:user6@example.net</href>
<href>/caldav.php/User%20Six/</href>
</C:calendar-user-address-set>
<C:calendar-user-type>INDIVIDUAL</C:calendar-user-type>
<displayname>User 6</displayname>
</prop>
<status>HTTP/1.1 200 OK</status>
</propstat>
<propstat>
<prop>
<C1:record-type/>
</prop>
<status>HTTP/1.1 404 Not Found</status>
</propstat>
</response>
</multistatus>

View File

@ -0,0 +1,29 @@
#
# iCal looking for matching principals for auto-completion of user input
#
TYPE=REPORT
URL=http://regression.host/caldav.php/
HEADER=Content-Type: text/xml
HEADER=User-Agent: Mac+OS+X/10.13.2 (17C88) CalendarAgent/399.2.2
HEAD
AUTH=manager1:manager1
BEGINDATA
<?xml version="1.0" encoding="UTF-8"?>
<A:principal-property-search xmlns:A="DAV:" type="INDIVIDUAL" test="anyof">
<A:property-search>
<A:prop>
<A:displayname/>
</A:prop>
<A:match match-type="starts-with">user</A:match>
</A:property-search>
<A:prop>
<A:principal-URL/>
<B:calendar-user-address-set xmlns:B="urn:ietf:params:xml:ns:caldav"/>
<B:calendar-user-type xmlns:B="urn:ietf:params:xml:ns:caldav"/>
<C:record-type xmlns:C="http://calendarserver.org/ns/"/>
<A:displayname/>
</A:prop>
</A:principal-property-search>
ENDDATA

View File

@ -0,0 +1,54 @@
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: "f0ac850a4b145aa7b7b9e9299130712a"
Content-Length: 1017
Content-Type: text/xml; charset="utf-8"
<?xml version="1.0" encoding="utf-8" ?>
<multistatus xmlns="DAV:">
<response>
<href>/caldav.php/manager1/</href>
<propstat>
<prop/>
<status>HTTP/1.1 200 OK</status>
</propstat>
</response>
<response>
<href>/caldav.php/manager1/home/</href>
<propstat>
<prop/>
<status>HTTP/1.1 200 OK</status>
</propstat>
</response>
<response>
<href>/caldav.php/manager1/addresses/</href>
<propstat>
<prop/>
<status>HTTP/1.1 200 OK</status>
</propstat>
</response>
<response>
<href>/caldav.php/manager1/calendar-proxy-read/</href>
<propstat>
<prop>
<group-member-set>
<href>/caldav.php/teamclient1/</href>
</group-member-set>
</prop>
<status>HTTP/1.1 200 OK</status>
</propstat>
</response>
<response>
<href>/caldav.php/manager1/calendar-proxy-write/</href>
<propstat>
<prop>
<group-member-set>
<href>/caldav.php/assistant1/</href>
</group-member-set>
</prop>
<status>HTTP/1.1 200 OK</status>
</propstat>
</response>
</multistatus>

View File

@ -0,0 +1,21 @@
#
# iCal doing a PROPFIND Depth:1 to see who is already in the calendar-proxy-read group
#
TYPE=PROPFIND
URL=http://regression.host/caldav.php/manager1/
HEADER=Content-Type: text/xml
HEADER=User-Agent: Mac+OS+X/10.13.2 (17C88) CalendarAgent/399.2.2
HEADER=Depth: 1
HEADER=Prefer: return=minimal
HEAD
AUTH=manager1:manager1
BEGINDATA
<?xml version="1.0" encoding="UTF-8"?>
<A:propfind xmlns:A="DAV:">
<A:prop>
<A:group-member-set/>
</A:prop>
</A:propfind>
ENDDATA

View File

@ -0,0 +1,20 @@
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: 350
Content-Type: text/xml; charset="utf-8"
<?xml version="1.0" encoding="utf-8" ?>
<multistatus xmlns="DAV:">
<response>
<href>/caldav.php/manager1/calendar-proxy-read/</href>
<responsedescription>All requested changes were made.</responsedescription>
<propstat>
<prop>
<group-member-set/>
</prop>
<status>HTTP/1.1 200 OK</status>
</propstat>
</response>
</multistatus>

View File

@ -0,0 +1,15 @@
#
# iCal adding 3 delegates for manager1 with read privileges
#
TYPE=PROPPATCH
URL=http://regression.host/caldav.php/manager1/calendar-proxy-read/
HEADER=Content-Type: text/xml
HEADER=User-Agent: Mac+OS+X/10.13.2 (17C88) CalendarAgent/399.2.2
HEAD
AUTH=manager1:manager1
BEGINDATA
<?xml version="1.0" encoding="UTF-8"?>
<A:propertyupdate xmlns:A="DAV:"><A:set><A:prop><A:group-member-set><A:href>/caldav.php/teamclient1/</A:href><A:href>/caldav.php/user1/</A:href><A:href>/caldav.php/user2/</A:href><A:href>/caldav.php/user3/</A:href></A:group-member-set></A:prop></A:set></A:propertyupdate>
ENDDATA

View File

@ -0,0 +1,20 @@
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: 351
Content-Type: text/xml; charset="utf-8"
<?xml version="1.0" encoding="utf-8" ?>
<multistatus xmlns="DAV:">
<response>
<href>/caldav.php/manager1/calendar-proxy-write/</href>
<responsedescription>All requested changes were made.</responsedescription>
<propstat>
<prop>
<group-member-set/>
</prop>
<status>HTTP/1.1 200 OK</status>
</propstat>
</response>
</multistatus>

View File

@ -0,0 +1,17 @@
#
# iCal adding _only_ user1 to calendar-proxy-write
# this should remove user1 from calendar-proxy-read as well as (existing)
# assistant1 from calendar-proxy-write
#
TYPE=PROPPATCH
URL=http://regression.host/caldav.php/manager1/calendar-proxy-write/
HEADER=Content-Type: text/xml
HEADER=User-Agent: Mac+OS+X/10.13.2 (17C88) CalendarAgent/399.2.2
HEAD
AUTH=manager1:manager1
BEGINDATA
<?xml version="1.0" encoding="UTF-8"?>
<A:propertyupdate xmlns:A="DAV:"><A:set><A:prop><A:group-member-set><A:href>/caldav.php/user1/</A:href></A:group-member-set></A:prop></A:set></A:propertyupdate>
ENDDATA

View File

@ -0,0 +1,56 @@
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: "d63bb46d253188d2f7399a84d21e07b9"
Content-Length: 1086
Content-Type: text/xml; charset="utf-8"
<?xml version="1.0" encoding="utf-8" ?>
<multistatus xmlns="DAV:">
<response>
<href>/caldav.php/manager1/</href>
<propstat>
<prop/>
<status>HTTP/1.1 200 OK</status>
</propstat>
</response>
<response>
<href>/caldav.php/manager1/home/</href>
<propstat>
<prop/>
<status>HTTP/1.1 200 OK</status>
</propstat>
</response>
<response>
<href>/caldav.php/manager1/addresses/</href>
<propstat>
<prop/>
<status>HTTP/1.1 200 OK</status>
</propstat>
</response>
<response>
<href>/caldav.php/manager1/calendar-proxy-read/</href>
<propstat>
<prop>
<group-member-set>
<href>/caldav.php/teamclient1/</href>
<href>/caldav.php/user2/</href>
<href>/caldav.php/user3/</href>
</group-member-set>
</prop>
<status>HTTP/1.1 200 OK</status>
</propstat>
</response>
<response>
<href>/caldav.php/manager1/calendar-proxy-write/</href>
<propstat>
<prop>
<group-member-set>
<href>/caldav.php/user1/</href>
</group-member-set>
</prop>
<status>HTTP/1.1 200 OK</status>
</propstat>
</response>
</multistatus>

View File

@ -0,0 +1,21 @@
#
# a final PROPFIND to confirm the changes
#
TYPE=PROPFIND
URL=http://regression.host/caldav.php/manager1/
HEADER=Content-Type: text/xml
HEADER=User-Agent: Mac+OS+X/10.13.2 (17C88) CalendarAgent/399.2.2
HEADER=Depth: 1
HEADER=Prefer: return=minimal
HEAD
AUTH=manager1:manager1
BEGINDATA
<?xml version="1.0" encoding="UTF-8"?>
<A:propfind xmlns:A="DAV:">
<A:prop>
<A:group-member-set/>
</A:prop>
</A:propfind>
ENDDATA