mirror of https://github.com/oxen-io/session-ios
				
				
				
			
			You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			127 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Swift
		
	
			
		
		
	
	
			127 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Swift
		
	
| //
 | |
| //  Copyright (c) 2019 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 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)
 | |
|     }
 | |
| 
 | |
|     func test_caesar() {
 | |
|         XCTAssertEqual("abc", try! "abc".caesar(shift: 0))
 | |
|         XCTAssertEqual("abc", try! "abc".caesar(shift: 127))
 | |
| 
 | |
|         XCTAssertEqual("bcd", try! "abc".caesar(shift: 1))
 | |
|         XCTAssertEqual("bcd", try! "abc".caesar(shift: 128))
 | |
| 
 | |
|         XCTAssertEqual("z{b", try! "yza".caesar(shift: 1))
 | |
|         XCTAssertEqual("|}d", try! "yza".caesar(shift: 3))
 | |
|         XCTAssertEqual("ef=g", try! "bc:d".caesar(shift: 3))
 | |
| 
 | |
|         let shifted = try! "abc".caesar(shift: 32)
 | |
|         let roundTrip = try! shifted.caesar(shift: 127 - 32)
 | |
|         XCTAssertEqual("abc", roundTrip)
 | |
|     }
 | |
| 
 | |
|     func test_encodedForSelector() {
 | |
|         XCTAssertEqual("cnN0", "abc".encodedForSelector)
 | |
|         XCTAssertEqual("abc", "abc".encodedForSelector!.decodedForSelector)
 | |
| 
 | |
|         XCTAssertNotEqual("abcWithFoo:bar:", "abcWithFoo:bar:".encodedForSelector)
 | |
|         XCTAssertEqual("abcWithFoo:bar:", "abcWithFoo:bar:".encodedForSelector!.decodedForSelector)
 | |
| 
 | |
|         XCTAssertNotEqual("abcWithFoo:bar:zaz1:", "abcWithFoo:bar:zaz1:".encodedForSelector)
 | |
|         XCTAssertEqual("abcWithFoo:bar:zaz1:", "abcWithFoo:bar:zaz1:".encodedForSelector!.decodedForSelector)
 | |
|     }
 | |
| }
 |