You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
test: implement RFC6638 testInviteAndRespond with per-server fixes
Implement testInviteAndRespond integration test covering invite/accept
workflows (RFC6638), with support for both auto-scheduling and
inbox-delivery modes, and per-server fixes for all supported servers:
- Handle auto-scheduling servers (Cyrus, Nextcloud) that deliver to
the calendar directly without requiring inbox delivery
- Restructure test to properly handle both scheduling modes
- Cyrus: fix virtdomains config for cross-user scheduling
- Nextcloud, DAViCal, Baikal, Zimbra, SOGo, Davis, CCS, Stalwart: fixes
- Add scheduling.mailbox.inbox-delivery compatibility hints per server
- Rename scheduling.inbox-delivery → scheduling.mailbox.inbox-delivery
- Fix wrong RFC6638 section references in compatibility hints
- Pass scheduling_users as extra_clients in testCheckCompatibility
"description": "Server provides schedule-inbox and schedule-outbox collections for the principal (RFC6638 sections 2.2-2.3). When unsupported, calls to schedule_inbox() or schedule_outbox() raise NotFoundError.",
"description": "Server provides schedule-inbox and schedule-outbox collections for the principal (RFC6638 sections 2.1-2.2). When unsupported, calls to schedule_inbox() or schedule_outbox() raise NotFoundError.",
"description": "Server provides the calendar-user-address-set property on the principal (RFC6638 section 2.4.1), used to identify a user's email/URI for scheduling purposes. When unsupported, calendar_user_address_set() raises NotFoundError.",
"description": "Server delivers incoming scheduling REQUEST messages to the attendee's schedule-inbox (RFC6638 section 4.1). When unsupported, the server implements automatic scheduling: invitations are auto-processed and placed directly on the attendee's calendar without appearing in the inbox. Clients should check this feature to know whether to look for inbox items after sending an invite, or check the attendee calendar directly.",
'freebusy-query': {'description': "freebusy queries come in two flavors, one query can be done towards a CalDAV server as defined in RFC4791, another query can be done through the scheduling framework, RFC 6638. Only RFC4791 is tested for as today"},
280
286
"freebusy-query.rfc4791": {
281
287
"description": "Server supports free/busy-query REPORT as specified in RFC4791 section 7.10. The REPORT allows clients to query for free/busy time information for a time range. Servers without this support will typically return an error (often 500 Internal Server Error or 501 Not Implemented). Note: RFC6638 defines a different freebusy mechanism for scheduling",
Copy file name to clipboardExpand all lines: tests/docker-test-servers/davical/setup_davical.sh
+10-1Lines changed: 10 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -49,9 +49,14 @@ create_user() {
49
49
if [ -n"$EXISTING_PRINCIPAL" ];then
50
50
echo"Principal for '${username}' already exists, skipping"
51
51
else
52
-
run_sql "INSERT INTO principal (type_id, user_no, displayname) SELECT 1, user_no, fullname FROM usr WHERE username='${username}'"
52
+
# default_privileges: schedule-deliver (7168 = bits for schedule-deliver-invite +
53
+
# schedule-deliver-reply + schedule-query-freebusy) so other users can send
54
+
# scheduling invites/replies to this principal's inbox.
55
+
run_sql "INSERT INTO principal (type_id, user_no, displayname, default_privileges) SELECT 1, user_no, fullname, 7168::BIT(24) FROM usr WHERE username='${username}'"
53
56
echo"Principal for '${username}' created"
54
57
fi
58
+
# Ensure default_privileges is set even for existing principals (idempotent update)
59
+
run_sql "UPDATE principal SET default_privileges = 7168::BIT(24) FROM usr WHERE principal.user_no = usr.user_no AND usr.username = '${username}' AND (default_privileges IS NULL OR default_privileges = 0::BIT(24))"
0 commit comments