CardDavFilterTest.ktCardDavFilter.handledByCardDavFilter() route correctement les requêtes HTTP vers le servlet CardDAV en fonction de la méthode HTTP et des motifs d'URI de requête. Garantit que seules les requêtes pertinentes pour CardDAV (OPTIONS, PROPFIND, REPORT, GET sur des chemins connus) sont interceptées par le filtre, tandis que les requêtes non liées passent à travers.Ce test valide la logique de routage des requêtes CardDAV dans CardDavFilter. Le système utilise un modèle de filtre de servlet — les requêtes HTTP arrivent sur le serveur d'application et le filtre décide de les transmettre au gestionnaire CardDAV ou de les laisser poursuivre dans le pipeline normal de requêtes.
Le test utilise un modèle de méthode d'assistance paramétrée : checkRequest(method, requestUri, expected, msg?) crée un HttpServletRequest simulé via Mockito, stub requestURI et method, puis vérifie que la valeur de retour de CardDavFilter.handledByCardDavFilter(request) correspond à expected.
| Méthode HTTP | Motif URI | Attendu | Justification |
|---|---|---|---|
| OPTIONS | /carddav, /carddav/users/kai, /users/kai, /users, /principals | true | OPTIONS est une vérification CORS preflight / capacité DAV — tous les chemins CardDAV connus répondent |
| PROPFIND | /carddav, /carddav/users/kai, /users/kai, /carddav/users/, /users, /carddav/principals/, /principals | true | PROPFIND est la méthode de récupération de propriétés WebDAV ; interceptée sur toutes les URL d'utilisateurs et de responsables |
| OPTIONS | /.well-known/carddav | true | Découverte d'URI bien connue selon la RFC 6764 pour la localisation du service CardDAV |
| GET | /.well-known/carddav | true | GET sur l'URI bien connue retourne les informations de découverte du service |
| GET | /principals | false | GET sur la liste des responsables sans en-têtes DAV n'est pas CardDAV |
| GET | /carddav | true | GET sur le chemin de base carddav |
| GET | /carddav/users/joe/addressbooks/ProjectForge-123.vcf | true | Téléchargement VCF avec motif d'identifiant séparé par un tiret "ProjectForge-123" |
| GET | /users/joe/addressbooks/ProjectForge-123.vcf | true | Identique sans le préfixe /carddav |
| GET | /users/joe/addressbooks/ProjectForge123.vcf | false | Séparateur tiret manquant — non reconnu comme identifiant ProjectForge |
| GET | /users/joe/address/ProjectForge-123.vcf | false | Segment de chemin incorrect "address" au lieu de "addressbooks" |
Utilise Mockito.mock(HttpServletRequest::class.java) pour créer des requêtes de servlet simulées. Ensuite, Mockito.when(request.method).thenReturn(method) et Mockito.when(request.requestURI).thenReturn(requestUri) configurent le dispositif de test. Aucun serveur HTTP réel n'est impliqué — pur test unitaire de la fonction de routage.
868d6abb7 2025 -> 2026 63081666f En-têtes des fichiers source : 2024 -> 2025. fc6301b43 WIP : CardDavServer. 6c1daac93 WIP : Carddav 78a5132bf WIP : Carddav c4062ed97 WIP : Carddav 40e554cbe WIP : Carddav ad8b47d1f WIP : CardDavWIP : CardDav