From d3883ca9d41dd24337cda23109defde5370dbf25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20M=C3=BCller?= Date: Fri, 18 Dec 2015 13:51:34 +0100 Subject: [PATCH] Adding integration tests for CalDAV --- .travis.yml | 8 +- apps/dav/tests/travis/caldav/install.sh | 20 + apps/dav/tests/travis/caldav/script.sh | 18 + .../tests/CalDAV/current-user-principal.xml | 151 + .../caldavtest/tests/CalDAV/sync-report.xml | 3512 +++++++++++++++++ .../{carddavtester => carddav}/install.sh | 0 .../{carddavtester => carddav}/script.sh | 0 7 files changed, 3704 insertions(+), 5 deletions(-) create mode 100644 apps/dav/tests/travis/caldav/install.sh create mode 100644 apps/dav/tests/travis/caldav/script.sh create mode 100644 apps/dav/tests/travis/caldavtest/tests/CalDAV/current-user-principal.xml create mode 100644 apps/dav/tests/travis/caldavtest/tests/CalDAV/sync-report.xml rename apps/dav/tests/travis/{carddavtester => carddav}/install.sh (100%) rename apps/dav/tests/travis/{carddavtester => carddav}/script.sh (100%) diff --git a/.travis.yml b/.travis.yml index 3f80fdb845..4f79311c33 100644 --- a/.travis.yml +++ b/.travis.yml @@ -39,10 +39,8 @@ matrix: - php: 5.4 env: DB=pgsql;TC=litmus-v1 - php: 5.4 - env: DB=sqlite;TC=carddavtester -# - php: 5.4 -# env: DB=pgsql;TC=carddavtester -# - php: 5.4 -# env: DB=mysql;TC=caldavtester + env: DB=sqlite;TC=carddav + - php: 5.4 + env: DB=sqlite;TC=caldav fast_finish: true diff --git a/apps/dav/tests/travis/caldav/install.sh b/apps/dav/tests/travis/caldav/install.sh new file mode 100644 index 0000000000..e836e37f86 --- /dev/null +++ b/apps/dav/tests/travis/caldav/install.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash +SCRIPT=`realpath $0` +SCRIPTPATH=`dirname $SCRIPT` + + +if [ ! -f CalDAVTester/run.py ]; then + cd "$SCRIPTPATH" + git clone https://github.com/DeepDiver1975/CalDAVTester.git + cd "$SCRIPTPATH/CalDAVTester" + python run.py -s + cd "$SCRIPTPATH" +fi + +# create test user +cd "$SCRIPTPATH/../../../../../" +OC_PASS=user01 php occ user:add --password-from-env user01 +php occ dav:create-calendar user01 calendar +OC_PASS=user02 php occ user:add --password-from-env user02 +php occ dav:create-calendar user02 calendar +cd "$SCRIPTPATH/../../../../../" diff --git a/apps/dav/tests/travis/caldav/script.sh b/apps/dav/tests/travis/caldav/script.sh new file mode 100644 index 0000000000..9a818b553f --- /dev/null +++ b/apps/dav/tests/travis/caldav/script.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash +SCRIPT=`realpath $0` +SCRIPTPATH=`dirname $SCRIPT` + +# start the server +php -S 127.0.0.1:8888 -t "$SCRIPTPATH/../../../../.." & + +sleep 30 + +# run the tests +cd "$SCRIPTPATH/CalDAVTester" +PYTHONPATH="$SCRIPTPATH/pycalendar/src" python testcaldav.py --print-details-onfail -s "$SCRIPTPATH/../caldavtest/config/serverinfo.xml" -o cdt.txt \ + "$SCRIPTPATH/../caldavtest/tests/CalDAV/current-user-principal.xml" +RESULT=$? + +tail "$/../../../../../data-autotest/owncloud.log" + +exit $RESULT diff --git a/apps/dav/tests/travis/caldavtest/tests/CalDAV/current-user-principal.xml b/apps/dav/tests/travis/caldavtest/tests/CalDAV/current-user-principal.xml new file mode 100644 index 0000000000..d01058fee0 --- /dev/null +++ b/apps/dav/tests/travis/caldavtest/tests/CalDAV/current-user-principal.xml @@ -0,0 +1,151 @@ + + + + + + + + Test DAV:current-user-principal support + + + caldav + current-user-principal + + + + + + + own-root + + + Check for authenticated property on / + + PROPFIND + $root: +
+ Depth + 0 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/current-user-principal/1.xml + + + propfindItems + + okprops + $principaluri1:]]> + + +
+
+ + Check for authenticated property on / (user02) + + PROPFIND + $root: +
+ Depth + 0 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/current-user-principal/1.xml + + + propfindItems + + okprops + $principaluri2:]]> + + +
+
+
+ + + + Check for authenticated property on / + + PROPFIND + $principalcollection: +
+ Depth + 0 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/current-user-principal/1.xml + + + propfindItems + + okprops + $principaluri1:]]> + + +
+
+ + Check for unauthenticated property on / + + PROPFIND + $principals_users: +
+ Depth + 0 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/current-user-principal/1.xml + + + statusCode + + status + 401 + + +
+
+ + Check for authenticated property on / (user02) + + PROPFIND + $principalcollection: +
+ Depth + 0 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/current-user-principal/1.xml + + + propfindItems + + okprops + $principaluri2:]]> + + +
+
+
+ + +
diff --git a/apps/dav/tests/travis/caldavtest/tests/CalDAV/sync-report.xml b/apps/dav/tests/travis/caldavtest/tests/CalDAV/sync-report.xml new file mode 100644 index 0000000000..c675af8206 --- /dev/null +++ b/apps/dav/tests/travis/caldavtest/tests/CalDAV/sync-report.xml @@ -0,0 +1,3512 @@ + + + + + + + + + caldav + sync-report + + + + + MKCALENDAR + $calendarhome1:/synccalendar1/ + + + PUT + $calendarhome1:/synccalendar1/1.ics + + text/calendar; charset=utf-8 + Resource/CalDAV/reports/put/1.txt + + + + PUT + $calendarhome1:/synccalendar1/2.ics + + text/calendar; charset=utf-8 + Resource/CalDAV/reports/put/2.txt + + + + MKCALENDAR + $calendarhome1:/synccalendar2/ + + + PUT + $calendarhome1:/synccalendar2/1.ics + + text/calendar; charset=utf-8 + Resource/CalDAV/reports/put/4.txt + + + + PUT + $calendarhome1:/synccalendar2/2.ics + + text/calendar; charset=utf-8 + Resource/CalDAV/reports/put/5.txt + + + + + + + Not on calendars + + PROPFIND + $calendars:/ +
+ Depth + 0 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/1.xml + + + xmlElementMatch + + notexists + $verify-property-prefix:/{DAV:}supported-report-set/{DAV:}supported-report/{DAV:}report/{DAV:}sync-collection + + + + propfindItems + + okprops + {DAV:}supported-report-set + + + badprops + {DAV:}sync-token + + +
+
+ + On calendar-home + + PROPFIND + $calendarhome1:/ +
+ Depth + 0 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/1.xml + + + + sync-report-home + + xmlElementMatch + + exists + $verify-property-prefix:/{DAV:}supported-report-set/{DAV:}supported-report/{DAV:}report/{DAV:}sync-collection + $verify-property-prefix:/{DAV:}sync-token[+data:,] + + + + + sync-report-home + + propfindItems + + okprops + {DAV:}supported-report-set + {DAV:}sync-token + + + + + sync-report-home + + xmlElementMatch + + notexists + $verify-property-prefix:/{DAV:}supported-report-set/{DAV:}supported-report/{DAV:}report/{DAV:}sync-collection + + + + + sync-report-home + + propfindItems + + okprops + {DAV:}supported-report-set + + + badprops + {DAV:}sync-token + + +
+
+ + On calendar + + PROPFIND + $calendarhome1:/synccalendar1/ +
+ Depth + 0 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/1.xml + + + xmlElementMatch + + exists + $verify-property-prefix:/{DAV:}supported-report-set/{DAV:}supported-report/{DAV:}report/{DAV:}sync-collection + $verify-property-prefix:/{DAV:}sync-token[+data:,] + + + + propfindItems + + okprops + {DAV:}supported-report-set + {DAV:}sync-token + + +
+
+ + On inbox + + PROPFIND + $inboxpath1:/ +
+ Depth + 0 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/1.xml + + + xmlElementMatch + + exists + $verify-property-prefix:/{DAV:}supported-report-set/{DAV:}supported-report/{DAV:}report/{DAV:}sync-collection + + + + propfindItems + + okprops + {DAV:}supported-report-set + {DAV:}sync-token + + +
+
+ + + sync-report-home + + Look for options header tag on principal + + OPTIONS + $principal1: + + header + + header + *DAV$.*calendarserver-home-sync[^-]* + + + + +
+ + + + + sync-report-home + + sync-level:1, depth:0 + + REPORT + $calendarhome1:/ +
+ Depth + 0 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/8.xml + + + multistatusItems + + okhrefs + $calendar_home_items_initial_sync: + synccalendar1/ + synccalendar2/ + + + badhrefs + $dropbox:/ + + +
+
+ + + sync-report-home + + sync-level:1, depth:1 + + REPORT + $calendarhome1:/ +
+ Depth + 1 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/8.xml + + + multistatusItems + + okhrefs + $calendar_home_items_initial_sync: + synccalendar1/ + synccalendar2/ + + + badhrefs + $dropbox:/ + + +
+
+ + + sync-report-home + + sync-level:1, depth:infinity + + REPORT + $calendarhome1:/ +
+ Depth + infinity +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/8.xml + + + multistatusItems + + okhrefs + $calendar_home_items_initial_sync: + synccalendar1/ + synccalendar2/ + + + badhrefs + $dropbox:/ + + +
+
+ + + sync-report-home + + sync-level:infinity, depth:0 + + REPORT + $calendarhome1:/ +
+ Depth + 0 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/9.xml + + + multistatusItems + + okhrefs + $calendar_home_items_initial_sync: + synccalendar1/ + synccalendar1/1.ics + synccalendar1/2.ics + synccalendar2/ + synccalendar2/1.ics + synccalendar2/2.ics + + + badhrefs + $dropbox:/ + + +
+
+ + + sync-report-home + + sync-level:infinity, depth:1 + + REPORT + $calendarhome1:/ +
+ Depth + 1 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/9.xml + + + multistatusItems + + okhrefs + $calendar_home_items_initial_sync: + synccalendar1/ + synccalendar1/1.ics + synccalendar1/2.ics + synccalendar2/ + synccalendar2/1.ics + synccalendar2/2.ics + + + badhrefs + $dropbox:/ + + +
+
+ + + sync-report-home + + sync-level:infinity, depth:infinity + + REPORT + $calendarhome1:/ +
+ Depth + infinity +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/9.xml + + + multistatusItems + + okhrefs + $calendar_home_items_initial_sync: + synccalendar1/ + synccalendar1/1.ics + synccalendar1/2.ics + synccalendar2/ + synccalendar2/1.ics + synccalendar2/2.ics + + + badhrefs + $dropbox:/ + + +
+
+ + sync-level:1, depth:0 + + REPORT + $calendarhome1:/synccalendar1/ +
+ Depth + 0 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/8.xml + + + multistatusItems + + okhrefs + $calendar_sync_extra_items: + 1.ics + 2.ics + + +
+
+ + + sync-report-home + + sync-level:1, depth:1 + + REPORT + $calendarhome1:/synccalendar1/ +
+ Depth + 1 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/8.xml + + + multistatusItems + + okhrefs + $calendar_sync_extra_items: + 1.ics + 2.ics + + +
+
+ + + sync-report-home + + sync-level:1, depth:infinity + + REPORT + $calendarhome1:/synccalendar1/ +
+ Depth + infinity +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/8.xml + + + multistatusItems + + okhrefs + $calendar_sync_extra_items: + 1.ics + 2.ics + + +
+
+ + + sync-report-home + + sync-level:infinity, depth:0 + + REPORT + $calendarhome1:/synccalendar1/ +
+ Depth + 0 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/9.xml + + + multistatusItems + + okhrefs + $calendar_sync_extra_items: + 1.ics + 2.ics + + +
+
+ + + sync-report-home + + sync-level:infinity, depth:1 + + REPORT + $calendarhome1:/synccalendar1/ +
+ Depth + 1 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/9.xml + + + multistatusItems + + okhrefs + $calendar_sync_extra_items: + 1.ics + 2.ics + + +
+
+ + + sync-report-home + + sync-level:infinity, depth:infinity + + REPORT + $calendarhome1:/synccalendar1/ +
+ Depth + infinity +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/9.xml + + + multistatusItems + + okhrefs + $calendar_sync_extra_items: + 1.ics + 2.ics + + +
+
+ + Bad sync-level + + REPORT + $calendarhome1:/synccalendar1/ +
+ Depth + 0 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/10.xml + + + statusCode + + status + 400 + + +
+
+
+ + + + initial query - calendar collection depth:1 + + REPORT + $calendarhome1:/synccalendar1/ +
+ Depth + 1 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/2.xml + + + multistatusItems + + okhrefs + $calendar_sync_extra_items: + 1.ics + 2.ics + + +
+
+ + + sync-report-home + + initial query - home depth:1 + + REPORT + $calendarhome1:/ +
+ Depth + 1 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/2.xml + + + multistatusItems + + okhrefs + $calendar_home_items_initial_sync: + synccalendar1/ + synccalendar2/ + + + badhrefs + $dropbox:/ + + +
+
+ + + sync-report-home + + initial query - home depth:infinity + + REPORT + $calendarhome1:/ +
+ Depth + infinity +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/2.xml + + + multistatusItems + + okhrefs + $calendar_home_items_initial_sync: + synccalendar1/ + synccalendar1/1.ics + synccalendar1/2.ics + synccalendar2/ + synccalendar2/1.ics + synccalendar2/2.ics + + + badhrefs + $dropbox:/ + + +
+
+ + add new resource + + PUT + $calendarhome1:/synccalendar1/3.ics + + text/calendar; charset=utf-8 + Resource/CalDAV/reports/put/3.txt + + + statusCode + + + + + new resource - calendar collection depth:1 + + REPORT + $calendarhome1:/synccalendar1/ +
+ Depth + 1 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/2.xml + + + multistatusItems + + okhrefs + $calendar_sync_extra_items: + 1.ics + 2.ics + 3.ics + + +
+
+ + + sync-report-home + + new resource - home depth:1 + + REPORT + $calendarhome1:/ +
+ Depth + 1 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/2.xml + + + multistatusItems + + okhrefs + $calendar_home_items_initial_sync: + synccalendar1/ + synccalendar2/ + + + badhrefs + $dropbox:/ + + +
+
+ + + sync-report-home + + new resource - home depth:infinity + + REPORT + $calendarhome1:/ +
+ Depth + infinity +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/2.xml + + + multistatusItems + + okhrefs + $calendar_home_items_initial_sync: + synccalendar1/ + synccalendar1/1.ics + synccalendar1/2.ics + synccalendar1/3.ics + synccalendar2/ + synccalendar2/1.ics + synccalendar2/2.ics + + + badhrefs + $dropbox:/ + + +
+
+ + remove new resource + + DELETE + $calendarhome1:/synccalendar1/3.ics + + statusCode + + + + + remove new resource - calendar collection depth:1 + + REPORT + $calendarhome1:/synccalendar1/ +
+ Depth + 1 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/2.xml + + + multistatusItems + + okhrefs + $calendar_sync_extra_items: + 1.ics + 2.ics + + +
+
+ + + sync-report-home + + remove new resource - home depth:1 + + REPORT + $calendarhome1:/ +
+ Depth + 1 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/2.xml + + + multistatusItems + + okhrefs + $calendar_home_items_initial_sync: + synccalendar1/ + synccalendar2/ + + + badhrefs + $dropbox:/ + + +
+
+ + + sync-report-home + + remove new resource - home depth:infinity + + REPORT + $calendarhome1:/ +
+ Depth + infinity +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/2.xml + + + multistatusItems + + okhrefs + $calendar_home_items_initial_sync: + synccalendar1/ + synccalendar1/1.ics + synccalendar1/2.ics + synccalendar2/ + synccalendar2/1.ics + synccalendar2/2.ics + + + badhrefs + $dropbox:/ + + +
+
+ + changed resource + + PUT + $calendarhome1:/synccalendar1/1.ics + + text/calendar; charset=utf-8 + Resource/CalDAV/reports/put/1.txt + + + statusCode + + + + + changed resource - calendar collection depth:1 + + REPORT + $calendarhome1:/synccalendar1/ +
+ Depth + 1 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/2.xml + + + multistatusItems + + okhrefs + $calendar_sync_extra_items: + 1.ics + 2.ics + + +
+
+ + + sync-report-home + + changed resource - home depth:1 + + REPORT + $calendarhome1:/ +
+ Depth + 1 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/2.xml + + + multistatusItems + + okhrefs + $calendar_home_items_initial_sync: + synccalendar1/ + synccalendar2/ + + + badhrefs + $dropbox:/ + + +
+
+ + + sync-report-home + + changed resource - home depth:infinity + + REPORT + $calendarhome1:/ +
+ Depth + infinity +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/2.xml + + + multistatusItems + + okhrefs + $calendar_home_items_initial_sync: + synccalendar1/ + synccalendar1/1.ics + synccalendar1/2.ics + synccalendar2/ + synccalendar2/1.ics + synccalendar2/2.ics + + + badhrefs + $dropbox:/ + + +
+
+
+ + + + initial query - grab token + + REPORT + $calendarhome1:/synccalendar1/ +
+ Depth + 1 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/2.xml + + + multistatusItems + + okhrefs + $calendar_sync_extra_items: + 1.ics + 2.ics + + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken1: + +
+
+ + new resource + + PUT + $calendarhome1:/synccalendar1/3.ics + + text/calendar; charset=utf-8 + Resource/CalDAV/reports/put/3.txt + + + statusCode + + + + REPORT + $calendarhome1:/synccalendar1/ +
+ Depth + 1 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/3.xml + + + multistatusItems + + okhrefs + 3.ics + + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken2: + +
+
+ + remove resource (treated as new) + + DELETE + $calendarhome1:/synccalendar1/3.ics + + statusCode + + + + REPORT + $calendarhome1:/synccalendar1/ +
+ Depth + 1 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/3.xml + + + multistatusItems + + badhrefs + 3.ics + + +
+
+ + remove resource (treated as old) + + REPORT + $calendarhome1:/synccalendar1/ +
+ Depth + 1 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/4.xml + + + multistatusItems + + badhrefs + 3.ics + + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken1: + +
+
+ + changed resource + + PUT + $calendarhome1:/synccalendar1/1.ics + + text/calendar; charset=utf-8 + Resource/CalDAV/reports/put/1.txt + + + statusCode + + + + REPORT + $calendarhome1:/synccalendar1/ +
+ Depth + 1 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/3.xml + + + multistatusItems + + okhrefs + 1.ics + + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken1: + +
+
+ + no change + + REPORT + $calendarhome1:/synccalendar1/ +
+ Depth + 1 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/3.xml + + + multistatusItems + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken1: + +
+
+
+ + + + initial query + + REPORT + $calendarhome1:/synccalendar2/ +
+ Depth + 1 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/5.xml + + + multistatusItems + + okhrefs + $calendar_sync_extra_items: + 1.ics + 2.ics + + + + propfindItems + + okprops + {DAV:}getcontenttype + {DAV:}getetag + + +
+
+ + new resource + + PUT + $calendarhome1:/synccalendar2/3.ics + + text/calendar; charset=utf-8 + Resource/CalDAV/reports/put/6.txt + + + statusCode + + + + REPORT + $calendarhome1:/synccalendar2/ +
+ Depth + 1 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/5.xml + + + multistatusItems + + okhrefs + $calendar_sync_extra_items: + 1.ics + 2.ics + 3.ics + + + + propfindItems + + okprops + {DAV:}getcontenttype + {DAV:}getetag + + +
+
+ + remove resource new resource + + DELETE + $calendarhome1:/synccalendar2/3.ics + + statusCode + + + + REPORT + $calendarhome1:/synccalendar2/ +
+ Depth + 1 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/5.xml + + + multistatusItems + + okhrefs + $calendar_sync_extra_items: + 1.ics + 2.ics + + + + propfindItems + + okprops + {DAV:}getcontenttype + {DAV:}getetag + + +
+
+ + changed resource + + PUT + $calendarhome1:/synccalendar2/1.ics + + text/calendar; charset=utf-8 + Resource/CalDAV/reports/put/4.txt + + + statusCode + + + + REPORT + $calendarhome1:/synccalendar2/ +
+ Depth + 1 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/5.xml + + + multistatusItems + + okhrefs + $calendar_sync_extra_items: + 1.ics + 2.ics + + + + propfindItems + + okprops + {DAV:}getcontenttype + {DAV:}getetag + + +
+
+
+ + + + initial query - grab token + + REPORT + $calendarhome1:/synccalendar2/ +
+ Depth + 1 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/5.xml + + + multistatusItems + + okhrefs + $calendar_sync_extra_items: + 1.ics + 2.ics + + + + propfindItems + + okprops + {DAV:}getcontenttype + {DAV:}getetag + + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken1: + +
+
+ + new resource + + PUT + $calendarhome1:/synccalendar2/3.ics + + text/calendar; charset=utf-8 + Resource/CalDAV/reports/put/6.txt + + + statusCode + + + + REPORT + $calendarhome1:/synccalendar2/ +
+ Depth + 1 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/6.xml + + + multistatusItems + + okhrefs + 3.ics + + + + propfindItems + + okprops + {DAV:}getcontenttype + {DAV:}getetag + + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken2: + +
+
+ + remove resource (treated as new) + + DELETE + $calendarhome1:/synccalendar2/3.ics + + statusCode + + + + REPORT + $calendarhome1:/synccalendar2/ +
+ Depth + 1 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/6.xml + + + multistatusItems + + badhrefs + 3.ics + + +
+
+ + remove resource (treated as old) + + REPORT + $calendarhome1:/synccalendar2/ +
+ Depth + 1 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/7.xml + + + multistatusItems + + badhrefs + 3.ics + + + + propfindItems + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken1: + +
+
+ + changed resource + + PUT + $calendarhome1:/synccalendar2/1.ics + + text/calendar; charset=utf-8 + Resource/CalDAV/reports/put/4.txt + + + statusCode + + + + REPORT + $calendarhome1:/synccalendar2/ +
+ Depth + 1 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/6.xml + + + multistatusItems + + okhrefs + 1.ics + + + + propfindItems + + okprops + {DAV:}getcontenttype + {DAV:}getetag + + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken1: + +
+
+ + no change + + REPORT + $calendarhome1:/synccalendar2/ +
+ Depth + 1 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/6.xml + + + multistatusItems + + + propfindItems + + okprops + {DAV:}getcontenttype + {DAV:}getetag + + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken1: + +
+
+
+ + + + sync-report-home + + + Initialize + + DELETE + $calendarhome1:/synccalendar1/ + + + DELETE + $calendarhome1:/synccalendar2/ + + + MKCALENDAR + $calendarhome1:/synccalendar3/ + + + PUT + $calendarhome1:/synccalendar3/1.ics + + text/calendar; charset=utf-8 + Resource/CalDAV/reports/put/7.txt + + + + PUT + $calendarhome1:/synccalendar3/2.ics + + text/calendar; charset=utf-8 + Resource/CalDAV/reports/put/8.txt + + + + MKCALENDAR + $calendarhome1:/synccalendar4/ + + + PUT + $calendarhome1:/synccalendar4/1.ics + + text/calendar; charset=utf-8 + Resource/CalDAV/reports/put/10.txt + + + + PUT + $calendarhome1:/synccalendar4/2.ics + + text/calendar; charset=utf-8 + Resource/CalDAV/reports/put/11.txt + + + + + initial query - grab token + + REPORT + $calendarhome1:/ +
+ Depth + infinity +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/2.xml + + + multistatusItems + + okhrefs + $calendar_home_items_initial_sync: + synccalendar3/ + synccalendar3/1.ics + synccalendar3/2.ics + synccalendar4/ + synccalendar4/1.ics + synccalendar4/2.ics + + + badhrefs + $dropbox:/ + + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken1: + +
+
+ + new resource + + PUT + $calendarhome1:/synccalendar3/3.ics + + text/calendar; charset=utf-8 + Resource/CalDAV/reports/put/9.txt + + + statusCode + + + + REPORT + $calendarhome1:/ +
+ Depth + infinity +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/3.xml + + + multistatusItems + + okhrefs + synccalendar3/ + synccalendar3/3.ics + + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken2: + +
+
+ + remove resource (treated as new) + + DELETE + $calendarhome1:/synccalendar3/3.ics + + statusCode + + + + REPORT + $calendarhome1:/ +
+ Depth + infinity +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/3.xml + + + multistatusItems + + okhrefs + synccalendar3/ + + + badhrefs + synccalendar3/3.ics + + +
+
+ + remove resource (treated as old) + + REPORT + $calendarhome1:/ +
+ Depth + infinity +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/4.xml + + + multistatusItems + + okhrefs + synccalendar3/ + + + badhrefs + synccalendar3/3.ics + + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken1: + +
+
+ + changed resource + + PUT + $calendarhome1:/synccalendar3/1.ics + + text/calendar; charset=utf-8 + Resource/CalDAV/reports/put/7.txt + + + statusCode + + + + REPORT + $calendarhome1:/ +
+ Depth + infinity +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/3.xml + + + multistatusItems + + okhrefs + synccalendar3/ + synccalendar3/1.ics + + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken1: + +
+
+ + no change + + REPORT + $calendarhome1:/ +
+ Depth + infinity +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/3.xml + + + multistatusItems + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken1: + +
+
+
+ + + + sync-report-home + + + initial query - grab token + + REPORT + $calendarhome1:/ +
+ Depth + infinity +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/5.xml + + + multistatusItems + + okhrefs + $calendar_home_items_initial_sync: + synccalendar3/ + synccalendar3/1.ics + synccalendar3/2.ics + synccalendar4/ + synccalendar4/1.ics + synccalendar4/2.ics + + + badhrefs + $dropbox:/ + + + + propfindItems + + ignore + $calendarhome1:/$outbox:/ + $calendarhome1:/$freebusy: + $calendarhome1:/$notification:/ + $calendarhome1:/$dropbox:/ + + + okprops + {DAV:}getcontenttype + {DAV:}getetag + + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken1: + +
+
+ + new resource + + PUT + $calendarhome1:/synccalendar4/3.ics + + text/calendar; charset=utf-8 + Resource/CalDAV/reports/put/12.txt + + + statusCode + + + + REPORT + $calendarhome1:/ +
+ Depth + infinity +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/6.xml + + + multistatusItems + + okhrefs + synccalendar4/ + synccalendar4/3.ics + + + + propfindItems + + okprops + {DAV:}getcontenttype + {DAV:}getetag + + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken2: + +
+
+ + remove resource (treated as new) + + DELETE + $calendarhome1:/synccalendar4/3.ics + + statusCode + + + + REPORT + $calendarhome1:/ +
+ Depth + infinity +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/6.xml + + + multistatusItems + + okhrefs + synccalendar4/ + + + badhrefs + synccalendar4/3.ics + + +
+
+ + remove resource (treated as old) + + REPORT + $calendarhome1:/ +
+ Depth + infinity +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/7.xml + + + multistatusItems + + okhrefs + synccalendar4/ + + + badhrefs + synccalendar4/3.ics + + + + propfindItems + + count + 2 + + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken1: + +
+
+ + changed resource + + PUT + $calendarhome1:/synccalendar4/1.ics + + text/calendar; charset=utf-8 + Resource/CalDAV/reports/put/10.txt + + + statusCode + + + + REPORT + $calendarhome1:/ +
+ Depth + infinity +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/6.xml + + + multistatusItems + + okhrefs + synccalendar4/ + synccalendar4/1.ics + + + + propfindItems + + okprops + {DAV:}getcontenttype + {DAV:}getetag + + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken1: + +
+
+ + no change + + REPORT + $calendarhome1:/ +
+ Depth + infinity +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/6.xml + + + multistatusItems + + + propfindItems + + okprops + {DAV:}getcontenttype + {DAV:}getetag + + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken1: + +
+
+
+ + + + sync-report-home + + + initial query - grab token + + REPORT + $calendarhome1:/ +
+ Depth + infinity +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/2.xml + + + multistatusItems + + okhrefs + $calendar_home_items_initial_sync: + synccalendar3/ + synccalendar3/1.ics + synccalendar3/2.ics + synccalendar4/ + synccalendar4/1.ics + synccalendar4/2.ics + + + badhrefs + $dropbox:/ + + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken1: + +
+
+ + remove resource then calendar + + DELETE + $calendarhome1:/synccalendar3/1.ics + + statusCode + + + + DELETE + $calendarhome1:/synccalendar3/ + + statusCode + + + + REPORT + $calendarhome1:/ +
+ Depth + infinity +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/3.xml + + + multistatusItems + + badhrefs + synccalendar3/ + + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken2: + +
+
+ + add calendar - test last sync + + MKCALENDAR + $calendarhome1:/synccalendar3/ + + statusCode + + + + REPORT + $calendarhome1:/ +
+ Depth + infinity +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/4.xml + + + multistatusItems + + okhrefs + synccalendar3/ + + +
+
+ + add calendar - test previous sync + + REPORT + $calendarhome1:/ +
+ Depth + infinity +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/3.xml + + + multistatusItems + + okhrefs + synccalendar3/ + + +
+
+
+ + + + sync-report-home + + + Initialize + + DELETE + $calendarhome1:/synccalendar1/ + + + DELETE + $calendarhome1:/synccalendar2/ + + + MKCALENDAR + $calendarhome1:/synccalendar3/ + + + PUT + $calendarhome1:/synccalendar3/1.ics + + text/calendar; charset=utf-8 + Resource/CalDAV/reports/put/7.txt + + + + PUT + $calendarhome1:/synccalendar3/2.ics + + text/calendar; charset=utf-8 + Resource/CalDAV/reports/put/8.txt + + + + MKCALENDAR + $calendarhome1:/synccalendar4/ + + + PUT + $calendarhome1:/synccalendar4/1.ics + + text/calendar; charset=utf-8 + Resource/CalDAV/reports/put/10.txt + + + + PUT + $calendarhome1:/synccalendar4/2.ics + + text/calendar; charset=utf-8 + Resource/CalDAV/reports/put/11.txt + + + + + initial query - grab token + + REPORT + $calendarhome1:/ +
+ Depth + 1 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/8.xml + + + multistatusItems + + okhrefs + $calendar_home_items_initial_sync: + synccalendar3/ + synccalendar4/ + + + badhrefs + $dropbox:/ + + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken1: + +
+
+ + new resource + + PUT + $calendarhome1:/synccalendar3/3.ics + + text/calendar; charset=utf-8 + Resource/CalDAV/reports/put/9.txt + + + statusCode + + + + REPORT + $calendarhome1:/ +
+ Depth + 1 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/12.xml + + + multistatusItems + + okhrefs + synccalendar3/ + + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken2: + +
+
+ + remove resource (treated as new) + + DELETE + $calendarhome1:/synccalendar3/3.ics + + statusCode + + + + REPORT + $calendarhome1:/ +
+ Depth + 1 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/12.xml + + + multistatusItems + + okhrefs + synccalendar3/ + + +
+
+ + remove resource (treated as old) + + REPORT + $calendarhome1:/ +
+ Depth + 1 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/13.xml + + + multistatusItems + + okhrefs + synccalendar3/ + + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken1: + +
+
+ + changed resource + + PUT + $calendarhome1:/synccalendar3/1.ics + + text/calendar; charset=utf-8 + Resource/CalDAV/reports/put/7.txt + + + statusCode + + + + REPORT + $calendarhome1:/ +
+ Depth + 1 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/12.xml + + + multistatusItems + + okhrefs + synccalendar3/ + + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken1: + +
+
+ + no change + + REPORT + $calendarhome1:/ +
+ Depth + 1 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/12.xml + + + multistatusItems + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken1: + +
+
+
+ + + + sync-report-home + + + initial query - grab token + + REPORT + $calendarhome1:/ +
+ Depth + 1 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/14.xml + + + multistatusItems + + okhrefs + $calendar_home_items_initial_sync: + synccalendar3/ + synccalendar4/ + + + badhrefs + $dropbox:/ + + + + propfindItems + + ignore + $calendarhome1:/$outbox:/ + $calendarhome1:/$freebusy: + $calendarhome1:/$notification:/ + $calendarhome1:/$dropbox:/ + + + okprops + {DAV:}getcontenttype + {DAV:}getetag + + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken1: + +
+
+ + new resource + + PUT + $calendarhome1:/synccalendar4/3.ics + + text/calendar; charset=utf-8 + Resource/CalDAV/reports/put/12.txt + + + statusCode + + + + REPORT + $calendarhome1:/ +
+ Depth + infinity +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/15.xml + + + multistatusItems + + okhrefs + synccalendar4/ + + + + propfindItems + + okprops + {DAV:}getcontenttype + {DAV:}getetag + + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken2: + +
+
+ + remove resource (treated as new) + + DELETE + $calendarhome1:/synccalendar4/3.ics + + statusCode + + + + REPORT + $calendarhome1:/ +
+ Depth + infinity +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/15.xml + + + multistatusItems + + okhrefs + synccalendar4/ + + +
+
+ + remove resource (treated as old) + + REPORT + $calendarhome1:/ +
+ Depth + infinity +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/16.xml + + + multistatusItems + + okhrefs + synccalendar4/ + + + + propfindItems + + count + 1 + + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken1: + +
+
+ + changed resource + + PUT + $calendarhome1:/synccalendar4/1.ics + + text/calendar; charset=utf-8 + Resource/CalDAV/reports/put/10.txt + + + statusCode + + + + REPORT + $calendarhome1:/ +
+ Depth + infinity +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/15.xml + + + multistatusItems + + okhrefs + synccalendar4/ + + + + propfindItems + + okprops + {DAV:}getcontenttype + {DAV:}getetag + + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken1: + +
+
+ + no change + + REPORT + $calendarhome1:/ +
+ Depth + infinity +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/15.xml + + + multistatusItems + + + propfindItems + + okprops + {DAV:}getcontenttype + {DAV:}getetag + + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken1: + +
+
+
+ + + + sync-report-home + + + initial query - grab token + + REPORT + $calendarhome1:/ +
+ Depth + 1 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/8.xml + + + multistatusItems + + okhrefs + $calendar_home_items_initial_sync: + synccalendar3/ + synccalendar4/ + + + badhrefs + $dropbox:/ + + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken1: + +
+
+ + remove resource then calendar + + DELETE + $calendarhome1:/synccalendar3/1.ics + + statusCode + + + + DELETE + $calendarhome1:/synccalendar3/ + + statusCode + + + + REPORT + $calendarhome1:/ +
+ Depth + 1 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/12.xml + + + multistatusItems + + badhrefs + synccalendar3/ + + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken2: + +
+
+ + add calendar - test last sync + + MKCALENDAR + $calendarhome1:/synccalendar3/ + + statusCode + + + + REPORT + $calendarhome1:/ +
+ Depth + 1 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/13.xml + + + multistatusItems + + okhrefs + synccalendar3/ + + +
+
+ + add calendar - test previous sync + + REPORT + $calendarhome1:/ +
+ Depth + 1 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/12.xml + + + multistatusItems + + okhrefs + synccalendar3/ + + +
+
+
+ + + + initial query + + REPORT + $inboxpath1:/ +
+ Depth + 1 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/2.xml + + + multistatusItems + + okhrefs + $calendar_sync_extra_items: + + +
+
+
+ + + + initial query + + REPORT + $calendarpath1:/ +
+ Depth + 1 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/11.xml + + + prepostcondition + + error + {DAV:}valid-sync-token + + +
+
+
+ + + + sync-report-home + + + initial query - grab token + + REPORT + $calendarhome1:/ +
+ Depth + infinity +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/2.xml + + + multistatusItems + + okhrefs + $calendar_home_items_initial_sync: + synccalendar3/ + synccalendar4/ + synccalendar4/1.ics + synccalendar4/2.ics + + + badhrefs + $dropbox:/ + + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken1: + +
+
+ + Change a property + + PROPPATCH + $calendarhome1:/synccalendar3/ + + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/17.xml + + + statusCode + + + + REPORT + $calendarhome1:/ +
+ Depth + infinity +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/3.xml + + + multistatusItems + + okhrefs + synccalendar3/ + + + + xmlElementMatch + + exists + /{DAV:}multistatus/{DAV:}sync-token[!$synctoken1:] + + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken1: + +
+
+ + Remove a property + + PROPPATCH + $calendarhome1:/synccalendar3/ + + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/18.xml + + + statusCode + + + + REPORT + $calendarhome1:/ +
+ Depth + infinity +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/3.xml + + + multistatusItems + + okhrefs + synccalendar3/ + + + + xmlElementMatch + + exists + /{DAV:}multistatus/{DAV:}sync-token[!$synctoken1:] + + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken1: + +
+
+
+ + + + sync-report-home + + + initial query - grab token + + REPORT + $calendarhome1:/ +
+ Depth + infinity +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/8.xml + + + multistatusItems + + okhrefs + $calendar_home_items_initial_sync: + synccalendar3/ + synccalendar4/ + + + badhrefs + $dropbox:/ + + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken1: + +
+
+ + Change a property + + PROPPATCH + $calendarhome1:/synccalendar3/ + + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/17.xml + + + statusCode + + + + REPORT + $calendarhome1:/ +
+ Depth + infinity +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/12.xml + + + multistatusItems + + okhrefs + synccalendar3/ + + + + xmlElementMatch + + exists + /{DAV:}multistatus/{DAV:}sync-token[!$synctoken1:] + + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken1: + +
+
+ + Remove a property + + PROPPATCH + $calendarhome1:/synccalendar3/ + + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/18.xml + + + statusCode + + + + REPORT + $calendarhome1:/ +
+ Depth + infinity +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/12.xml + + + multistatusItems + + okhrefs + synccalendar3/ + + + + xmlElementMatch + + exists + /{DAV:}multistatus/{DAV:}sync-token[!$synctoken1:] + + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken1: + +
+
+
+ + + + + sync-report-home + + + initial query - grab token + + REPORT + $calendarhome1:/ +
+ Depth + infinity +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/8.xml + + + multistatusItems + + okhrefs + $calendar_home_items_initial_sync: + synccalendar3/ + synccalendar4/ + + + badhrefs + $dropbox:/ + + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken1: + +
+
+ + Change property on Inbox + + PROPPATCH + $inboxpath1:/ + + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/19.xml + + + propfindItems + + okprops + {urn:ietf:params:xml:ns:caldav}schedule-default-calendar-URL + + + + + REPORT + $calendarhome1:/ +
+ Depth + infinity +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/12.xml + + + multistatusItems + + okhrefs + $inbox:/ + + + + xmlElementMatch + + exists + /{DAV:}multistatus/{DAV:}sync-token[!$synctoken1:] + + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken1: + +
+
+ + Reset the property + + PROPPATCH + $inboxpath1:/ + + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/20.xml + + + propfindItems + + okprops + {urn:ietf:params:xml:ns:caldav}schedule-default-calendar-URL + + + + + REPORT + $calendarhome1:/ +
+ Depth + infinity +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/12.xml + + + multistatusItems + + okhrefs + $inbox:/ + + + + xmlElementMatch + + exists + /{DAV:}multistatus/{DAV:}sync-token[!$synctoken1:] + + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken1: + +
+
+
+ + + + + sync-report-home + + + initial query - grab token + + REPORT + $calendarhome1:/ +
+ Depth + infinity +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/22.xml + + + multistatusItems + + okhrefs + $calendar_home_items_initial_sync: + synccalendar3/ + synccalendar4/ + + + badhrefs + $dropbox:/ + + + + dataString + + contains + opaque + + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken1: + +
+
+ + Change property on calendar + + PROPPATCH + $calendarpath1:/ + + text/xml; charset=utf-8 + Resource/Common/PROPPATCH/calendar-transp-transparent.xml + + + propfindItems + + okprops + {urn:ietf:params:xml:ns:caldav}schedule-calendar-transp + + + + + REPORT + $calendarhome1:/ +
+ Depth + infinity +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/23.xml + + + multistatusItems + + okhrefs + $calendar:/ + + + + xmlElementMatch + + exists + /{DAV:}multistatus/{DAV:}sync-token[!$synctoken1:] + + + + dataString + + contains + transparent + + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken1: + +
+
+ + Reset the property + + PROPPATCH + $calendarpath1:/ + + text/xml; charset=utf-8 + Resource/Common/PROPPATCH/calendar-transp-opaque.xml + + + propfindItems + + okprops + {urn:ietf:params:xml:ns:caldav}schedule-calendar-transp + + + + + REPORT + $calendarhome1:/ +
+ Depth + infinity +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/23.xml + + + multistatusItems + + okhrefs + $calendar:/ + + + + xmlElementMatch + + exists + /{DAV:}multistatus/{DAV:}sync-token[!$synctoken1:] + + + + dataString + + contains + opaque + + + + /{DAV:}multistatus/{DAV:}sync-token + $synctoken1: + +
+
+
+ + + + + + sync-report-home + + + initial query - no minimal + + REPORT + $calendarhome1:/ +
+ Depth + infinity +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/24.xml + + + dataString + + contains + foobar + + +
+
+ + initial query - with minimal + + REPORT + $calendarhome1:/ +
+ Depth + infinity +
+
+ Prefer + return=minimal +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/24.xml + + + dataString + + notcontains + foobar + + +
+
+
+ + + + + + sync-report-limit + + Limit not allowed + + REPORT + $calendarhome1:/ +
+ Depth + 0 +
+ + text/xml; charset=utf-8 + Resource/CalDAV/reports/sync/21.xml + + + prepostcondition + + error + {DAV:}number-of-matches-within-limits + + +
+
+
+ + + +
diff --git a/apps/dav/tests/travis/carddavtester/install.sh b/apps/dav/tests/travis/carddav/install.sh similarity index 100% rename from apps/dav/tests/travis/carddavtester/install.sh rename to apps/dav/tests/travis/carddav/install.sh diff --git a/apps/dav/tests/travis/carddavtester/script.sh b/apps/dav/tests/travis/carddav/script.sh similarity index 100% rename from apps/dav/tests/travis/carddavtester/script.sh rename to apps/dav/tests/travis/carddav/script.sh