davical/testing/tests/binding/1300-BIND-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

35 lines
904 B
Plaintext

#
# Bind to an "external" URL (actually hosted on our test server).
#
TYPE=BIND
URL=http://regression.host/caldav.php/teamclient1/
AUTH=admin:nimda
HEADER=User-Agent: Test external bind
HEADER=Content-Type: text/xml; charset="UTF-8"
HEAD
STATIC=mooncal.ics
BEGINDATA
<?xml version="1.0" encoding="utf-8"?>
<bind xmlns="DAV:">
<segment>Moon</segment>
<href>http://regression/testfiles/mooncal.ics?lang=de&amp;phases%5Bfull%5D=true&amp;phases%5Bnew%5D=true&amp;phases%5Bquarter%5D=true&amp;phases%5Bdaily%5D=false&amp;events%5Blunareclipse%5D=true&amp;events%5Bsolareclipse%5D=true&amp;events%5Bmoonlanding%5D=false&amp;before=P6M&amp;after=P2Y&amp;zone=CET</href>
</bind>
ENDDATA
QUERY
SELECT bind_id,
bound_source_id,
parent_container,
dav_name,
dav_displayname,
external_url
FROM dav_binding
WHERE external_url LIKE '%mooncal%'
ORDER BY bind_id
ENDQUERY