[CalendarServer-changes] [13971] CalDAVTester/trunk

source_changes at macosforge.org source_changes at macosforge.org
Wed Sep 17 11:28:40 PDT 2014


Revision: 13971
          http://trac.calendarserver.org//changeset/13971
Author:   cdaboo at apple.com
Date:     2014-09-17 11:28:40 -0700 (Wed, 17 Sep 2014)
Log Message:
-----------
Add crud POST update tests for return-changed behavior.

Modified Paths:
--------------
    CalDAVTester/trunk/scripts/tests/CalDAV/bulk.xml
    CalDAVTester/trunk/scripts/tests/CardDAV/bulk.xml

Added Paths:
-----------
    CalDAVTester/trunk/Resource/CalDAV/bulk/crud-one/6.xml
    CalDAVTester/trunk/Resource/CalDAV/bulk/crud-one/7.ics
    CalDAVTester/trunk/Resource/CalDAV/bulk/crud-one-return/
    CalDAVTester/trunk/Resource/CalDAV/bulk/crud-one-return/1.xml
    CalDAVTester/trunk/Resource/CalDAV/bulk/crud-one-return/2.ics
    CalDAVTester/trunk/Resource/CalDAV/bulk/crud-one-return/3.xml
    CalDAVTester/trunk/Resource/CalDAV/bulk/crud-one-return/4.ics
    CalDAVTester/trunk/Resource/CardDAV/bulk/crud-one/6.xml
    CalDAVTester/trunk/Resource/CardDAV/bulk/crud-one/7.vcf
    CalDAVTester/trunk/Resource/CardDAV/bulk/crud-one-return/
    CalDAVTester/trunk/Resource/CardDAV/bulk/crud-one-return/1.xml
    CalDAVTester/trunk/Resource/CardDAV/bulk/crud-one-return/2.vcf
    CalDAVTester/trunk/Resource/CardDAV/bulk/crud-one-return/3.xml
    CalDAVTester/trunk/Resource/CardDAV/bulk/crud-one-return/4.vcf

Added: CalDAVTester/trunk/Resource/CalDAV/bulk/crud-one/6.xml
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/bulk/crud-one/6.xml	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/bulk/crud-one/6.xml	2014-09-17 18:28:40 UTC (rev 13971)
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<MM:multiput xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav"  xmlns:MM="http://me.com/_namespace/">
+<MM:resource>
+<D:href>$href:</D:href>
+<D:set>
+<C:calendar-data><![CDATA[BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//PYVOBJECT//NONSGML Version 1//EN
+BEGIN:VTIMEZONE
+TZID:Etc/GMT+5
+X-LIC-LOCATION:Etc/GMT+5
+BEGIN:STANDARD
+DTSTART:18000101T000000
+RDATE:18000101T000000
+TZNAME:GMT+5
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+UID:$uid1:
+DTSTART;TZID=Etc/GMT+5:$now.0:T180000
+DURATION:PT1H
+DTSTAMP:20051222T210310Z
+SUMMARY:event 1 modified
+BEGIN:VALARM
+ACTION:AUDIO
+TRIGGER;RELATED=START:-PT10M
+END:VALARM
+END:VEVENT
+END:VCALENDAR
+]]>
+</C:calendar-data>
+</D:set>
+</MM:resource>
+</MM:multiput>

Added: CalDAVTester/trunk/Resource/CalDAV/bulk/crud-one/7.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/bulk/crud-one/7.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/bulk/crud-one/7.ics	2014-09-17 18:28:40 UTC (rev 13971)
@@ -0,0 +1,26 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//PYVOBJECT//NONSGML Version 1//EN
+BEGIN:VTIMEZONE
+TZID:Etc/GMT+5
+X-LIC-LOCATION:Etc/GMT+5
+BEGIN:STANDARD
+DTSTART:18000101T000000
+RDATE:18000101T000000
+TZNAME:GMT+5
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+UID:$uid1:
+DTSTART;TZID=Etc/GMT+5:$now.0:T180000
+DURATION:PT1H
+DTSTAMP:20051222T210310Z
+SUMMARY:event 1 modified
+BEGIN:VALARM
+ACTION:AUDIO
+TRIGGER;RELATED=START:-PT10M
+END:VALARM
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/bulk/crud-one-return/1.xml
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/bulk/crud-one-return/1.xml	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/bulk/crud-one-return/1.xml	2014-09-17 18:28:40 UTC (rev 13971)
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<MM:multiput xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav"  xmlns:MM="http://me.com/_namespace/">
+<MM:resource>
+<D:set>
+<C:calendar-data><![CDATA[BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//PYVOBJECT//NONSGML Version 1//EN
+BEGIN:VTIMEZONE
+TZID:Etc/GMT+5
+X-LIC-LOCATION:Etc/GMT+5
+BEGIN:STANDARD
+DTSTART:18000101T000000
+RDATE:18000101T000000
+TZNAME:GMT+5
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+UID:$uid1:
+DTSTART;TZID=Etc/GMT+5:$now.0:T180000
+DURATION:PT1H
+DTSTAMP:20051222T210310Z
+SUMMARY:event 1
+ORGANIZER;CN=$username1::$cuaddr1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED:$cuaddr1:
+BEGIN:VALARM
+ACTION:AUDIO
+TRIGGER;RELATED=START:-PT10M
+END:VALARM
+END:VEVENT
+END:VCALENDAR
+]]>
+</C:calendar-data>
+</D:set>
+</MM:resource>
+</MM:multiput>

Added: CalDAVTester/trunk/Resource/CalDAV/bulk/crud-one-return/2.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/bulk/crud-one-return/2.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/bulk/crud-one-return/2.ics	2014-09-17 18:28:40 UTC (rev 13971)
@@ -0,0 +1,28 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//PYVOBJECT//NONSGML Version 1//EN
+BEGIN:VTIMEZONE
+TZID:Etc/GMT+5
+X-LIC-LOCATION:Etc/GMT+5
+BEGIN:STANDARD
+DTSTART:18000101T000000
+RDATE:18000101T000000
+TZNAME:GMT+5
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+UID:$uid1:
+DTSTART;TZID=Etc/GMT+5:$now.0:T180000
+DURATION:PT1H
+DTSTAMP:20051222T210310Z
+SUMMARY:event 1
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+BEGIN:VALARM
+ACTION:AUDIO
+TRIGGER;RELATED=START:-PT10M
+END:VALARM
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/bulk/crud-one-return/3.xml
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/bulk/crud-one-return/3.xml	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/bulk/crud-one-return/3.xml	2014-09-17 18:28:40 UTC (rev 13971)
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<MM:multiput xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav"  xmlns:MM="http://me.com/_namespace/">
+<MM:resource>
+<D:href>$href:</D:href>
+<D:set>
+<C:calendar-data><![CDATA[BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//PYVOBJECT//NONSGML Version 1//EN
+BEGIN:VTIMEZONE
+TZID:Etc/GMT+5
+X-LIC-LOCATION:Etc/GMT+5
+BEGIN:STANDARD
+DTSTART:18000101T000000
+RDATE:18000101T000000
+TZNAME:GMT+5
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+UID:$uid1:
+DTSTART;TZID=Etc/GMT+5:$now.0:T180000
+DURATION:PT1H
+DTSTAMP:20051222T210310Z
+SUMMARY:event 1 modified
+ORGANIZER;CN=$username1::$cuaddr1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED:$cuaddr1:
+BEGIN:VALARM
+ACTION:AUDIO
+TRIGGER;RELATED=START:-PT10M
+END:VALARM
+END:VEVENT
+END:VCALENDAR
+]]>
+</C:calendar-data>
+</D:set>
+</MM:resource>
+</MM:multiput>

Added: CalDAVTester/trunk/Resource/CalDAV/bulk/crud-one-return/4.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/bulk/crud-one-return/4.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/bulk/crud-one-return/4.ics	2014-09-17 18:28:40 UTC (rev 13971)
@@ -0,0 +1,29 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//PYVOBJECT//NONSGML Version 1//EN
+BEGIN:VTIMEZONE
+TZID:Etc/GMT+5
+X-LIC-LOCATION:Etc/GMT+5
+BEGIN:STANDARD
+DTSTART:18000101T000000
+RDATE:18000101T000000
+TZNAME:GMT+5
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+UID:$uid1:
+DTSTART;TZID=Etc/GMT+5:$now.0:T180000
+DURATION:PT1H
+DTSTAMP:20051222T210310Z
+SUMMARY:event 1 modified
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+SEQUENCE:1
+BEGIN:VALARM
+ACTION:AUDIO
+TRIGGER;RELATED=START:-PT10M
+END:VALARM
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CardDAV/bulk/crud-one/6.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/bulk/crud-one/6.xml	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CardDAV/bulk/crud-one/6.xml	2014-09-17 18:28:40 UTC (rev 13971)
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<MM:multiput xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:carddav"  xmlns:MM="http://me.com/_namespace/">
+<MM:resource>
+<D:href>$href:</D:href>
+<D:set>
+<D:prop>
+<C:address-data><![CDATA[BEGIN:VCARD
+VERSION:3.0
+N:01-01;User;;;
+FN:User 01-01
+EMAIL;type=INTERNET;type=WORK;type=pref:user01 at example.com
+TEL;type=WORK;type=pref:1-555-555-5555
+TEL;type=CELL:1-444-444-4444
+ADR;type=WORK;type=pref:;;1245 Test;Sesame Street;California;12345;USA
+UID:user01-uid01
+END:VCARD
+]]>
+</C:address-data>
+</D:prop>
+</D:set>
+</MM:resource>
+</MM:multiput>

Added: CalDAVTester/trunk/Resource/CardDAV/bulk/crud-one/7.vcf
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/bulk/crud-one/7.vcf	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CardDAV/bulk/crud-one/7.vcf	2014-09-17 18:28:40 UTC (rev 13971)
@@ -0,0 +1,10 @@
+BEGIN:VCARD
+VERSION:3.0
+N:01-01;User;;;
+FN:User 01-01
+EMAIL;type=INTERNET;type=WORK;type=pref:user01 at example.com
+TEL;type=WORK;type=pref:1-555-555-5555
+TEL;type=CELL:1-444-444-4444
+ADR;type=WORK;type=pref:;;1245 Test;Sesame Street;California;12345;USA
+UID:user01-uid01
+END:VCARD

Added: CalDAVTester/trunk/Resource/CardDAV/bulk/crud-one-return/1.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/bulk/crud-one-return/1.xml	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CardDAV/bulk/crud-one-return/1.xml	2014-09-17 18:28:40 UTC (rev 13971)
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<MM:multiput xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:carddav"  xmlns:MM="http://me.com/_namespace/">
+<MM:resource>
+<D:set>
+<C:address-data><![CDATA[BEGIN:VCARD
+VERSION:3.0
+PRODID:-//CALENDARSERVER.ORG//NONSGML Version 1//EN
+UID:78b64b6b-80b9-4b8a-bd81-8f36645d8bbf
+FN:user02
+N:user02;;;;
+X-ADDRESSBOOKSERVER-KIND:group
+X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:user01-uid02
+X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:user01-uid02
+X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:FCBA0FA3-00B2-4C95-B4EC-4CCC4843F8B1
+X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:3765A955-1B96-41EA-994D-335192BEDCCD
+X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:44745975-AE6D-4FB0-80A6-A298427E047A
+X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:user01-uid01
+X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:934731C6-1C95-4C40-BE1F-FA4215B2307B
+X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:ED7A5AEC-AB19-4CE0-AD6A-2923A3E5C4E1
+X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:3765A955-1B96-41EA-994D-335192BEDCCD
+END:VCARD
+]]>
+</C:address-data>
+</D:set>
+</MM:resource>
+</MM:multiput>

Added: CalDAVTester/trunk/Resource/CardDAV/bulk/crud-one-return/2.vcf
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/bulk/crud-one-return/2.vcf	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CardDAV/bulk/crud-one-return/2.vcf	2014-09-17 18:28:40 UTC (rev 13971)
@@ -0,0 +1,15 @@
+BEGIN:VCARD
+VERSION:3.0
+PRODID:-//CALENDARSERVER.ORG//NONSGML Version 1//EN
+UID:78b64b6b-80b9-4b8a-bd81-8f36645d8bbf
+FN:user02
+N:user02;;;;
+X-ADDRESSBOOKSERVER-KIND:group
+X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:3765A955-1B96-41EA-994D-335192BEDCCD
+X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:44745975-AE6D-4FB0-80A6-A298427E047A
+X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:934731C6-1C95-4C40-BE1F-FA4215B2307B
+X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:ED7A5AEC-AB19-4CE0-AD6A-2923A3E5C4E1
+X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:FCBA0FA3-00B2-4C95-B4EC-4CCC4843F8B1
+X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:user01-uid01
+X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:user01-uid02
+END:VCARD

Added: CalDAVTester/trunk/Resource/CardDAV/bulk/crud-one-return/3.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/bulk/crud-one-return/3.xml	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CardDAV/bulk/crud-one-return/3.xml	2014-09-17 18:28:40 UTC (rev 13971)
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<MM:multiput xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:carddav"  xmlns:MM="http://me.com/_namespace/">
+<MM:resource>
+<D:href>$href:</D:href>
+<D:set>
+<D:prop>
+<C:address-data><![CDATA[BEGIN:VCARD
+VERSION:3.0
+PRODID:-//CALENDARSERVER.ORG//NONSGML Version 1//EN
+UID:78b64b6b-80b9-4b8a-bd81-8f36645d8bbf
+FN:user02-02
+N:user02-02;;;;
+X-ADDRESSBOOKSERVER-KIND:group
+X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:user01-uid02
+X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:user01-uid02
+X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:FCBA0FA3-00B2-4C95-B4EC-4CCC4843F8B1
+X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:3765A955-1B96-41EA-994D-335192BEDCCD
+X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:44745975-AE6D-4FB0-80A6-A298427E047A
+X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:user01-uid01
+X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:934731C6-1C95-4C40-BE1F-FA4215B2307B
+X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:ED7A5AEC-AB19-4CE0-AD6A-2923A3E5C4E1
+X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:3765A955-1B96-41EA-994D-335192BEDCCD
+END:VCARD
+]]>
+</C:address-data>
+</D:prop>
+</D:set>
+</MM:resource>
+</MM:multiput>

Added: CalDAVTester/trunk/Resource/CardDAV/bulk/crud-one-return/4.vcf
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/bulk/crud-one-return/4.vcf	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CardDAV/bulk/crud-one-return/4.vcf	2014-09-17 18:28:40 UTC (rev 13971)
@@ -0,0 +1,15 @@
+BEGIN:VCARD
+VERSION:3.0
+PRODID:-//CALENDARSERVER.ORG//NONSGML Version 1//EN
+UID:78b64b6b-80b9-4b8a-bd81-8f36645d8bbf
+FN:user02-02
+N:user02-02;;;;
+X-ADDRESSBOOKSERVER-KIND:group
+X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:3765A955-1B96-41EA-994D-335192BEDCCD
+X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:44745975-AE6D-4FB0-80A6-A298427E047A
+X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:934731C6-1C95-4C40-BE1F-FA4215B2307B
+X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:ED7A5AEC-AB19-4CE0-AD6A-2923A3E5C4E1
+X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:FCBA0FA3-00B2-4C95-B4EC-4CCC4843F8B1
+X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:user01-uid01
+X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:user01-uid02
+END:VCARD

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/bulk.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/bulk.xml	2014-09-17 17:07:30 UTC (rev 13970)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/bulk.xml	2014-09-17 18:28:40 UTC (rev 13971)
@@ -726,6 +726,54 @@
 				</verify>
 			</request>
 		</test>
+		<test name='7'>
+			<description>POST single new event</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarpath1:/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/bulk/crud-one/6.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}getetag[!$etag:]</value>
+						<value>$multistatus-href-prefix:[=$href:]</value>
+					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{urn:ietf:params:xml:ns:caldav}calendar-data</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>$verify-property-prefix:/{DAV:}getetag</name>
+					<variable>$etag:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='8'>
+			<description>Check valid data</description>
+			<request>
+				<method>GET</method>
+				<ruri>$href:</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/bulk/crud-one/7.ics</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>ETag</name>
+						<value>$etag:</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
 		<test name='-1'>
 			<description>Clean up</description>
 			<request>
@@ -738,6 +786,120 @@
 		</test>
 	</test-suite>
 	
+	<test-suite name='CRUD POST - one event return changed'>
+		<test name='1'>
+			<description>POST single new event</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarpath1:/</ruri>
+				<header>
+					<name>X-MobileMe-DAV-Options</name>
+					<value>return-changed-data</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/bulk/crud-one-return/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}getetag</value>
+						<value>$verify-property-prefix:/{urn:ietf:params:xml:ns:caldav}calendar-data</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>$multistatus-href-prefix:</name>
+					<variable>$href:</variable>
+				</grabelement>
+				<grabelement>
+					<name>$verify-property-prefix:/{DAV:}getetag</name>
+					<variable>$etag:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='2'>
+			<description>Check valid data</description>
+			<request>
+				<method>GET</method>
+				<ruri>$href:</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/bulk/crud-one-return/2.ics</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>ETag</name>
+						<value>$etag:</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>POST single new event</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarpath1:/</ruri>
+				<header>
+					<name>X-MobileMe-DAV-Options</name>
+					<value>return-changed-data</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/bulk/crud-one-return/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}getetag[!$etag:]</value>
+						<value>$multistatus-href-prefix:[=$href:]</value>
+						<value>$verify-property-prefix:/{urn:ietf:params:xml:ns:caldav}calendar-data</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>$verify-property-prefix:/{DAV:}getetag</name>
+					<variable>$etag:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='4'>
+			<description>Check valid data</description>
+			<request>
+				<method>GET</method>
+				<ruri>$href:</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/bulk/crud-one-return/4.ics</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>ETag</name>
+						<value>$etag:</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='-1'>
+			<description>Clean up</description>
+			<request>
+				<method>DELETEALL</method>
+				<ruri>$calendarpath1:/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
 	<test-suite name='CRUD POST - multiple'>
 		<test name='1'>
 			<description>POST single new event</description>

Modified: CalDAVTester/trunk/scripts/tests/CardDAV/bulk.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CardDAV/bulk.xml	2014-09-17 17:07:30 UTC (rev 13970)
+++ CalDAVTester/trunk/scripts/tests/CardDAV/bulk.xml	2014-09-17 18:28:40 UTC (rev 13971)
@@ -858,6 +858,54 @@
 				</verify>
 			</request>
 		</test>
+		<test name='7'>
+			<description>POST single existing vcard - update</description>
+			<request>
+				<method>POST</method>
+				<ruri>$addressbookpath1:/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/bulk/crud-one/6.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}getetag[!$etag:]</value>
+						<value>$multistatus-href-prefix:[=$href:]</value>
+					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{urn:ietf:params:xml:ns:carddav}address-data</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>$verify-property-prefix:/{DAV:}getetag</name>
+					<variable>$etag:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='8'>
+			<description>Data changed</description>
+			<request>
+				<method>GET</method>
+				<ruri>$href:</ruri>
+				<verify>
+					<callback>addressDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/bulk/crud-one/7.vcf</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>ETag</name>
+						<value>$etag:</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
 		<test name='-1'>
 			<description>Clean up</description>
 			<request>
@@ -870,6 +918,120 @@
 		</test>
 	</test-suite>
 	
+	<test-suite name='CRUD POST - one vcard return changed'>
+		<test name='1'>
+			<description>POST single new vcard</description>
+			<request>
+				<method>POST</method>
+				<ruri>$addressbookpath1:/</ruri>
+				<header>
+					<name>X-MobileMe-DAV-Options</name>
+					<value>return-changed-data</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/bulk/crud-one-return/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}getetag</value>
+						<value>$verify-property-prefix:/{urn:ietf:params:xml:ns:carddav}address-data</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>$multistatus-href-prefix:</name>
+					<variable>$href:</variable>
+				</grabelement>
+				<grabelement>
+					<name>$verify-property-prefix:/{DAV:}getetag</name>
+					<variable>$etag:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='2'>
+			<description>Check valid data</description>
+			<request>
+				<method>GET</method>
+				<ruri>$href:</ruri>
+				<verify>
+					<callback>addressDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/bulk/crud-one-return/2.vcf</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>ETag</name>
+						<value>$etag:</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>POST single existing vcard - update</description>
+			<request>
+				<method>POST</method>
+				<ruri>$addressbookpath1:/</ruri>
+				<header>
+					<name>X-MobileMe-DAV-Options</name>
+					<value>return-changed-data</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/bulk/crud-one-return/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}getetag[!$etag:]</value>
+						<value>$multistatus-href-prefix:[=$href:]</value>
+						<value>$verify-property-prefix:/{urn:ietf:params:xml:ns:carddav}address-data</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>$verify-property-prefix:/{DAV:}getetag</name>
+					<variable>$etag:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='4'>
+			<description>Data changed</description>
+			<request>
+				<method>GET</method>
+				<ruri>$href:</ruri>
+				<verify>
+					<callback>addressDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/bulk/crud-one-return/4.vcf</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>ETag</name>
+						<value>$etag:</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='-1'>
+			<description>Clean up</description>
+			<request>
+				<method>DELETEALL</method>
+				<ruri>$addressbookpath1:/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
 	<test-suite name='CRUD POST - multiple'>
 		<test name='1'>
 			<description>POST single new vcard</description>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20140917/ddedd4d7/attachment-0001.html>


More information about the calendarserver-changes mailing list