mirror of
https://github.com/lennart-k/rustical.git
synced 2025-12-14 08:12:24 +00:00
add some more propfind regression tests
This commit is contained in:
@@ -13,6 +13,7 @@ rustical_store_sqlite = { workspace = true, features = ["test"] }
|
||||
rstest.workspace = true
|
||||
async-std.workspace = true
|
||||
serde_json.workspace = true
|
||||
insta.workspace = true
|
||||
|
||||
[dependencies]
|
||||
axum.workspace = true
|
||||
|
||||
@@ -0,0 +1,137 @@
|
||||
---
|
||||
source: crates/caldav/src/principal/tests.rs
|
||||
assertion_line: 92
|
||||
expression: response
|
||||
---
|
||||
ResponseElement {
|
||||
href: "/caldav/principal/user/",
|
||||
status: None,
|
||||
propstat: [
|
||||
Normal(
|
||||
PropstatElement {
|
||||
prop: PropTagWrapper(
|
||||
[
|
||||
Principal(
|
||||
CalendarUserType(
|
||||
Individual,
|
||||
),
|
||||
),
|
||||
Principal(
|
||||
CalendarUserAddressSet(
|
||||
HrefElement {
|
||||
href: "/caldav/principal/user/",
|
||||
},
|
||||
),
|
||||
),
|
||||
Principal(
|
||||
PrincipalUrl(
|
||||
HrefElement {
|
||||
href: "/caldav/principal/user/",
|
||||
},
|
||||
),
|
||||
),
|
||||
Principal(
|
||||
GroupMembership(
|
||||
GroupMembership(
|
||||
[
|
||||
HrefElement {
|
||||
href: "/caldav/principal/group/",
|
||||
},
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
Principal(
|
||||
GroupMemberSet(
|
||||
GroupMemberSet(
|
||||
[],
|
||||
),
|
||||
),
|
||||
),
|
||||
Principal(
|
||||
AlternateUriSet,
|
||||
),
|
||||
Principal(
|
||||
SupportedReportSet(
|
||||
SupportedReportSet {
|
||||
supported_report: [
|
||||
ReportWrapper {
|
||||
report: PrincipalMatch,
|
||||
},
|
||||
],
|
||||
},
|
||||
),
|
||||
),
|
||||
Principal(
|
||||
CalendarHomeSet(
|
||||
CalendarHomeSet(
|
||||
[
|
||||
HrefElement {
|
||||
href: "/caldav/principal/group/",
|
||||
},
|
||||
HrefElement {
|
||||
href: "/caldav/principal/user/",
|
||||
},
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
Common(
|
||||
Resourcetype(
|
||||
Resourcetype(
|
||||
[
|
||||
ResourcetypeInner(
|
||||
Some(
|
||||
Namespace("DAV:"),
|
||||
),
|
||||
"collection",
|
||||
),
|
||||
ResourcetypeInner(
|
||||
Some(
|
||||
Namespace("DAV:"),
|
||||
),
|
||||
"principal",
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
Common(
|
||||
Displayname(
|
||||
Some(
|
||||
"user",
|
||||
),
|
||||
),
|
||||
),
|
||||
Common(
|
||||
CurrentUserPrincipal(
|
||||
HrefElement {
|
||||
href: "/caldav/principal/user/",
|
||||
},
|
||||
),
|
||||
),
|
||||
Common(
|
||||
CurrentUserPrivilegeSet(
|
||||
UserPrivilegeSet {
|
||||
privileges: {
|
||||
All,
|
||||
},
|
||||
},
|
||||
),
|
||||
),
|
||||
Common(
|
||||
Owner(
|
||||
Some(
|
||||
HrefElement {
|
||||
href: "/caldav/principal/user/",
|
||||
},
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
status: 200,
|
||||
},
|
||||
),
|
||||
],
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
---
|
||||
source: crates/caldav/src/principal/tests.rs
|
||||
assertion_line: 93
|
||||
expression: response.serialize_to_string().unwrap()
|
||||
---
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<response xmlns="DAV:" xmlns:CAL="urn:ietf:params:xml:ns:caldav" xmlns:CARD="urn:ietf:params:xml:ns:carddav" xmlns:CS="http://calendarserver.org/ns/" xmlns:PUSH="https://bitfire.at/webdav-push">
|
||||
<href>/caldav/principal/user/</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<CAL:calendar-user-type>INDIVIDUAL</CAL:calendar-user-type>
|
||||
<CAL:calendar-user-address-set>
|
||||
<href>/caldav/principal/user/</href>
|
||||
</CAL:calendar-user-address-set>
|
||||
<principal-URL>
|
||||
<href>/caldav/principal/user/</href>
|
||||
</principal-URL>
|
||||
<group-membership>
|
||||
<href>/caldav/principal/group/</href>
|
||||
</group-membership>
|
||||
<group-member-set>
|
||||
</group-member-set>
|
||||
<alternate-URI-set/>
|
||||
<supported-report-set>
|
||||
<supported-report>
|
||||
<report>
|
||||
<principal-match/>
|
||||
</report>
|
||||
</supported-report>
|
||||
</supported-report-set>
|
||||
<CAL:calendar-home-set>
|
||||
<href>/caldav/principal/group/</href>
|
||||
<href>/caldav/principal/user/</href>
|
||||
</CAL:calendar-home-set>
|
||||
<resourcetype>
|
||||
<collection/>
|
||||
<principal/>
|
||||
</resourcetype>
|
||||
<displayname>user</displayname>
|
||||
<current-user-principal>
|
||||
<href>/caldav/principal/user/</href>
|
||||
</current-user-principal>
|
||||
<current-user-privilege-set>
|
||||
<privilege>
|
||||
<all/>
|
||||
</privilege>
|
||||
</current-user-privilege-set>
|
||||
<owner>
|
||||
<href>/caldav/principal/user/</href>
|
||||
</owner>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
</response>
|
||||
@@ -0,0 +1,9 @@
|
||||
---
|
||||
source: crates/caldav/src/principal/tests.rs
|
||||
assertion_line: 66
|
||||
expression: propfind
|
||||
---
|
||||
PropfindElement {
|
||||
prop: Allprop,
|
||||
include: None,
|
||||
}
|
||||
@@ -1,5 +1,3 @@
|
||||
use std::sync::Arc;
|
||||
|
||||
use crate::{
|
||||
CalDavPrincipalUri,
|
||||
principal::{PrincipalResource, PrincipalResourceService},
|
||||
@@ -14,6 +12,7 @@ use rustical_store_sqlite::{
|
||||
tests::{get_test_calendar_store, get_test_principal_store, get_test_subscription_store},
|
||||
};
|
||||
use rustical_xml::XmlSerializeRoot;
|
||||
use std::sync::Arc;
|
||||
|
||||
#[rstest]
|
||||
#[tokio::test]
|
||||
@@ -64,6 +63,8 @@ async fn test_propfind() {
|
||||
)
|
||||
.unwrap();
|
||||
|
||||
insta::assert_debug_snapshot!(propfind);
|
||||
|
||||
let principal = Principal {
|
||||
id: "user".to_string(),
|
||||
displayname: None,
|
||||
@@ -88,5 +89,6 @@ async fn test_propfind() {
|
||||
)
|
||||
.unwrap();
|
||||
|
||||
let _output = response.serialize_to_string().unwrap();
|
||||
insta::assert_debug_snapshot!(response);
|
||||
insta::assert_snapshot!(response.serialize_to_string().unwrap());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user