46 lines
1.5 KiB
Swift
46 lines
1.5 KiB
Swift
import XCTest
|
|
@testable import Luma
|
|
|
|
final class MessageReplyFallbackTests: XCTestCase {
|
|
func testXEP0428ScalarRangeRemovesUnicodeQuote() {
|
|
let fallback = MessageReplyFallback.make(
|
|
author: "алиса@example.org",
|
|
preview: "Привет 👋\nКак дела?"
|
|
)
|
|
let body = fallback.prefix + "Отлично!"
|
|
|
|
let parsed = MessageReplyFallback.parse(
|
|
body: body,
|
|
fallbackStart: 0,
|
|
fallbackEnd: fallback.scalarCount
|
|
)
|
|
|
|
XCTAssertEqual(parsed.body, "Отлично!")
|
|
XCTAssertEqual(parsed.preview, "Привет 👋\nКак дела?")
|
|
XCTAssertEqual(fallback.scalarCount, fallback.prefix.unicodeScalars.count)
|
|
}
|
|
|
|
func testLegacyConversationsQuoteBecomesReplyPreview() {
|
|
let parsed = MessageReplyFallback.parse(
|
|
body: "> Старое сообщение\n> в двух строках\n\nНовый ответ",
|
|
fallbackStart: nil,
|
|
fallbackEnd: nil
|
|
)
|
|
|
|
XCTAssertEqual(parsed.body, "Новый ответ")
|
|
XCTAssertEqual(parsed.preview, "Старое сообщение\nв двух строках")
|
|
}
|
|
|
|
func testPlainBodyWithoutQuoteIsUnchanged() {
|
|
let body = "Обычное сообщение"
|
|
let parsed = MessageReplyFallback.parse(
|
|
body: body,
|
|
fallbackStart: nil,
|
|
fallbackEnd: nil
|
|
)
|
|
|
|
XCTAssertEqual(parsed.body, body)
|
|
XCTAssertNil(parsed.preview)
|
|
}
|
|
}
|