EN · DE · RU · FR · ES

#1869 : CardDavFilterTest.kt (couche web)

projectforge-carddav/src/test/kotlin/org/projectforge/carddav/config/CardDavFilterTest.kt Test unitaire — package org.projectforge.web, projectforge-carddav/src/test/kotlin/org/projectforge/carddav/config/CardDavFilterTest.kt 59 lignes · 30 code · 22 commentaires · 7 vides
Test de la couche web pour CardDavFilter.handledByCardDavFilter() — la logique de décision du filtre servlet. Plus compact que le test de la couche domaine CardDavFilterTest (#1861), il se concentre sur les URI well-known, les méthodes DAV et les cas négatifs. Vérifie que seules les requêtes OPTIONS/PROPFIND/REPORT sur les chemins connus sont interceptées, tandis que les requêtes GET et les chemins inconnus passent à travers.

Architecture

Ceci est un second CardDavFilterTest, situé dans le package org.projectforge.web (couche web). Il teste la même méthode statique CardDavFilter.handledByCardDavFilter() mais avec un angle différent : les préoccupations de routage de la couche web et le point de découverte .well-known.

Imports

Structure du test

Contrairement à la liste plate de cas de test de #1861, ce test organise les assertions à l'aide d'une hiérarchie de méthodes auxiliaires :

Couverture du test

TestURIMéthodeAttenduJustification
Découverte well-known/.well-known/carddavPROPFINDtrueDécouverte de service RFC 6764 — les clients sondent d'abord ce chemin
Utilisateurs CardDAV/carddav/users/PROPFINDtrueChemin standard de la collection d'utilisateurs CardDAV
Application Wicket/wa/...PROPFINDfalseChemin de l'application Wicket — ne doit PAS être intercepté
GET générique....GETfalseGET sur un chemin inconnu — pas du CardDAV
GET utilisateurs/usersGETfalseGET sans en-têtes DAV sur le chemin utilisateurs — probablement une requête d'application web
Vérification méthode : générique....OPTIONS/PROPFIND/REPORTfalseLes méthodes DAV sur des URI inconnues passent à travers
Vérification méthode : utilisateursusersOPTIONS/PROPFIND/REPORTtrueLes méthodes DAV sur le chemin "users" sont interceptées
Vérification méthode : carddav/carddav/users/OPTIONS/PROPFIND/REPORTtrueChemin CardDAV complet avec méthodes DAV

Différences clés avec #1861 (Test de la couche domaine)

Aspect#1861 (domaine)#1869 (web)
Packageorg.projectforge.carddavorg.projectforge.web
URI well-knownTeste OPTIONS + GETTeste PROPFIND uniquement
Chemin WicketNon testéTeste /wa/... (application Wicket)
Itération des méthodesVérifications en lignecheckMethod() paramétré avec arrayOf().forEach
Modèles VCFTest détaillé des noms de fichiers VCFNon couvert
Méthode REPORTNon testéeTestée (REPORT sur les chemins users/carddav)
Les deux tests (#1861 et #1869) testent la même fonction (CardDavFilter.handledByCardDavFilter()) mais depuis des contextes de package différents et avec une couverture différente. Cela représente une duplication de test résultant probablement de flux de développement parallèles qui n'ont pas été entièrement consolidés. Le test de la couche domaine (#1861) est plus complet pour les modèles VCF ; le test de la couche web (#1869) ajoute l'exclusion du chemin Wicket et les vérifications de la méthode REPORT.

Modèle de simulation

Même modèle que #1861 : crée Mockito.mock(HttpServletRequest::class.java), simule method et requestURI, vérifie la valeur de retour booléenne.

Historique Git

868d6abb7 2025 -> 2026
63081666f En-têtes des fichiers source : 2024 -> 2025.
40e554cbe WIP : Carddav
2ad0cfe66 WIP : Carddav
ad8b47d1f WIP : CardDavWIP : CardDav
7f2c255ae WIP : CardDav