PropTest.ktProp.extractProps() — den XML-Parser, der angeforderte DAV-Eigenschaftsnamen aus PROPFIND- und sync-collection-Anforderungstexten extrahiert. Validiert, dass Eigenschaftselemente innerhalb von <prop>- oder <d:prop>-Blöcken korrekt identifiziert, alphabetisch sortiert und ihren PropType-Enum-Werten zugeordnet werden.Die Klasse Prop repräsentiert eine einzelne DAV-Eigenschaft, die von einem Client angefordert wurde. Die statische Methode extractProps(xml: String): List<Prop> parst WebDAV-XML-Anforderungstexte, um zu ermitteln, welche Eigenschaften der Client abrufen möchte.
| PropType | XML-Element | DAV/CardDAV-Zweck |
|---|---|---|
CURRENT_USER_PRINCIPAL | <current-user-principal /> | URL der Principal-Ressource des authentifizierten Benutzers (RFC 5397) |
CURRENT_USER_PRIVILEGE_SET | <current-user-privilege-set /> | Dem aktuellen Benutzer gewährte Berechtigungen (RFC 3744) |
DISPLAYNAME | <displayname /> | Lesbarer Name der Ressource (RFC 4918) |
RESOURCETYPE | <resourcetype /> | Gibt an, ob die Ressource eine Sammlung ist (RFC 4918) |
GETCTAG | <cs:getctag /> | Calendar-Server-Sammlungs-Tag zur Erkennung von Änderungen (Apple-Erweiterung) |
GETETAG | <d:getetag /> | HTTP-Entity-Tag für die Ressource (RFC 4918) |
SYNCTOKEN | <sync-token /> | Token für die inkrementelle Sammlungssynchronisation (RFC 6578) |
Die Eingabe ist ein PROPFIND-Anforderungstext mit einem Standard-XML-Namespace (xmlns="DAV:") — Elemente sind ohne Präfix. Der Test überprüft:
PropType jeder Eigenschaft wird korrekt identifiziertDie Eingabe simuliert eine sync-collection REPORT-Anforderung (Teil der RFC 6578 WebDAV-Sync-Erweiterung). Das XML verwendet Namespace-Präfixe (d:, cs:). Der Test überprüft:
Die Methode extractProps muss:
<prop>- oder <d:prop>-Elementblock innerhalb des XML findenPropType-Enum-Werten zuordnenPropType sortierenList<Prop> zurückgeben<prop>-Element heißt <d:prop> innerhalb eines äußeren <propfind>-Wrappers), aber der Test behandelt es korrekt — was die Robustheit des Parsers über verschiedene DAV-Anforderungstypen hinweg demonstriert.868d6abb7 2025 -> 2026 63081666f Quelldatei-Header: 2024 -> 2025. 5167dab99 WIP: Carddav 78a5132bf WIP: Carddav caee35750 WIP: Carddav 2ad0cfe66 WIP: Carddav