CardDavServerDebugWriterTest.ktCardDavServerDebugWriter.asCsvValue(). Гарантирует, что встроенные символы двойных кавычек правильно экранируются путем удвоения (согласно соглашению CSV RFC 4180) и что пустые строки заключаются в кавычки. Это критически важно для отладочного логирования трафика CardDAV, где поля могут содержать специальные символы.Этот тест нацелен на служебный класс CardDavServerDebugWriter, который отвечает за запись отладочного вывода сервера CardDAV в формате CSV. Экранирование CSV необходимо для корректного логирования данных HTTP-запросов/ответов, которые могут содержать встроенные кавычки, символы новой строки или другие специальные символы.
| Входные данные | Ожидаемый результат | Правило |
|---|---|---|
| "" (пустая строка) | """" (две пары кавычек) | Пустые строки заключаются в кавычки, создавая экранированную пустую строку в кавычках: "" (внешние кавычки), содержащие "" (экранированная пустота). Фактически тест ожидает """", что представляет собой поле в кавычках — внешние кавычки оборачивают поле, а внутренняя удвоенная кавычка является экранированным символом кавычки согласно RFC 4180. |
| Тест "пользователь"\r\nПривет мир | "Тест ""пользователь""\r\nПривет мир" | Двойные кавычки внутри значения экранируются путем удвоения ("" превращается в ""). Последовательности CR+LF сохраняются как литеральные \r\n. Все значение оборачивается во внешние кавычки. |
Класс CardDavServerDebugWriter создает вывод CSV для логирования/отладки взаимодействий с сервером CardDAV. CSV был выбран, поскольку его легко импортировать в приложения для работы с электронными таблицами для анализа. Экранирование следует соглашениям RFC 4180:
"" представляет один литеральный символ ")\\r\\n (литеральная обратная косая черта-r-обратная косая черта-n) в ожидаемой строке, что предполагает, что метод asCsvValue сохраняет фактические символы CR+LF, а не преобразует их в escape-последовательности.868d6abb7 2025 -> 2026 63081666f Заголовки исходных файлов: 2024-> 2025. f86cfa20a WIP: Сервер CardDav.