New regression tests for MKTICKET/BIND/PROPPATCH/DELETE as admin.

This commit is contained in:
Andrew McMillan 2010-03-25 15:02:33 +13:00
parent 36d564452e
commit 491772b066
12 changed files with 587 additions and 0 deletions

View File

@ -0,0 +1,13 @@
HTTP/1.1 201 Created
Date: Dow, 01 Jan 2000 00:00:00 GMT
DAV: 1, 2, access-control, calendar-access, calendar-schedule, extended-mkcol, calendar-proxy, bind, calendar-auto-schedule
ETag: "baad41c9f24bd1ecbdde6e58882df9b7"
Content-Length: 0
Content-Type: text/plain; charset="utf-8"
dav_etag: >baad41c9f24bd1ecbdde6e58882df9b7<
dav_name: >/user4/base/calendar/anothergoodleopard.ics<
dtstart: >2010-03-22 16:00:00+13<
summary: >An invited event. Black tie with pink polka dots is essential. Do not bring a leopard. Any leopards which do attend will be forcibly chained to a nearby fence.<

View File

@ -0,0 +1,50 @@
#
# Attempt to put an event into a bound location, where
# the binding does confer write privileges
#
TYPE=PUT
URL=http://regression.host/caldav.php/user4/base/calendar/anothergoodleopard.ics
HEADER=Content-Type: text/calendar; charset=utf-8
AUTH=user4:user4
HEAD
BEGINDATA
BEGIN:VCALENDAR
PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN
VERSION:2.0
BEGIN:VEVENT
CREATED:20100319T103247Z
LAST-MODIFIED:20100319T105620Z
DTSTAMP:20100319T105620Z
UID:70399cd7-50a4-4be4-a665-af593e19a7fd
SUMMARY:An invited event. Black tie with pink polka dots is essential. D
o not bring a leopard. Any leopards which do attend will be forcibly chai
ned to a nearby fence.
ORGANIZER;RSVP=TRUE;PARTSTAT=ACCEPTED;ROLE=CHAIR:mailto:user1@example.net
ATTENDEE;RSVP=TRUE;PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTICIPANT:mailto:user2
@example.net
ATTENDEE;RSVP=TRUE;PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTICIPANT:mailto:user3
@example.net
ATTENDEE;RSVP=TRUE;PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTICIPANT:mailto:user4
@example.net
ATTENDEE;RSVP=TRUE;PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTICIPANT:mailto:user5
@example.net
DTSTART:20100322T160000
DTEND:20100322T170000
X-MOZ-GENERATION:3
TRANSP:OPAQUE
X-MOZ-SEND-INVITATIONS:TRUE
SEQUENCE:1
END:VEVENT
END:VCALENDAR
ENDDATA
QUERY
SELECT caldav_data.dav_name, caldav_data.dav_etag, dtstart, summary
FROM caldav_data JOIN calendar_item USING(dav_name)
WHERE caldav_data.dav_name ~ '/user4/base/calendar/'
ENDQUERY

View File

@ -0,0 +1,54 @@
HTTP/1.1 100 Continue
HTTP/1.1 200 OK
Date: Dow, 01 Jan 2000 00:00:00 GMT
DAV: 1, 2, access-control, calendar-access, calendar-schedule, extended-mkcol, calendar-proxy, bind, calendar-auto-schedule
Content-Length: 0
Content-Type: text/plain; charset="utf-8"
dav_etag: >228540edb5690f6e8adb855aaa98ee98<
dav_name: >/user4/base/newcalendar/73d1f980-ec28-012c-11f9-002421a2359e.ics<
dtstart: >2010-01-06 11:00:00+13<
summary: >HELLO<
dav_etag: >83516c50151ea62ca04fd02f4f6af695<
dav_name: >/user4/base/newcalendar/939afe30-0f86-012d-1259-002421a2359e.ics<
dtstart: >2010-03-13 08:00:00+13<
summary: >Youngberg Hill @ McMinniville Wine & Food Festival<
dav_etag: >28371d97818ce13fb4ee87284b29c7c7<
dav_name: >/user4/base/newcalendar/12cbff90-0f8a-012d-1259-002421a2359e.ics<
dtstart: >2010-07-11 11:00:00+12<
summary: >Youngberg Hill @ Uncorked, Oregon Wine & Art Auction <
dav_etag: >54e5c8a4c302eee58d025c95adaf43ea<
dav_name: >/user4/base/newcalendar/242afc80-0f8c-012d-1259-002421a2359e.ics<
dtstart: >2010-07-23 13:30:00+12<
summary: >Pre- IPNC Winemaker Dinner @ Youngberg Hill<
dav_etag: >7ef2357c3213370b7b07cbe930315d0d<
dav_name: >/user4/base/newcalendar/950ca060-0f87-012d-1259-002421a2359e.ics<
dtstart: >2010-05-03 13:00:00+12<
summary: >Youngberg Hill Winemaker Dinner @ The Stephanie Inn<
dav_etag: >0e091d7cf1ea4f613199a2a60090a7e1<
dav_name: >/user4/base/newcalendar/4887b3b0-0f91-012d-1259-002421a2359e.ics<
dtstart: >2010-07-17 10:00:00+12<
summary: >New Event<
dav_etag: >823908a55c85231169c62d6a528cb790<
dav_name: >/user4/base/newcalendar/ed3beb90-0f8a-012d-1259-002421a2359e.ics<
dtstart: >2010-07-18 05:00:00+12<
summary: >Discover McMinnville AVA<
dav_etag: >ee431f372b6b841550bb4139db3c5e9f<
dav_name: >/user4/base/newcalendar/626c1f10-0f91-012d-1259-002421a2359e.ics<
dtstart: >2010-08-13 13:00:00+12<
summary: >Linfield Chamber Benefit @ Youngberg Hill<
dav_etag: >7afcfb06e68841ff74d32a351495af21<
dav_name: >/user4/base/newcalendar/b0362430-0f88-012d-1259-002421a2359e.ics<
dtstart: >2010-05-30 06:00:00+12<
summary: >Youngberg Hill Vineyard & Inn - Memorial Weekend<

View File

@ -0,0 +1,192 @@
#
# Attempt to put an event into a bound location, where
# the binding does confer write privileges
#
TYPE=PUT
URL=http://regression.host/caldav.php/user4/base/newcalendar/
HEADER=Content-Type: text/calendar; charset=utf-8
AUTH=user4:user4
HEAD
BEGINDATA
BEGIN:VCALENDAR
PRODID:-//Open Source Applications Foundation//NONSGML Chandler Server//E
N
VERSION:2.0
CALSCALE:GREGORIAN
BEGIN:VTIMEZONE
TZID:America/Los_Angeles
X-TZINFO:America/Los_Angeles[2007g/Partial@883612800000]
BEGIN:DAYLIGHT
TZOFFSETTO:-0700
TZOFFSETFROM:-0800
TZNAME:America/Los_Angeles(DST)
DTSTART:19980405T020000
RRULE:FREQ=YEARLY;UNTIL=20060403T100000Z;BYMONTH=4;BYDAY=1SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETTO:-0800
TZOFFSETFROM:-0700
TZNAME:America/Los_Angeles(STD)
DTSTART:19981025T020000
RRULE:FREQ=YEARLY;UNTIL=20061030T100000Z;BYMONTH=10;BYDAY=-1SU
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETTO:-0700
TZOFFSETFROM:-0800
TZNAME:America/Los_Angeles(DST)
DTSTART:20070311T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETTO:-0800
TZOFFSETFROM:-0700
TZNAME:America/Los_Angeles(STD)
DTSTART:20071104T020000
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
LAST-MODIFIED:20100125T214235Z
SEQUENCE:1
UID:73d1f980-ec28-012c-11f9-002421a2359e
SUMMARY:HELLO
DESCRIPTION:
DTSTART;VALUE=DATE-TIME;TZID=America/Los_Angeles:20100105T140000
CREATED:20100125T214226Z
DTSTAMP:20100125T214235Z
DURATION:PT1H
LOCATION:
END:VEVENT
BEGIN:VEVENT
LAST-MODIFIED:20100311T220844Z
SEQUENCE:18
URL;VALUE=URI:http://www.macwfc.org
UID:939afe30-0f86-012d-1259-002421a2359e
SUMMARY:Youngberg Hill @ McMinniville Wine & Food Festival
DESCRIPTION:March 12-14th McMinniville Wine & Food Festival\nCome visit Y
oungberg Hill at this wonderful festival. \nwww.macwfc.org\n\n
DTSTART;TZID=America/Los_Angeles:20100312T110000
CREATED:20100311T215422Z
DTSTAMP:20100311T220844Z
DURATION:P2DT5H
LOCATION:
X-VENUE:Evergreen Aviation\, McMnnville OR
END:VEVENT
BEGIN:VEVENT
LAST-MODIFIED:20100311T222451Z
SEQUENCE:11
URL;VALUE=URI:http://www.theoregonwineandartauction.org/
UID:12cbff90-0f8a-012d-1259-002421a2359e
SUMMARY:Youngberg Hill @ Uncorked\, Oregon Wine & Art Auction
DESCRIPTION:July 10th - Uncorked\, Oregon Wine & Art Auction\n\nCome join
Youngberg Hill for this wonderful event.
DTSTART;TZID=America/Los_Angeles:20100710T160000
CREATED:20100311T221924Z
DTSTAMP:20100311T222451Z
DURATION:PT4H30M
LOCATION:11400 Westland Lane\, Dayton OR
X-VENUE:The Methven Family Vineyards
END:VEVENT
BEGIN:VEVENT
LAST-MODIFIED:20100311T231118Z
SEQUENCE:7
UID:242afc80-0f8c-012d-1259-002421a2359e
SUMMARY:Pre- IPNC Winemaker Dinner @ Youngberg Hill
DESCRIPTION:July 22nd - PRE-IPNC Winemaker Dinner @ Youngberg Hill.\n\nDe
tails to follow.
DTSTART;TZID=America/Los_Angeles:20100722T183000
CREATED:20100311T223412Z
DTSTAMP:20100311T231118Z
DURATION:PT30M
LOCATION:
END:VEVENT
BEGIN:VEVENT
LAST-MODIFIED:20100311T220308Z
SEQUENCE:8
URL;VALUE=URI:http://www.stephanie-inn.com
UID:950ca060-0f87-012d-1259-002421a2359e
SUMMARY:Youngberg Hill Winemaker Dinner @ The Stephanie Inn
DESCRIPTION:May 2 - Stephanie Inn Winemaker Dinner @ Cannon Beach\nCome j
oin Youngberg Hill Vineyards & Inn for this wonderful experience. Detail
s at \nwww.stephanie-inn.com\n\n
DTSTART;TZID=America/Los_Angeles:20100502T180000
CREATED:20100311T220134Z
DTSTAMP:20100311T220308Z
DURATION:PT3H30M
LOCATION:Cannon Beach\, OR
X-VENUE:The Stephanie Inn
END:VEVENT
BEGIN:VEVENT
LAST-MODIFIED:20100311T231101Z
SEQUENCE:0
UID:4887b3b0-0f91-012d-1259-002421a2359e
SUMMARY:New Event
DESCRIPTION:
DTSTART;TZID=America/Los_Angeles:20100716T150000
CREATED:20100311T231101Z
DTSTAMP:20100311T231101Z
DURATION:PT1H
LOCATION:
END:VEVENT
BEGIN:VEVENT
LAST-MODIFIED:20100311T223312Z
SEQUENCE:9
URL;VALUE=URI:http://www.mcminnvilleava.org/event.htm
UID:ed3beb90-0f8a-012d-1259-002421a2359e
SUMMARY:Discover McMinnville AVA
DESCRIPTION:July 17th - Discover McMinnville AVA\n\nParticipating Winerie
s Include:\nBrittan Vineyards\, Coeur de Terre Vineyard\, Coleman Vineya
rd\, Maysara Vineyard\, Seufert Winery\, Stony Mountain Vineyard\, Yamhi
ll Valley Vineyards and Youngberg Hill Vineyard
DTSTART;TZID=America/Los_Angeles:20100717T100000
CREATED:20100311T222531Z
DTSTAMP:20100311T223312Z
DURATION:PT7H
LOCATION:16250 SW Oldsville Rd\, McMinnville OR
X-VENUE:Yamhill Valley Vineyards
END:VEVENT
BEGIN:VEVENT
LAST-MODIFIED:20100312T064055Z
SEQUENCE:9
URL;VALUE=URI:http://www.youngberghill.com
UID:626c1f10-0f91-012d-1259-002421a2359e
SUMMARY:Linfield Chamber Benefit @ Youngberg Hill
DESCRIPTION:August 12th - Linfield Chamber Benefit @ Youngberg Hill\n\nDe
tails to follow
DTSTART;TZID=America/Los_Angeles:20100812T180000
CREATED:20100311T231144Z
DTSTAMP:20100312T064055Z
DURATION:PT2H30M
LOCATION:10660 SW Youngberg Hill Road\, McMinniville OR
X-VENUE:Youngberg Hill
END:VEVENT
BEGIN:VEVENT
LAST-MODIFIED:20100311T221206Z
SEQUENCE:8
URL;VALUE=URI:http://www.youngberghill.com
UID:b0362430-0f88-012d-1259-002421a2359e
SUMMARY:Youngberg Hill Vineyard & Inn - Memorial Weekend
DESCRIPTION:Memorial Weekend\nYoungberg Hill will be open from 11:00 to 5
:00 on Saturday\, Sunday\, & Monday. We will be highlighting our 2007 Jo
rdan & Natasha Block Pinot Noir as well as our newly released 2009 Pinot
Gris. We will have cheeses\, breads\, and treats available\, plus the g
reatest view.\n\nTasting fee of $5\, complimentary tastings for our Wine
Club members. \n
DTSTART;TZID=America/Los_Angeles:20100529T110000
CREATED:20100311T220929Z
DTSTAMP:20100311T221206Z
DURATION:P2DT6H
LOCATION:10660 SW Youngberg Hill Road
X-VENUE:McMinnville\, OR
END:VEVENT
END:VCALENDAR
ENDDATA
QUERY
SELECT caldav_data.dav_name, caldav_data.dav_etag, dtstart, summary
FROM caldav_data JOIN calendar_item USING(dav_name)
WHERE caldav_data.dav_name ~ '/user4/base/newcalendar/'
ENDQUERY

View File

@ -0,0 +1,51 @@
HTTP/1.1 200 OK
Date: Dow, 01 Jan 2000 00:00:00 GMT
DAV: 1, 2, access-control, calendar-access, calendar-schedule, extended-mkcol, calendar-proxy, bind, calendar-auto-schedule
Ticket:Good Ticket ID
ETag: "Some good etag"
Content-Length: 618
Content-Type: text/xml; charset="utf-8"
<?xml version="1.0" encoding="utf-8" ?>
<prop xmlns="DAV:" xmlns:T="http://www.xythos.com/namespaces/StorageServer" xmlns:C="urn:ietf:params:xml:ns:caldav">
<T:ticketdiscovery>
<T:ticketinfo>
<T:id>Good Ticket ID</T:id>
<owner>
<href>/caldav.php/admin/</href>
</owner>
<privilege>
<read/>
<read-current-user-privilege-set/>
<C:read-free-busy/>
<write/>
<write-properties/>
<write-content/>
<bind/>
<unbind/>
<C:schedule-query-freebusy/>
</privilege>
<T:timeout>infinity</T:timeout>
<T:visits>infinity</T:visits>
</T:ticketinfo>
</T:ticketdiscovery>
</prop>
dav_owner_id: >3<
privileges: >000000000001001000100001<
target_collection: >10<
target_resource_i: >NULL<
timeout: >00:59:21<
dav_owner_id: >4<
privileges: >000000000001001011100111<
target_collection: >11<
target_resource_i: >NULL<
timeout: >NULL<
dav_owner_id: >1<
privileges: >000000000001001011100111<
target_collection: >12<
target_resource_i: >NULL<
timeout: >NULL<

View File

@ -0,0 +1,31 @@
#
# MKTICKET request for a read/write ticket on a collection
# - ticket should have no expiry
#
TYPE=MKTICKET
URL=http://regression.host/caldav.php/user3/home/
HEADER=User-Agent: Ticket Spec Tests
HEADER=Content-Type: text/xml; charset="UTF-8"
HEAD
AUTH=admin:nimda
BEGINDATA
<?xml version="1.0" encoding="utf-8" ?>
<T:ticketinfo xmlns:D="DAV:" xmlns:T="http://www.xythos.com/namespaces/StorageServer" >
<D:privilege><D:read/><D:write/></D:privilege>
<T:timeout>infinity</T:timeout>
</T:ticketinfo>
ENDDATA
QUERY
SELECT dav_owner_id,
(expires - current_timestamp)::interval(0) AS timeout,
privileges,
target_collection_id,
target_resource_id
FROM access_ticket
ENDQUERY
REPLACE=!ETag: "\S+"!ETag: "Some good etag"!
REPLACE=!<T:id>\S{8}</T:id>!<T:id>Good Ticket ID</T:id>!
REPLACE=!Ticket: \S{8}!Ticket:Good Ticket ID!

View File

@ -0,0 +1,68 @@
HTTP/1.1 201 Created
Date: Dow, 01 Jan 2000 00:00:00 GMT
DAV: 1, 2, access-control, calendar-access, calendar-schedule, extended-mkcol, calendar-proxy, bind, calendar-auto-schedule
Location: /caldav.php/user4/base/user3/
Content-Length: 0
Content-Type: text/plain; charset="utf-8"
bind_id: >1431<
bind_owner: >6<
bound_source_id: >11<
dav_displayname: >Updated Displayname with PROPPATCH<
dav_name: >/user4/user2/<
length: >8<
parent_container: >/user4/<
privileges: >000000000001001011100111<
target_collection: >11<
target_resource_i: >NULL<
ticket_owner: >4<
bind_id: >1432<
bind_owner: >6<
bound_source_id: >10<
dav_displayname: >User 1's Calendaranza<
dav_name: >/user4/user1/<
length: >8<
parent_container: >/user4/<
privileges: >000000000001001000100001<
target_collection: >10<
target_resource_i: >NULL<
ticket_owner: >3<
bind_id: >1436<
bind_owner: >6<
bound_source_id: >10<
dav_displayname: >User 1's Calendaranza<
dav_name: >/user4/base/user1/<
length: >8<
parent_container: >/user4/base/<
privileges: >000000000001001000100001<
target_collection: >10<
target_resource_i: >NULL<
ticket_owner: >3<
bind_id: >1437<
bind_owner: >6<
bound_source_id: >11<
dav_displayname: >User 2's Calendar, as uploaded by Admin<
dav_name: >/user4/base/user2/<
length: >8<
parent_container: >/user4/base/<
privileges: >000000000001001011100111<
target_collection: >11<
target_resource_i: >NULL<
ticket_owner: >4<
bind_id: >1450<
bind_owner: >1<
bound_source_id: >12<
dav_displayname: >user3 home<
dav_name: >/user4/base/user3/<
length: >8<
parent_container: >/user4/base/<
privileges: >000000000001001011100111<
target_collection: >12<
target_resource_i: >NULL<
ticket_owner: >1<

View File

@ -0,0 +1,44 @@
#
# BIND a collection into an additional location
# also applying a ticket during the bind
#
TYPE=BIND
URL=http://regression.host/caldav.php/user4/base/
AUTH=admin:nimda
# Get the ticket we created earlier in 948...
GETSQL=ticket
SELECT ticket_id FROM access_ticket
WHERE target_collection_id = 12 AND target_resource_id is null;
ENDSQL
HEADER=User-Agent: Ticket Spec Tests
HEADER=Content-Type: text/xml; charset="UTF-8"
HEADER=Ticket: ##ticket##
HEAD
BEGINDATA
<?xml version="1.0" encoding="utf-8"?>
<bind xmlns="DAV:">
<segment>user3</segment>
<href>/caldav.php/user3/home</href>
</bind>
ENDDATA
QUERY
SELECT bind_id,
bound_source_id,
dav_binding.dav_owner_id AS bind_owner,
access_ticket.dav_owner_id AS ticket_owner,
length(access_ticket_id),
parent_container,
dav_name,
dav_displayname,
target_collection_id,
target_resource_id,
privileges
FROM dav_binding
LEFT JOIN access_ticket ON ( access_ticket_id = ticket_id )
ENDQUERY

View File

@ -0,0 +1,19 @@
HTTP/1.1 200 OK
Date: Dow, 01 Jan 2000 00:00:00 GMT
DAV: 1, 2, access-control, calendar-access, calendar-schedule, extended-mkcol, calendar-proxy, bind, calendar-auto-schedule
Content-Length: 230
Content-Type: text/xml; charset="utf-8"
<?xml version="1.0" encoding="utf-8" ?>
<multistatus xmlns="DAV:">
<response>
<href>/caldav.php/user4/base/user3/</href>
<responsedescription>All requested changes were made.</responsedescription>
</response>
</multistatus>
dav_displayname: >Updated user4-base-user3 displayname with PROPPATCH<
property_name: >http://xmlns.dotcal.com/dotcal:icon_uri<
property_value: >http://eventful.com/favicon.ico<

View File

@ -0,0 +1,32 @@
#
# Test PROPPATCH to change the displayname on a bind
#
TYPE=PROPPATCH
URL=http://regression.host/caldav.php/user4/base/user3/
AUTH=user4:user4
HEADER=User-Agent: DAViCalTester/public
HEADER=Content-Type: text/xml; charset="UTF-8"
HEAD
BEGINDATA
<?xml version="1.0" encoding="UTF-8" ?>
<propertyupdate xmlns="DAV:" xmlns:DC="http://xmlns.dotcal.com/dotcal">
<set>
<prop>
<displayname>Updated user4-base-user3 displayname with PROPPATCH</displayname>
<DC:icon_uri>http://eventful.com/favicon.ico</DC:icon_uri>
</prop>
</set>
</propertyupdate>
ENDDATA
QUERY
SELECT dav_displayname FROM dav_binding WHERE dav_name = '/user4/base/user3/'
ENDQUERY
QUERY
SELECT property_name, property_value FROM property WHERE dav_name = '/user4/base/user3/'
ENDQUERY

View File

@ -0,0 +1,21 @@
HTTP/1.1 204 No Content
Date: Dow, 01 Jan 2000 00:00:00 GMT
DAV: 1, 2, access-control, calendar-access, calendar-schedule, extended-mkcol, calendar-proxy, bind, calendar-auto-schedule
Content-Length: 0
Content-Type: text/plain; charset="utf-8"
bind_id: >1436<
bound_source_id: >10<
dav_displayname: >User 1's Calendaranza<
dav_name: >/user4/base/user1/<
dav_owner_id: >6<
parent_container: >/user4/base/<
bind_id: >1437<
bound_source_id: >11<
dav_displayname: >User 2's Calendar, as uploaded by Admin<
dav_name: >/user4/base/user2/<
dav_owner_id: >6<
parent_container: >/user4/base/<

View File

@ -0,0 +1,12 @@
#
# Do a DELETE on a BIND
TYPE=DELETE
URL=http://mycaldav/caldav.php/user4/base/user3/
AUTH=user4:user4
HEAD
QUERY
SELECT dav_name, bind_id, bound_source_id, dav_owner_id, parent_container, dav_displayname
FROM dav_binding
WHERE dav_name ~ '/user4/base/'
ENDQUERY