PropTest.ktProp.extractProps() — l'analyseur XML qui extrait les noms de propriétés DAV demandées à partir des corps de requêtes PROPFIND et sync-collection. Vérifie que les éléments de propriété dans les blocs <prop> ou <d:prop> sont correctement identifiés, triés alphabétiquement et mappés à leurs valeurs d'énumération PropType.La classe Prop représente une propriété DAV unique demandée par un client. La méthode statique extractProps(xml: String): List<Prop> analyse les corps de requêtes XML WebDAV pour déterminer quelles propriétés le client souhaite récupérer.
| PropType | Élément XML | Objectif DAV/CardDAV |
|---|---|---|
CURRENT_USER_PRINCIPAL | <current-user-principal /> | URL de la ressource principale de l'utilisateur authentifié (RFC 5397) |
CURRENT_USER_PRIVILEGE_SET | <current-user-privilege-set /> | Privilèges accordés à l'utilisateur actuel (RFC 3744) |
DISPLAYNAME | <displayname /> | Nom lisible de la ressource (RFC 4918) |
RESOURCETYPE | <resourcetype /> | Indique si la ressource est une collection (RFC 4918) |
GETCTAG | <cs:getctag /> | Balise de collection du serveur de calendrier pour la détection de changements (extension Apple) |
GETETAG | <d:getetag /> | Balise d'entité HTTP pour la ressource (RFC 4918) |
SYNCTOKEN | <sync-token /> | Jeton pour la synchronisation incrémentielle de collection (RFC 6578) |
L'entrée est un corps de requête PROPFIND utilisant un espace de noms XML par défaut (xmlns="DAV:") — les éléments sont sans préfixe. Le test vérifie :
PropType de chaque propriété est correctement identifiéL'entrée simule une requête de rapport sync-collection (partie de l'extension WebDAV Sync RFC 6578). Le XML utilise des préfixes d'espace de noms (d:, cs:). Le test vérifie :
La méthode extractProps doit :
<prop> ou <d:prop> dans le XMLPropTypePropTypeList<Prop><prop> est nommé <d:prop> à l'intérieur d'un wrapper externe <propfind>), mais le test le gère correctement — démontrant la robustesse de l'analyseur face à différents types de requêtes DAV.868d6abb7 2025 -> 2026 63081666f En-têtes des fichiers sources : 2024 -> 2025. 5167dab99 WIP : Carddav 78a5132bf WIP : Carddav caee35750 WIP : Carddav 2ad0cfe66 WIP : Carddav