CardDavFilterTest.kt (capa web)CardDavFilter.handledByCardDavFilter() — la lógica de decisión del filtro servlet. Más compacta que la prueba de capa de dominio CardDavFilterTest (#1861), centrándose en URIs well-known, métodos DAV y casos negativos. Verifica que solo OPTIONS/PROPFIND/REPORT en rutas conocidas sean interceptados, mientras que las solicitudes GET y rutas desconocidas pasan sin intercepción.
Esta es una segunda prueba CardDavFilterTest, ubicada en el paquete org.projectforge.web (capa web). Prueba el mismo método estático CardDavFilter.handledByCardDavFilter() pero con un enfoque diferente: aspectos de enrutamiento de capa web y el punto de descubrimiento .well-known.
A diferencia de la lista plana de casos de prueba de #1861, esta prueba organiza las aserciones usando una jerarquía de métodos auxiliares:
checkRequest(uri, method, expected) — Crea una solicitud simulada y verifica la decisión del filtrocheckMethod(method) — Prueba un método contra múltiples URIs (ruta genérica, "users", "/carddav/users/")| Prueba | URI | Método | Esperado | Fundamento |
|---|---|---|---|---|
| Descubrimiento well-known | /.well-known/carddav | PROPFIND | true | Descubrimiento de servicio RFC 6764 — los clientes sondean esta ruta primero |
| Usuarios CardDAV | /carddav/users/ | PROPFIND | true | Ruta estándar de colección de usuarios CardDAV |
| Aplicación Wicket | /wa/... | PROPFIND | false | Ruta de aplicación Wicket — NO debe ser interceptada |
| GET genérico | .... | GET | false | GET en ruta desconocida — no es CardDAV |
| GET usuarios | /users | GET | false | GET sin cabeceras DAV en ruta de usuarios — probablemente solicitud de aplicación web |
| Verificación método: genérico | .... | OPTIONS/PROPFIND/REPORT | false | Métodos DAV en URIs desconocidas pasan sin intercepción |
| Verificación método: users | users | OPTIONS/PROPFIND/REPORT | true | Métodos DAV en ruta "users" son interceptados |
| Verificación método: carddav | /carddav/users/ | OPTIONS/PROPFIND/REPORT | true | Ruta CardDAV completa con métodos DAV |
| Aspecto | #1861 (dominio) | #1869 (web) |
|---|---|---|
| Paquete | org.projectforge.carddav | org.projectforge.web |
| URI well-known | Prueba OPTIONS + GET | Prueba solo PROPFIND |
| Ruta Wicket | No probado | Prueba /wa/... (aplicación Wicket) |
| Iteración de métodos | Verificaciones en línea | checkMethod() parametrizado con arrayOf().forEach |
| Patrones VCF | Prueba detallada de nombres de archivo VCF | No cubierto |
| Método REPORT | No probado | Probado (REPORT en rutas users/carddav) |
CardDavFilter.handledByCardDavFilter()) pero desde diferentes contextos de paquete y con diferente cobertura. Esto representa duplicación de pruebas probablemente resultante de flujos de desarrollo paralelos que no fueron completamente consolidados. La prueba de capa de dominio (#1861) es más completa para patrones VCF; la prueba de capa web (#1869) añade exclusión de ruta Wicket y verificación del método REPORT.
Mismo patrón que #1861: crea Mockito.mock(HttpServletRequest::class.java), simula method y requestURI, verifica el valor booleano de retorno.
868d6abb7 2025 -> 2026 63081666f Encabezados de archivos fuente: 2024 -> 2025. 40e554cbe WIP: Carddav 2ad0cfe66 WIP: Carddav ad8b47d1f WIP: CardDavWIP: CardDav 7f2c255ae WIP: CardDav