CardDavServerDebugWriterTest.ktCardDavServerDebugWriter.asCsvValue() validiert. Stellt sicher, dass eingebettete doppelte Anführungszeichen durch Verdopplung korrekt maskiert werden (RFC 4180 CSV-Konvention) und dass leere Zeichenketten in Anführungszeichen gesetzt werden. Dies ist entscheidend für das Debug-Logging von CardDAV-Datenverkehr, bei dem Felder Sonderzeichen enthalten können.Dieser Test zielt auf die Hilfsklasse CardDavServerDebugWriter ab, die für das Schreiben von CardDAV-Server-Debug-Ausgaben im CSV-Format verantwortlich ist. CSV-Escaping ist für die korrekte Protokollierung von HTTP-Anfrage-/Antwortdaten unerlässlich, die eingebettete Anführungszeichen, Zeilenumbrüche oder andere Sonderzeichen enthalten können.
| Eingabe | Erwartete Ausgabe | Regel |
|---|---|---|
| "" (leere Zeichenkette) | """" (zwei Anführungszeichenpaare) | Leere Zeichenketten werden in Anführungszeichen gesetzt, was eine maskierte leere Zeichenkette in Anführungszeichen ergibt: "" (äußere Anführungszeichen) enthalten "" (maskierte Leere). Tatsächlich erwartet der Test """", was ein leeres Feld in Anführungszeichen darstellt – die äußeren Anführungszeichen umschließen das Feld, und das innere verdoppelte Anführungszeichen ist das maskierte Anführungszeichen gemäß RFC 4180. |
| Test "user"\r\nHallo Welt | "Test ""user""\r\nHallo Welt" | Doppelte Anführungszeichen innerhalb des Werts werden durch Verdopplung maskiert ("" wird zu ""). CR+LF-Sequenzen werden als literales \r\n beibehalten. Der gesamte Wert wird in äußere Anführungszeichen gesetzt. |
Die Klasse CardDavServerDebugWriter erzeugt CSV-Ausgaben für das Logging/Debuggen von CardDAV-Server-Interaktionen. CSV wurde gewählt, weil es für die Analyse leicht in Tabellenkalkulationsanwendungen importiert werden kann. Das Escaping folgt den Konventionen von RFC 4180:
"" steht für ein literales ")\\r\\n (literales Backslash-r-Backslash-n) in der erwarteten Zeichenkette, was darauf hindeutet, dass die Methode asCsvValue tatsächliche CR+LF-Zeichen beibehält, anstatt sie in Escape-Sequenzen umzuwandeln.868d6abb7 2025 -> 2026 63081666f Quellcode-Dateiköpfe: 2024 -> 2025. f86cfa20a WIP: CardDAV-Server.