Files
letro-ios/UnitTests/Sources/StringTests.swift
Mauro de3997f6c4 RTL and LTR mixed languages fix for optimal timestamp support (#1055)
* fix

* fixed RTL and LTR timestamp for all the cases! also improved the testing

* changelog

* better and less convoluted solution

* Update ElementX/Sources/Screens/RoomScreen/View/Timeline/FormattedBodyText.swift

Co-authored-by: Alfonso Grillo <alfogrillo@gmail.com>

* pr suggestion and removed prefix in reality it creates more issues than improvements, and is not really needed

---------

Co-authored-by: Alfonso Grillo <alfogrillo@gmail.com>
2023-06-09 11:49:02 +00:00

84 lines
2.6 KiB
Swift
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
//
// 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 test123Becomes123() {
XCTAssertEqual("1⃣2⃣3".asciified(), "123")
}
func testStripsTheHeartbreakHotel() {
XCTAssertEqual("Heartbreak Hotel 🏩".asciified(), "Heartbreak Hotel")
}
func testGenerateBreakableWhitespaceEnd() {
var count = 5
var result = "\u{2066}" + String(repeating: "\u{2004}", count: count) + "\u{2800}"
XCTAssertEqual(String.generateBreakableWhitespaceEnd(whitespaceCount: count, layoutDirection: .leftToRight), result)
count = 3
result = "\u{2066}" + String(repeating: "\u{2004}", count: count) + "\u{2800}"
XCTAssertEqual(String.generateBreakableWhitespaceEnd(whitespaceCount: count, layoutDirection: .leftToRight), result)
count = 0
result = ""
XCTAssertEqual(String.generateBreakableWhitespaceEnd(whitespaceCount: count, layoutDirection: .leftToRight), result)
count = 4
result = "\u{2067}" + String(repeating: "\u{2004}", count: count) + "\u{2800}"
XCTAssertEqual(String.generateBreakableWhitespaceEnd(whitespaceCount: count, layoutDirection: .rightToLeft), result)
count = 0
result = ""
XCTAssertEqual(String.generateBreakableWhitespaceEnd(whitespaceCount: count, layoutDirection: .rightToLeft), result)
}
}