Skip to content

Commit 4d05880

Browse files
committed
Add ⌘ modifier tests
1 parent 53e9e6c commit 4d05880

File tree

1 file changed

+25
-3
lines changed

1 file changed

+25
-3
lines changed

Lib/SauceTests/KeyboardLayoutTests.swift

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,28 @@ final class KeyboardLayoutTests: XCTestCase {
7373
uninstallInputSource(id: ABCKeyboardID)
7474
}
7575

76+
func testKeyCodesForABCKeyboardWithCommandModifier() {
77+
let isInstalledABCKeyboard = isInstalledInputSource(id: ABCKeyboardID)
78+
XCTAssertTrue(installInputSource(id: ABCKeyboardID))
79+
XCTAssertTrue(selectInputSource(id: ABCKeyboardID))
80+
let notificationCenter = NotificationCenter()
81+
let keyboardLayout = KeyboardLayout(notificationCenter: notificationCenter)
82+
let vKeyCode = keyboardLayout.currentKeyCode(for: .v, carbonModifiers: cmdKey)
83+
XCTAssertEqual(vKeyCode, CGKeyCode(QWERTYVKeyCode))
84+
let vKey = keyboardLayout.currentKey(for: QWERTYVKeyCode, carbonModifiers: cmdKey)
85+
XCTAssertEqual(vKey, .v)
86+
let vCharacter = keyboardLayout.currentCharacter(for: QWERTYVKeyCode, carbonModifiers: cmdKey)
87+
XCTAssertEqual(vCharacter, "v")
88+
let vShiftCharacter = keyboardLayout.currentCharacter(for: QWERTYVKeyCode, carbonModifiers: modifierTransformer.carbonFlags(from: [.shift, .command]))
89+
XCTAssertEqual(vShiftCharacter, "V")
90+
let vOptionCharacter = keyboardLayout.currentCharacter(for: QWERTYVKeyCode, carbonModifiers: modifierTransformer.carbonFlags(from: [.option, .command]))
91+
XCTAssertEqual(vOptionCharacter, "")
92+
let vShiftOptionCharacter = keyboardLayout.currentCharacter(for: QWERTYVKeyCode, carbonModifiers: modifierTransformer.carbonFlags(from: [.shift, .option, .command]))
93+
XCTAssertEqual(vShiftOptionCharacter, "")
94+
guard !isInstalledABCKeyboard else { return }
95+
uninstallInputSource(id: ABCKeyboardID)
96+
}
97+
7698
func testKeyCodesForDvorakKeyboard() {
7799
let isInstalledDvorakKeyboard = isInstalledInputSource(id: dvorakKeyboardID)
78100
XCTAssertTrue(installInputSource(id: dvorakKeyboardID))
@@ -85,11 +107,11 @@ final class KeyboardLayoutTests: XCTestCase {
85107
XCTAssertEqual(vKey, .v)
86108
let vCharacter = keyboardLayout.currentCharacter(for: DvorakVKeyCode, carbonModifiers: 0)
87109
XCTAssertEqual(vCharacter, "v")
88-
let vShiftCharacter = keyboardLayout.currentCharacter(for: DvorakVKeyCode, carbonModifiers: modifierTransformer.carbonFlags(from: [.shift, .command]))
110+
let vShiftCharacter = keyboardLayout.currentCharacter(for: DvorakVKeyCode, carbonModifiers: modifierTransformer.carbonFlags(from: .shift))
89111
XCTAssertEqual(vShiftCharacter, "V")
90-
let vOptionCharacter = keyboardLayout.currentCharacter(for: DvorakVKeyCode, carbonModifiers: modifierTransformer.carbonFlags(from: [.option, .command]))
112+
let vOptionCharacter = keyboardLayout.currentCharacter(for: DvorakVKeyCode, carbonModifiers: modifierTransformer.carbonFlags(from: [.option]))
91113
XCTAssertEqual(vOptionCharacter, "")
92-
let vShiftOptionCharacter = keyboardLayout.currentCharacter(for: DvorakVKeyCode, carbonModifiers: modifierTransformer.carbonFlags(from: [.shift, .option, .command]))
114+
let vShiftOptionCharacter = keyboardLayout.currentCharacter(for: DvorakVKeyCode, carbonModifiers: modifierTransformer.carbonFlags(from: [.shift, .option]))
93115
XCTAssertEqual(vShiftOptionCharacter, "")
94116
guard !isInstalledDvorakKeyboard else { return }
95117
uninstallInputSource(id: dvorakKeyboardID)

0 commit comments

Comments
 (0)