session-ios/Signal/test/util/StringAdditionsTest.swift

101 lines
3.5 KiB
Swift

//
// Copyright (c) 2018 Open Whisper Systems. All rights reserved.
//
import XCTest
class StringAdditionsTest: XCTestCase {
override func setUp() {
super.setUp()
// Put setup code here. This method is called before the invocation of each test method in the class.
}
override func tearDown() {
// Put teardown code here. This method is called after the invocation of each test method in the class.
super.tearDown()
}
func testASCII() {
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 testMultiByte() {
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 testMixed() {
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)
}
}