@@ -32,6 +32,7 @@ class TestNSString : XCTestCase {
3232 ( " test_FromNullTerminatedCStringInASCII " , test_FromNullTerminatedCStringInASCII ) ,
3333 ( " test_FromNullTerminatedCStringInUTF8 " , test_FromNullTerminatedCStringInUTF8 ) ,
3434 ( " test_FromMalformedNullTerminatedCStringInUTF8 " , test_FromMalformedNullTerminatedCStringInUTF8 ) ,
35+ ( " test_stringByTrimmingCharactersInSet " , test_stringByTrimmingCharactersInSet ) ,
3536 ]
3637 }
3738
@@ -127,4 +128,27 @@ class TestNSString : XCTestCase {
127128 let string = NSString ( CString: bytes. map { Int8 ( bitPattern: $0) } , encoding: NSUTF8StringEncoding)
128129 XCTAssertNil ( string)
129130 }
131+
132+ func test_stringByTrimmingCharactersInSet( ) {
133+ XCTAssertEqual ( " \u{feff} " . stringByTrimmingCharactersInSet ( NSCharacterSet . controlCharacterSet ( ) ) , " " )
134+ XCTAssertEqual ( " a " . stringByTrimmingCharactersInSet ( NSCharacterSet . letterCharacterSet ( ) ) , " " )
135+ XCTAssertEqual ( " a " . stringByTrimmingCharactersInSet ( NSCharacterSet . lowercaseLetterCharacterSet ( ) ) , " " )
136+ XCTAssertEqual ( " A " . stringByTrimmingCharactersInSet ( NSCharacterSet . uppercaseLetterCharacterSet ( ) ) , " " )
137+ XCTAssertEqual ( " \u{01c5} " . stringByTrimmingCharactersInSet ( NSCharacterSet . uppercaseLetterCharacterSet ( ) ) , " " )
138+ XCTAssertEqual ( " \u{01c5} " . stringByTrimmingCharactersInSet ( NSCharacterSet . capitalizedLetterCharacterSet ( ) ) , " " )
139+ XCTAssertEqual ( " \u{002b} " . stringByTrimmingCharactersInSet ( NSCharacterSet . symbolCharacterSet ( ) ) , " " )
140+ XCTAssertEqual ( " \u{20b1} " . stringByTrimmingCharactersInSet ( NSCharacterSet . symbolCharacterSet ( ) ) , " " )
141+ XCTAssertEqual ( " \u{000a} " . stringByTrimmingCharactersInSet ( NSCharacterSet . newlineCharacterSet ( ) ) , " " )
142+ XCTAssertEqual ( " \u{2029} " . stringByTrimmingCharactersInSet ( NSCharacterSet . newlineCharacterSet ( ) ) , " " )
143+
144+ let cset1 = NSCharacterSet ( charactersInString: " ABC123 " )
145+ XCTAssertEqual ( " " . stringByTrimmingCharactersInSet ( cset1) , " " )
146+ XCTAssertEqual ( " 321CBA " . stringByTrimmingCharactersInSet ( cset1) , " " , " Should trim everything " )
147+ XCTAssertEqual ( " CBAabc " . stringByTrimmingCharactersInSet ( cset1) , " abc " , " Should trim only first 3 characters " )
148+ XCTAssertEqual ( " cbaABC " . stringByTrimmingCharactersInSet ( cset1) , " cba " , " Should trim only last 3 characters " )
149+ XCTAssertEqual ( " cba123abc " . stringByTrimmingCharactersInSet ( cset1) , " cba123abc " , " Should not trim anything " )
150+
151+ let cset2 = NSCharacterSet ( charactersInString: " юникодユニコード " )
152+ XCTAssertEqual ( " ЮНИゆにコドкод " . stringByTrimmingCharactersInSet ( cset2) , " ЮНИゆに " )
153+ }
130154}
0 commit comments