Files
Termind/TFITests/MobileTerminalTextSelectionTests.swift
T

44 lines
1.4 KiB
Swift

import Foundation
import Testing
import UIKit
@testable import TermindIOS
@Suite @MainActor
struct MobileTerminalTextSelectionTests {
@Test func validAnchorRangeSelectsTheRequestedUTF16Text() {
let text = "prompt 你好 world"
let range = (text as NSString).range(of: "你好")
let controller = MobileTerminalTextSelectionViewController(
selection: MobileTerminalTextSelection(text: text, anchorRange: range)
)
controller.loadViewIfNeeded()
controller.viewDidAppear(false)
#expect(controller.textView.isSelectable)
#expect(!controller.textView.isEditable)
#expect(controller.textView.selectedRange == range)
}
@Test func missingAnchorRangeSelectsAllViewportText() {
let text = "first line\nsecond line"
let range = MobileTerminalTextSelectionViewController.resolvedSelectionRange(
text: text,
anchorRange: nil
)
#expect(range == NSRange(location: 0, length: (text as NSString).length))
}
@Test func invalidAnchorRangeSelectsAllViewportText() {
let text = "short"
let range = MobileTerminalTextSelectionViewController.resolvedSelectionRange(
text: text,
anchorRange: NSRange(location: 4, length: 20)
)
#expect(range == NSRange(location: 0, length: (text as NSString).length))
}
}