* Add failing first-click pane focus tests * Enable optional first-click focus for inactive panes * Address PR review follow-ups --------- Co-authored-by: Lawrence Chen <lawrencecchen@users.noreply.github.com>
72 lines
2.1 KiB
Swift
72 lines
2.1 KiB
Swift
import XCTest
|
|
import AppKit
|
|
import WebKit
|
|
|
|
#if canImport(cmux_DEV)
|
|
@testable import cmux_DEV
|
|
#elseif canImport(cmux)
|
|
@testable import cmux
|
|
#endif
|
|
|
|
@MainActor
|
|
final class InactivePaneFirstClickFocusTests: XCTestCase {
|
|
private let settingsKey = "paneFirstClickFocus.enabled"
|
|
|
|
override func setUp() {
|
|
super.setUp()
|
|
UserDefaults.standard.removeObject(forKey: settingsKey)
|
|
}
|
|
|
|
override func tearDown() {
|
|
UserDefaults.standard.removeObject(forKey: settingsKey)
|
|
super.tearDown()
|
|
}
|
|
|
|
func testTerminalViewAcceptsFirstMouseWhenSettingEnabled() {
|
|
UserDefaults.standard.set(true, forKey: settingsKey)
|
|
|
|
let view = GhosttyNSView(frame: .zero)
|
|
|
|
XCTAssertTrue(view.acceptsFirstMouse(for: nil))
|
|
}
|
|
|
|
func testTerminalViewRejectsFirstMouseWhenSettingDisabled() {
|
|
UserDefaults.standard.set(false, forKey: settingsKey)
|
|
|
|
let view = GhosttyNSView(frame: .zero)
|
|
|
|
XCTAssertFalse(view.acceptsFirstMouse(for: nil))
|
|
}
|
|
|
|
func testBrowserViewAcceptsFirstMouseWhenSettingEnabled() {
|
|
UserDefaults.standard.set(true, forKey: settingsKey)
|
|
|
|
let view = CmuxWebView(frame: .zero, configuration: WKWebViewConfiguration())
|
|
|
|
XCTAssertTrue(view.acceptsFirstMouse(for: nil))
|
|
}
|
|
|
|
func testBrowserViewRejectsFirstMouseWhenSettingDisabled() {
|
|
UserDefaults.standard.set(false, forKey: settingsKey)
|
|
|
|
let view = CmuxWebView(frame: .zero, configuration: WKWebViewConfiguration())
|
|
|
|
XCTAssertFalse(view.acceptsFirstMouse(for: nil))
|
|
}
|
|
|
|
func testMarkdownPointerObserverAcceptsFirstMouseWhenSettingEnabled() {
|
|
UserDefaults.standard.set(true, forKey: settingsKey)
|
|
|
|
let view = MarkdownPanelPointerObserverView(frame: .zero)
|
|
|
|
XCTAssertTrue(view.acceptsFirstMouse(for: nil))
|
|
}
|
|
|
|
func testMarkdownPointerObserverRejectsFirstMouseWhenSettingDisabled() {
|
|
UserDefaults.standard.set(false, forKey: settingsKey)
|
|
|
|
let view = MarkdownPanelPointerObserverView(frame: .zero)
|
|
|
|
XCTAssertFalse(view.acceptsFirstMouse(for: nil))
|
|
}
|
|
}
|