@@ -32,6 +32,7 @@ class TestNSString : XCTestCase {
32
32
( " test_FromNullTerminatedCStringInASCII " , test_FromNullTerminatedCStringInASCII ) ,
33
33
( " test_FromNullTerminatedCStringInUTF8 " , test_FromNullTerminatedCStringInUTF8 ) ,
34
34
( " test_FromMalformedNullTerminatedCStringInUTF8 " , test_FromMalformedNullTerminatedCStringInUTF8 ) ,
35
+ ( " test_stringByTrimmingCharactersInSet " , test_stringByTrimmingCharactersInSet ) ,
35
36
]
36
37
}
37
38
@@ -127,4 +128,27 @@ class TestNSString : XCTestCase {
127
128
let string = NSString ( CString: bytes. map { Int8 ( bitPattern: $0) } , encoding: NSUTF8StringEncoding)
128
129
XCTAssertNil ( string)
129
130
}
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
+ }
130
154
}
0 commit comments