90 lines
3.2 KiB
Swift
90 lines
3.2 KiB
Swift
//
|
|
// Copyright 2018 Signal Messenger, LLC
|
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
//
|
|
|
|
import SignalServiceKit
|
|
import XCTest
|
|
|
|
class StringAdditionsTest: XCTestCase {
|
|
func test_truncated_ASCII() {
|
|
let originalString = "Hello World"
|
|
|
|
var truncatedString = originalString.truncated(toByteCount: 8)
|
|
XCTAssertEqual("Hello Wo", truncatedString)
|
|
|
|
truncatedString = originalString.truncated(toByteCount: 0)
|
|
XCTAssertEqual("", truncatedString)
|
|
|
|
truncatedString = originalString.truncated(toByteCount: 11)
|
|
XCTAssertEqual("Hello World", truncatedString)
|
|
|
|
truncatedString = originalString.truncated(toByteCount: 12)
|
|
XCTAssertEqual("Hello World", truncatedString)
|
|
|
|
truncatedString = originalString.truncated(toByteCount: 100)
|
|
XCTAssertEqual("Hello World", truncatedString)
|
|
}
|
|
|
|
func test_truncated_MultiByte() {
|
|
let originalString = "🇨🇦🇨🇦🇨🇦🇨🇦"
|
|
|
|
var truncatedString = originalString.truncated(toByteCount: 0)
|
|
XCTAssertEqual("", truncatedString)
|
|
|
|
truncatedString = originalString.truncated(toByteCount: 1)
|
|
XCTAssertEqual("", truncatedString)
|
|
|
|
truncatedString = originalString.truncated(toByteCount: 7)
|
|
XCTAssertEqual("", truncatedString)
|
|
|
|
truncatedString = originalString.truncated(toByteCount: 8)
|
|
XCTAssertEqual("🇨🇦", truncatedString)
|
|
|
|
truncatedString = originalString.truncated(toByteCount: 9)
|
|
XCTAssertEqual("🇨🇦", truncatedString)
|
|
|
|
truncatedString = originalString.truncated(toByteCount: 15)
|
|
XCTAssertEqual("🇨🇦", truncatedString)
|
|
|
|
truncatedString = originalString.truncated(toByteCount: 16)
|
|
XCTAssertEqual("🇨🇦🇨🇦", truncatedString)
|
|
|
|
truncatedString = originalString.truncated(toByteCount: 17)
|
|
XCTAssertEqual("🇨🇦🇨🇦", truncatedString)
|
|
}
|
|
|
|
func test_truncated_Mixed() {
|
|
let originalString = "Oh🇨🇦Canada🇨🇦"
|
|
|
|
var truncatedString = originalString.truncated(toByteCount: 0)
|
|
XCTAssertEqual("", truncatedString)
|
|
|
|
truncatedString = originalString.truncated(toByteCount: 1)
|
|
XCTAssertEqual("O", truncatedString)
|
|
|
|
truncatedString = originalString.truncated(toByteCount: 7)
|
|
XCTAssertEqual("Oh", truncatedString)
|
|
|
|
truncatedString = originalString.truncated(toByteCount: 9)
|
|
XCTAssertEqual("Oh", truncatedString)
|
|
|
|
truncatedString = originalString.truncated(toByteCount: 10)
|
|
XCTAssertEqual("Oh🇨🇦", truncatedString)
|
|
|
|
truncatedString = originalString.truncated(toByteCount: 11)
|
|
XCTAssertEqual("Oh🇨🇦C", truncatedString)
|
|
|
|
truncatedString = originalString.truncated(toByteCount: 23)
|
|
XCTAssertEqual("Oh🇨🇦Canada", truncatedString)
|
|
|
|
truncatedString = originalString.truncated(toByteCount: 24)
|
|
XCTAssertEqual("Oh🇨🇦Canada🇨🇦", truncatedString)
|
|
|
|
truncatedString = originalString.truncated(toByteCount: 25)
|
|
XCTAssertEqual("Oh🇨🇦Canada🇨🇦", truncatedString)
|
|
|
|
truncatedString = originalString.truncated(toByteCount: 100)
|
|
XCTAssertEqual("Oh🇨🇦Canada🇨🇦", truncatedString)
|
|
}
|
|
}
|