@@ -37,6 +37,9 @@ class TestNSString : XCTestCase {
37
37
( " test_FromNullTerminatedCStringInASCII " , test_FromNullTerminatedCStringInASCII ) ,
38
38
( " test_FromNullTerminatedCStringInUTF8 " , test_FromNullTerminatedCStringInUTF8 ) ,
39
39
( " test_FromMalformedNullTerminatedCStringInUTF8 " , test_FromMalformedNullTerminatedCStringInUTF8 ) ,
40
+ ( " test_uppercaseString " , test_uppercaseString ) ,
41
+ ( " test_lowercaseString " , test_lowercaseString ) ,
42
+ ( " test_capitalizedString " , test_capitalizedString ) ,
40
43
( " test_longLongValue " , test_longLongValue ) ,
41
44
( " test_rangeOfCharacterFromSet " , test_rangeOfCharacterFromSet ) ,
42
45
]
@@ -192,6 +195,37 @@ class TestNSString : XCTestCase {
192
195
XCTAssertNil ( string)
193
196
}
194
197
198
+ func test_uppercaseString( ) {
199
+ XCTAssertEqual ( NSString ( stringLiteral: " abcd " ) . uppercaseString, " ABCD " )
200
+ XCTAssertEqual ( NSString ( stringLiteral: " абВГ " ) . uppercaseString, " АБВГ " )
201
+ XCTAssertEqual ( NSString ( stringLiteral: " たちつてと " ) . uppercaseString, " たちつてと " )
202
+
203
+ // Special casing (see swift/validation-tests/stdlib/NSStringAPI.swift)
204
+ XCTAssertEqual ( NSString ( stringLiteral: " \u{0069} " ) . uppercaseStringWithLocale ( NSLocale ( localeIdentifier: " en " ) ) , " \u{0049} " )
205
+ // Currently fails; likely there are locale loading issues that are preventing this from functioning correctly
206
+ // XCTAssertEqual(NSString(stringLiteral: "\u{0069}").uppercaseStringWithLocale(NSLocale(localeIdentifier: "tr")), "\u{0130}")
207
+ XCTAssertEqual ( NSString ( stringLiteral: " \u{00df} " ) . uppercaseString, " \u{0053} \u{0053} " )
208
+ XCTAssertEqual ( NSString ( stringLiteral: " \u{fb01} " ) . uppercaseString, " \u{0046} \u{0049} " )
209
+ }
210
+
211
+ func test_lowercaseString( ) {
212
+ XCTAssertEqual ( NSString ( stringLiteral: " abCD " ) . lowercaseString, " abcd " )
213
+ XCTAssertEqual ( NSString ( stringLiteral: " aБВГ " ) . lowercaseString, " aбвг " )
214
+ XCTAssertEqual ( NSString ( stringLiteral: " たちつてと " ) . lowercaseString, " たちつてと " )
215
+
216
+ // Special casing (see swift/validation-tests/stdlib/NSStringAPI.swift)
217
+ XCTAssertEqual ( NSString ( stringLiteral: " \u{0130} " ) . lowercaseStringWithLocale ( NSLocale ( localeIdentifier: " en " ) ) , " \u{0069} \u{0307} " )
218
+ XCTAssertEqual ( NSString ( stringLiteral: " \u{0130} " ) . lowercaseStringWithLocale ( NSLocale ( localeIdentifier: " tr " ) ) , " \u{0069} " )
219
+ XCTAssertEqual ( NSString ( stringLiteral: " \u{0049} \u{0307} " ) . lowercaseStringWithLocale ( NSLocale ( localeIdentifier: " en " ) ) , " \u{0069} \u{0307} " )
220
+ // Currently fails; likely there are locale loading issues that are preventing this from functioning correctly
221
+ // XCTAssertEqual(NSString(stringLiteral: "\u{0049}\u{0307}").lowercaseStringWithLocale(NSLocale(localeIdentifier: "tr")), "\u{0069}")
222
+ }
223
+
224
+ func test_capitalizedString( ) {
225
+ XCTAssertEqual ( NSString ( stringLiteral: " foo Foo fOO FOO " ) . capitalizedString, " Foo Foo Foo Foo " )
226
+ XCTAssertEqual ( NSString ( stringLiteral: " жжж " ) . capitalizedString, " Жжж " )
227
+ }
228
+
195
229
func test_longLongValue( ) {
196
230
let string1 : NSString = " 9223372036854775808 "
197
231
XCTAssertEqual ( string1. longLongValue, 9223372036854775807 )
0 commit comments