Test the collection entity tag behavior on calendar collections
caldav
ctag
PUT
$calendarpath1:/1.ics
text/calendar; charset=utf-8
Resource/CalDAV/event/1.txt
MKCALENDAR
$calendarhome1:/movecopy/
PUT
$calendarhome1:/movecopy/2.ics
text/calendar; charset=utf-8
Resource/CalDAV/event/2.txt
PROPFIND
$calendarhome1:/movecopy/
text/xml; charset=utf-8
Resource/CalDAV/ctag/1.xml
{http://calendarserver.org/ns/}getctag
$getctag2:
Check for CTag
PROPFIND
$calendarpath1:/
text/xml; charset=utf-8
Resource/CalDAV/ctag/1.xml
propfindItems
okprops
{http://calendarserver.org/ns/}getctag
{http://calendarserver.org/ns/}getctag
$getctag1:
Check for CTag
PROPFIND
$calendarpath1:/
text/xml; charset=utf-8
Resource/CalDAV/ctag/1.xml
propfindItems
okprops
{http://calendarserver.org/ns/}getctag$$getctag1:
Check for CTag change on DELETE
DELETE
$calendarpath1:/1.ics
PROPFIND
$calendarpath1:/
text/xml; charset=utf-8
Resource/CalDAV/ctag/1.xml
propfindItems
okprops
{http://calendarserver.org/ns/}getctag!$getctag1:
{http://calendarserver.org/ns/}getctag
$getctag1:
Check for CTag change on PUT of new resource
PUT
$calendarpath1:/1.ics
text/calendar; charset=utf-8
Resource/CalDAV/event/1.txt
PROPFIND
$calendarpath1:/
text/xml; charset=utf-8
Resource/CalDAV/ctag/1.xml
propfindItems
okprops
{http://calendarserver.org/ns/}getctag!$getctag1:
{http://calendarserver.org/ns/}getctag
$getctag1:
Check for CTag change on PUT of existing resource
PUT
$calendarpath1:/1.ics
text/calendar; charset=utf-8
Resource/CalDAV/event/1.txt
PROPFIND
$calendarpath1:/
text/xml; charset=utf-8
Resource/CalDAV/ctag/1.xml
propfindItems
okprops
{http://calendarserver.org/ns/}getctag!$getctag1:
{http://calendarserver.org/ns/}getctag
$getctag1:
MOVE Method
Check for CTag change on MOVE of new resource
MOVE
$calendarpath1:/1.ics
Destination
$host:$calendarhome1:/movecopy/1.ics
statusCode
PROPFIND
$calendarpath1:/
text/xml; charset=utf-8
Resource/CalDAV/ctag/1.xml
propfindItems
okprops
{http://calendarserver.org/ns/}getctag!$getctag1:
{http://calendarserver.org/ns/}getctag
$getctag1:
PROPFIND
$calendarhome1:/movecopy/
text/xml; charset=utf-8
Resource/CalDAV/ctag/1.xml
propfindItems
okprops
{http://calendarserver.org/ns/}getctag!$getctag2:
{http://calendarserver.org/ns/}getctag
$getctag2:
COPY Method
no-duplicate-uids
Check for CTag change on COPY of new resource
COPY
$calendarhome1:/movecopy/2.ics
Destination
$host:$calendarpath1:/2.ics
statusCode
PROPFIND
$calendarpath1:/
text/xml; charset=utf-8
Resource/CalDAV/ctag/1.xml
propfindItems
okprops
{http://calendarserver.org/ns/}getctag!$getctag1:
{http://calendarserver.org/ns/}getctag
$getctag1:
PROPFIND
$calendarhome1:/movecopy/
text/xml; charset=utf-8
Resource/CalDAV/ctag/1.xml
propfindItems
okprops
{http://calendarserver.org/ns/}getctag$$getctag2:
COPY Method
no-duplicate-uids
Check for CTag change on COPY of existing resource
COPY
$calendarhome1:/movecopy/2.ics
Destination
$host:$calendarpath1:/2.ics
statusCode
PROPFIND
$calendarpath1:/
text/xml; charset=utf-8
Resource/CalDAV/ctag/1.xml
propfindItems
okprops
{http://calendarserver.org/ns/}getctag!$getctag1:
{http://calendarserver.org/ns/}getctag
$getctag1:
PROPFIND
$calendarhome1:/movecopy/
text/xml; charset=utf-8
Resource/CalDAV/ctag/1.xml
propfindItems
okprops
{http://calendarserver.org/ns/}getctag$$getctag2:
MOVE Method
no-duplicate-uids
Check for no CTag change on failed MOVE of existing resource
MOVE
$calendarpath1:/1.ics
Destination
$host:$calendarhome1:/movecopy/2.ics
statusCode
status
404
PROPFIND
$calendarpath1:/
text/xml; charset=utf-8
Resource/CalDAV/ctag/1.xml
propfindItems
okprops
{http://calendarserver.org/ns/}getctag$$getctag1:
{http://calendarserver.org/ns/}getctag
$getctag1:
PROPFIND
$calendarhome1:/movecopy/
text/xml; charset=utf-8
Resource/CalDAV/ctag/1.xml
propfindItems
okprops
{http://calendarserver.org/ns/}getctag$$getctag2:
{http://calendarserver.org/ns/}getctag
$getctag2:
schedule-inbox
Check for CTag on calendar
PROPFIND
$calendarpath1:/
text/xml; charset=utf-8
Resource/CalDAV/ctag/1.xml
propfindItems
okprops
{http://calendarserver.org/ns/}getctag
{http://calendarserver.org/ns/}getctag
$getctag3:
Check for CTag on inbox
PROPFIND
$inboxpath1:/
text/xml; charset=utf-8
Resource/CalDAV/ctag/1.xml
propfindItems
okprops
{http://calendarserver.org/ns/}getctag
{http://calendarserver.org/ns/}getctag
$getctag4:
PUT invite
PUT
$calendarpath2:/2.ics
text/calendar; charset=utf-8
Resource/CalDAV/ctag/2.ics
statusCode
Test calendar ctag change
PROPFIND
$calendarpath1:/
text/xml; charset=utf-8
Resource/CalDAV/ctag/1.xml
propfindItems
okprops
{http://calendarserver.org/ns/}getctag!$getctag3:
schedule-ext
Test inbox ctag change
PROPFIND
$inboxpath1:/
text/xml; charset=utf-8
Resource/CalDAV/ctag/1.xml
propfindItems
okprops
{http://calendarserver.org/ns/}getctag!$getctag4:
Check for CTag Depth:0
PROPFIND
$calendarpath1:/
text/xml; charset=utf-8
Resource/CalDAV/ctag/1.xml
propfindItems
okprops
{http://calendarserver.org/ns/}getctag
{http://calendarserver.org/ns/}getctag
$getctag1:
Check for CTag Depth:1
PROPFIND
$calendarhome1:/
text/xml; charset=utf-8
Resource/CalDAV/ctag/1.xml
propfindItems
only
$calendarpath1:/
okprops
{http://calendarserver.org/ns/}getctag$$getctag1:
Add/update resource
PUT
$calendarpath1:/1.ics
text/calendar; charset=utf-8
Resource/CalDAV/event/1.txt
statusCode
Check for CTag Depth:0
PROPFIND
$calendarpath1:/
text/xml; charset=utf-8
Resource/CalDAV/ctag/1.xml
propfindItems
okprops
{http://calendarserver.org/ns/}getctag
{http://calendarserver.org/ns/}getctag
$getctag1:
Check for CTag Depth:1
PROPFIND
$calendarhome1:/
text/xml; charset=utf-8
Resource/CalDAV/ctag/1.xml
propfindItems
only
$calendarpath1:/
okprops
{http://calendarserver.org/ns/}getctag$$getctag1:
Delete resource
DELETE
$calendarpath1:/1.ics
statusCode
Check for CTag Depth:0
PROPFIND
$calendarpath1:/
text/xml; charset=utf-8
Resource/CalDAV/ctag/1.xml
propfindItems
okprops
{http://calendarserver.org/ns/}getctag
{http://calendarserver.org/ns/}getctag
$getctag1:
Check for CTag Depth:1
PROPFIND
$calendarhome1:/
text/xml; charset=utf-8
Resource/CalDAV/ctag/1.xml
propfindItems
only
$calendarpath1:/
okprops
{http://calendarserver.org/ns/}getctag$$getctag1:
DELETEALL
$calendarpath1:/
DELETEALL
$calendarpath2:/
DELETEALL
$inboxpath1:/
DELETEALL
$inboxpath2:/
DELETE
$calendarhome1:/movecopy/