58 lines
1.6 KiB
Swift
58 lines
1.6 KiB
Swift
import AppKit
|
|
import Carbon.HIToolbox
|
|
import XCTest
|
|
import SwiftTerm
|
|
@testable import CommandNotch
|
|
|
|
final class TerminalCommandArrowBehaviorTests: XCTestCase {
|
|
func testCommandLeftUsesHomeSequence() {
|
|
let sequence = TerminalCommandArrowBehavior.sequence(
|
|
for: [.command],
|
|
keyCode: UInt16(kVK_LeftArrow),
|
|
applicationCursor: false
|
|
)
|
|
|
|
XCTAssertEqual(sequence, EscapeSequences.moveHomeNormal)
|
|
}
|
|
|
|
func testCommandRightUsesApplicationEndSequence() {
|
|
let sequence = TerminalCommandArrowBehavior.sequence(
|
|
for: [.command],
|
|
keyCode: UInt16(kVK_RightArrow),
|
|
applicationCursor: true
|
|
)
|
|
|
|
XCTAssertEqual(sequence, EscapeSequences.moveEndApp)
|
|
}
|
|
|
|
func testOptionLeftKeepsSwiftTermWordNavigationPath() {
|
|
let sequence = TerminalCommandArrowBehavior.sequence(
|
|
for: [.option],
|
|
keyCode: UInt16(kVK_LeftArrow),
|
|
applicationCursor: false
|
|
)
|
|
|
|
XCTAssertNil(sequence)
|
|
}
|
|
|
|
func testCommandDeleteUsesLineKillSequence() {
|
|
let sequence = TerminalCommandArrowBehavior.sequence(
|
|
for: [.command],
|
|
keyCode: UInt16(kVK_Delete),
|
|
applicationCursor: false
|
|
)
|
|
|
|
XCTAssertEqual(sequence, [0x15])
|
|
}
|
|
|
|
func testCommandLUsesClearScreenSequence() {
|
|
let sequence = TerminalCommandArrowBehavior.sequence(
|
|
for: [.command],
|
|
keyCode: UInt16(kVK_ANSI_L),
|
|
applicationCursor: false
|
|
)
|
|
|
|
XCTAssertEqual(sequence, [0x0c])
|
|
}
|
|
}
|