WebDAV: Always return MULTISTATUS when calendar-query yields no results

This commit is contained in:
mdecimus
2025-07-24 12:36:17 +02:00
parent 4d819a1041
commit 02f6a114e0
6 changed files with 59 additions and 21 deletions

View File

@@ -66,6 +66,32 @@ pub async fn test(test: &WebDavTest) {
jane.request("PROPFIND", "/dav/cal/jane/default/", "")
.await
.with_status(StatusCode::MULTI_STATUS);
jane.request(
"REPORT",
"/dav/cal/jane/default/",
concat!(
r#"<CAL:calendar-query xmlns="DAV:" "#,
r#"xmlns:CAL="urn:ietf:params:xml:ns:caldav"><prop><getetag />"#,
r#"</prop><CAL:filter><CAL:comp-filter name="VCALENDAR">"#,
r#"<CAL:comp-filter name="VTODO" /></CAL:comp-filter></CAL:filter>"#,
r#"</CAL:calendar-query>"#
),
)
.await
.with_status(StatusCode::MULTI_STATUS);
jane.request(
"REPORT",
"/dav/cal/jane/test-404/",
concat!(
r#"<CAL:calendar-query xmlns="DAV:" "#,
r#"xmlns:CAL="urn:ietf:params:xml:ns:caldav"><prop><getetag />"#,
r#"</prop><CAL:filter><CAL:comp-filter name="VCALENDAR">"#,
r#"<CAL:comp-filter name="VTODO" /></CAL:comp-filter></CAL:filter>"#,
r#"</CAL:calendar-query>"#
),
)
.await
.with_status(StatusCode::MULTI_STATUS);
jane.request("PROPFIND", "/dav/cal/jane/test-404/", "")
.await
.with_status(StatusCode::NOT_FOUND);

View File

@@ -1036,6 +1036,9 @@ const SERVER: &str = r#"
[server]
hostname = "webdav.example.org"
[spam-filter]
enable = false
[http]
url = "'https://127.0.0.1:8899'"