mirror of
https://github.com/ichmagmaus111/ghostgram.git
synced 2026-11-03 22:27:13 +01:00
Ghostgram for iOS, rebuilt from scratch on Telegram iOS 13.0. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
43 lines
1.8 KiB
Swift
43 lines
1.8 KiB
Swift
#if canImport(UIKit)
|
|
import XCTest
|
|
import UIKit
|
|
@testable import RichTextEditorUIKit
|
|
import RichTextEditorCore
|
|
|
|
final class CanvasWritingDirectionTests: XCTestCase {
|
|
private func canvas(_ text: String, override: DocumentLayoutDirection = .auto) -> DocumentCanvasView {
|
|
let v = DocumentCanvasView()
|
|
v.applyWritingDirectionOverride(override)
|
|
v.setParagraphs([ParagraphBlock(id: BlockID("a"), runs: [TextRun(text: text)])], width: 300)
|
|
v.frame = CGRect(x: 0, y: 0, width: 300, height: 120); v.layoutIfNeeded()
|
|
return v
|
|
}
|
|
|
|
func test_baseWritingDirection_reportsRTLForArabic() {
|
|
let v = canvas("مرحبا")
|
|
let pos = DocumentTextPosition(v.boxes[0].textStart)
|
|
XCTAssertEqual(v.baseWritingDirection(for: pos, in: .forward), .rightToLeft)
|
|
}
|
|
|
|
func test_baseWritingDirection_reportsLTRForLatin() {
|
|
let v = canvas("Hello")
|
|
let pos = DocumentTextPosition(v.boxes[0].textStart)
|
|
XCTAssertEqual(v.baseWritingDirection(for: pos, in: .forward), .leftToRight)
|
|
}
|
|
|
|
func test_forcedLTROverride_winsOverArabicContent() {
|
|
let v = canvas("مرحبا", override: .leftToRight)
|
|
let pos = DocumentTextPosition(v.boxes[0].textStart)
|
|
XCTAssertEqual(v.baseWritingDirection(for: pos, in: .forward), .leftToRight)
|
|
}
|
|
|
|
func test_languageCodeMapping() {
|
|
XCTAssertEqual(DocumentCanvasView.writingDirection(forPrimaryLanguage: "ar"), .rightToLeft)
|
|
XCTAssertEqual(DocumentCanvasView.writingDirection(forPrimaryLanguage: "he"), .rightToLeft)
|
|
XCTAssertEqual(DocumentCanvasView.writingDirection(forPrimaryLanguage: "fa"), .rightToLeft)
|
|
XCTAssertEqual(DocumentCanvasView.writingDirection(forPrimaryLanguage: "en"), .leftToRight)
|
|
XCTAssertNil(DocumentCanvasView.writingDirection(forPrimaryLanguage: nil))
|
|
}
|
|
}
|
|
#endif
|