EN · DE · RU · FR · ES

#1862: CardDavServerDebugWriterTest.kt

projectforge-carddav/src/test/kotlin/org/projectforge/carddav/CardDavServerDebugWriterTest.kt Test unitaire — package org.projectforge.carddav, projectforge-carddav/src/test/kotlin/org/projectforge/carddav/CardDavServerDebugWriterTest.kt 38 lignes · 13 code · 22 commentaires · 3 vides
Test unitaire ciblé qui valide l'échappement des chaînes CSV dans CardDavServerDebugWriter.asCsvValue(). Vérifie que les guillemets doubles incorporés sont correctement échappés par doublement (convention CSV RFC 4180) et que les chaînes vides sont entourées de guillemets. Ceci est essentiel pour la journalisation de débogage du trafic CardDAV où les champs peuvent contenir des caractères spéciaux.

Architecture

Ce test cible la classe utilitaire CardDavServerDebugWriter, responsable de l'écriture des sorties de débogage du serveur CardDAV au format CSV. L'échappement CSV est essentiel pour journaliser correctement les données de requêtes/réponses HTTP qui peuvent contenir des guillemets, des sauts de ligne ou d'autres caractères spéciaux.

Importations et dépendances

Règles d'échappement CSV testées

EntréeSortie attendueRègle
"" (chaîne vide)"""" (deux paires de guillemets)Les chaînes vides sont entourées de guillemets, produisant une chaîne vide entre guillemets échappée : "" (guillemets extérieurs) contenant "" (vide échappé). En réalité, le test attend """" qui représente un champ vide entre guillemets — les guillemets extérieurs encapsulent le champ, et le double guillemet intérieur est le caractère guillemet échappé selon la RFC 4180.
Test "utilisateur"\r\nBonjour le monde"Test ""utilisateur""\r\nBonjour le monde"Les guillemets doubles dans la valeur sont échappés en les doublant ("" devient ""). Les séquences CR+LF sont conservées comme \r\n littéral. La valeur entière est encapsulée dans des guillemets extérieurs.

Contexte de conception

La classe CardDavServerDebugWriter produit une sortie CSV pour la journalisation/débogage des interactions du serveur CardDAV. Le format CSV a été choisi car il est facilement importable dans des applications tableur pour analyse. L'échappement suit les conventions de la RFC 4180 :

Remarque : Le test utilise \\r\\n (barre oblique inverse littérale r barre oblique inverse n) dans la chaîne attendue, ce qui suggère que la méthode asCsvValue préserve les caractères CR+LF réels plutôt que de les convertir en séquences d'échappement.

Historique Git

868d6abb7 2025 -> 2026
63081666f En-têtes des fichiers source : 2024 -> 2025.
f86cfa20a WIP : Serveur CardDAV.