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/
Depth 0
text/xml; charset=utf-8 Resource/CalDAV/ctag/1.xml {http://calendarserver.org/ns/}getctag $getctag2:
Check for CTag PROPFIND $calendarpath1:/
Depth 0
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:/
Depth 0
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:/
Depth 0
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:/
Depth 0
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:/
Depth 0
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:/
Depth 0
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/
Depth 0
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:/
Depth 0
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/
Depth 0
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:/
Depth 0
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/
Depth 0
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:/
Depth 0
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/
Depth 0
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:/
Depth 0
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:/
Depth 0
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:/
Depth 0
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:/
Depth 0
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:/
Depth 0
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:/
Depth 1
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:/
Depth 0
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:/
Depth 1
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:/
Depth 0
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:/
Depth 1
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/