50 lines
1.6 KiB
Swift
50 lines
1.6 KiB
Swift
import XCTest
|
|
@testable import CommandNotch
|
|
import SwiftTerm
|
|
|
|
final class TerminalScrollWheelRouterTests: XCTestCase {
|
|
func testMouseWheelForwardingRequiresMouseReportingAndActiveMouseMode() {
|
|
XCTAssertFalse(TerminalScrollWheelRouter.shouldSendMouseWheel(
|
|
allowMouseReporting: false,
|
|
mouseMode: .vt200,
|
|
deltaY: 1
|
|
))
|
|
XCTAssertFalse(TerminalScrollWheelRouter.shouldSendMouseWheel(
|
|
allowMouseReporting: true,
|
|
mouseMode: .off,
|
|
deltaY: 1
|
|
))
|
|
XCTAssertFalse(TerminalScrollWheelRouter.shouldSendMouseWheel(
|
|
allowMouseReporting: true,
|
|
mouseMode: .vt200,
|
|
deltaY: 0
|
|
))
|
|
XCTAssertTrue(TerminalScrollWheelRouter.shouldSendMouseWheel(
|
|
allowMouseReporting: true,
|
|
mouseMode: .vt200,
|
|
deltaY: -1
|
|
))
|
|
}
|
|
|
|
func testVelocityMatchesExpectedThresholds() {
|
|
XCTAssertEqual(TerminalScrollWheelRouter.velocity(for: 1), 1)
|
|
XCTAssertEqual(TerminalScrollWheelRouter.velocity(for: 2), 3)
|
|
XCTAssertEqual(TerminalScrollWheelRouter.velocity(for: 6), 10)
|
|
XCTAssertEqual(TerminalScrollWheelRouter.velocity(for: 10), 20)
|
|
}
|
|
|
|
func testGridPositionClampsToTerminalBounds() {
|
|
let hit = TerminalScrollWheelRouter.gridPosition(
|
|
point: CGPoint(x: 210, y: -10),
|
|
bounds: CGRect(x: 0, y: 0, width: 200, height: 100),
|
|
cols: 10,
|
|
rows: 5
|
|
)
|
|
|
|
XCTAssertEqual(hit.x, 9)
|
|
XCTAssertEqual(hit.y, 4)
|
|
XCTAssertEqual(hit.pixelX, 200)
|
|
XCTAssertEqual(hit.pixelY, 100)
|
|
}
|
|
}
|