davical/testing/tests/binding/1302-PROPFIND-external.test
Andrew Ruthven e989e1cf97 Fix PROPFIND with Depth 1 if external bind is included
Previously something like this would be logged if debugging is enabled:

davical: LOG: Principal: Query: DBGQ: SELECT * FROM collection WHERE user_no= :user_no
davical: LOG: Principal: Query: DBGQ:  ":user_no" => ""
davical: BUG: :DAViCal Fatal Error: [42883] SQLSTATE[42883]: Undefined function: 7 ERROR:  operator does not exist: integer = boolean\nLINE 1: SELECT * FROM collection WHERE user_no= FALSE\n                                              ^\nHINT:  No operator matches the given name and argument types. You might need to add explicit type casts. at /home/puck/work/Calendar/awl/inc/AwlDatabase.php:94

And this would be returned as a response:

DAViCal Fatal Error

user_no doesn't get set when construction the Collection for the external
bind, so, just handle that instead of sending the empty string to the
database as a user_no.

Modify the tests from ccc7e182ba4cbfba66a4fe96e1c0620e46390b95 to tickle the
bug.

Closes #175.
2024-02-18 01:51:56 +13:00

63 lines
2.5 KiB
Plaintext

#
# PROPFIND on a principal with external resource.
#
# This is the request which fails on:
# https://gitlab.com/davical-project/davical/-/issues/175
#
TYPE=PROPFIND
URL=http://regression.host/caldav.php/teamclient1
AUTH=user1:user1
HEADER=User-Agent: DAViCalTester/public
HEADER=Brief: t
HEADER=Depth: 1
HEADER=Prefer: return=minimal
HEAD
BEGINDATA
<?xml version="1.0" encoding="UTF-8"?>
<A:propfind xmlns:A="DAV:">
<A:prop>
<A:add-member/>
<C:allowed-sharing-modes xmlns:C="http://calendarserver.org/ns/"/>
<D:autoprovisioned xmlns:D="http://apple.com/ns/ical/"/>
<E:bulk-requests xmlns:E="http://me.com/_namespace/"/>
<B:calendar-alarm xmlns:B="urn:ietf:params:xml:ns:caldav"/>
<D:calendar-color xmlns:D="http://apple.com/ns/ical/"/>
<B:calendar-description xmlns:B="urn:ietf:params:xml:ns:caldav"/>
<B:calendar-free-busy-set xmlns:B="urn:ietf:params:xml:ns:caldav"/>
<D:calendar-order xmlns:D="http://apple.com/ns/ical/"/>
<B:calendar-timezone xmlns:B="urn:ietf:params:xml:ns:caldav"/>
<A:current-user-privilege-set/>
<B:default-alarm-vevent-date xmlns:B="urn:ietf:params:xml:ns:caldav"/>
<B:default-alarm-vevent-datetime xmlns:B="urn:ietf:params:xml:ns:caldav"/>
<A:displayname/>
<C:getctag xmlns:C="http://calendarserver.org/ns/"/>
<D:language-code xmlns:D="http://apple.com/ns/ical/"/>
<D:location-code xmlns:D="http://apple.com/ns/ical/"/>
<B:max-attendees-per-instance xmlns:B="urn:ietf:params:xml:ns:caldav"/>
<A:owner/>
<C:pre-publish-url xmlns:C="http://calendarserver.org/ns/"/>
<C:publish-url xmlns:C="http://calendarserver.org/ns/"/>
<C:push-transports xmlns:C="http://calendarserver.org/ns/"/>
<C:pushkey xmlns:C="http://calendarserver.org/ns/"/>
<A:quota-available-bytes/>
<A:quota-used-bytes/>
<D:refreshrate xmlns:D="http://apple.com/ns/ical/"/>
<A:resource-id/>
<A:resourcetype/>
<B:schedule-calendar-transp xmlns:B="urn:ietf:params:xml:ns:caldav"/>
<B:schedule-default-calendar-URL xmlns:B="urn:ietf:params:xml:ns:caldav"/>
<C:source xmlns:C="http://calendarserver.org/ns/"/>
<C:subscribed-strip-alarms xmlns:C="http://calendarserver.org/ns/"/>
<C:subscribed-strip-attachments xmlns:C="http://calendarserver.org/ns/"/>
<C:subscribed-strip-todos xmlns:C="http://calendarserver.org/ns/"/>
<B:supported-calendar-component-set xmlns:B="urn:ietf:params:xml:ns:caldav"/>
<B:supported-calendar-component-sets xmlns:B="urn:ietf:params:xml:ns:caldav"/>
<A:supported-report-set/>
<A:sync-token/>
</A:prop>
</A:propfind>
ENDDATA