Fixes #225 - Use a properly defined user agent

* Set a proper user agent
* Add fallback when UA comes out nil
* Remove unused Bundle extension
* Return nil when asciification fails
* Add whitespace handling and further emoji test case
* Explicitly check if string is already in ASCII
* Rename factory to builder
* Use allSatisfy instead of reduce
* Use key path syntax
This commit is contained in:
Johannes Marbach
2022-10-28 16:11:10 +02:00
committed by GitHub
parent ba4064cc2c
commit 09b2f939ab
12 changed files with 306 additions and 57 deletions
+61
View File
@@ -0,0 +1,61 @@
//
// Copyright 2022 New Vector Ltd
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
import XCTest
@testable import ElementX
class StringTests: XCTestCase {
func testEmptyIsAscii() {
XCTAssertTrue("".isASCII)
}
func testSpaceIsAscii() {
XCTAssertTrue("".isASCII)
}
func testJohnnyIsAscii() {
XCTAssertTrue("johnny".isASCII)
}
func testJöhnnyIsNotAscii() {
XCTAssertFalse("jöhnny".isASCII)
}
func testJ🅾️hnnyIsNotAscii() {
XCTAssertFalse("j🅾️hnny".isASCII)
}
func testAsciiStaysAscii() {
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")
}
}