diff --git a/ElementX/Sources/Other/Extensions/String.swift b/ElementX/Sources/Other/Extensions/String.swift index a6cd5ac7a..86dc891df 100644 --- a/ElementX/Sources/Other/Extensions/String.swift +++ b/ElementX/Sources/Other/Extensions/String.swift @@ -32,9 +32,6 @@ extension String { guard !isASCII else { return self } - guard !canBeConverted(to: .ascii) else { - return nil - } let mutableString = NSMutableString(string: self) guard CFStringTransform(mutableString, nil, "Any-Latin; Latin-ASCII; [:^ASCII:] Remove" as CFString, false) else { return nil diff --git a/UnitTests/Sources/StringTests.swift b/UnitTests/Sources/StringTests.swift index 5ef0310c7..c09e9ddf6 100644 --- a/UnitTests/Sources/StringTests.swift +++ b/UnitTests/Sources/StringTests.swift @@ -29,25 +29,24 @@ class StringTests: XCTestCase { func testJ🅾️hnnyIsNotAscii() { XCTAssertFalse("j🅾️hnny".isASCII) } - - func testAsciiStaysAscii() { + + func testAsciifiedMethod() { + // ASCII strings return themselves unchanged XCTAssertEqual("johnny".asciified(), "johnny") - } - - func testÖBecomesO() { - XCTAssertEqual("jöhnny".asciified(), "johnny") - } - - func testÅBecomesA() { - XCTAssertEqual("jåhnny".asciified(), "jahnny") - } - - func test1️⃣2️⃣3️⃣Becomes123() { - XCTAssertEqual("1️⃣2️⃣3️⃣".asciified(), "123") - } - - func testStripsTheHeartbreakHotel() { - XCTAssertEqual("Heartbreak Hotel 🏩".asciified(), "Heartbreak Hotel") + XCTAssertEqual("hello".asciified(), "hello") + XCTAssertEqual("abc123".asciified(), "abc123") + XCTAssertEqual("".asciified(), "") + XCTAssertEqual(" ".asciified(), " ") + + // Non-ASCII strings get converted or stripped + XCTAssertEqual("jöhnny".asciified(), "johnny", "ö should become o") + XCTAssertEqual("jåhnny".asciified(), "jahnny", "å should become a") + XCTAssertEqual("café".asciified(), "cafe") + XCTAssertEqual("naïve".asciified(), "naive") + XCTAssertEqual("résumé".asciified(), "resume") + XCTAssertEqual("🚀".asciified(), "") + XCTAssertEqual("Heartbreak Hotel 🏩".asciified(), "Heartbreak Hotel", "The emoji should be stripped.") + XCTAssertEqual("1️⃣2️⃣3️⃣".asciified(), "123", "The emoji should be converted to ASCII.") } func testGenerateBreakableWhitespaceEnd() {