|  |  |  | // | 
					
						
							|  |  |  | //  Copyright (c) 2018 Open Whisper Systems. All rights reserved. | 
					
						
							|  |  |  | // | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import XCTest | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class StringAdditionsTest: SignalBaseTest { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     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) | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } |