// // 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) } }