|
|
|
// Copyright © 2015 Abhishek Banthia
|
|
|
|
|
|
|
|
import XCTest
|
|
|
|
|
|
|
|
class ShortcutTests: XCTestCase {
|
|
|
|
|
|
|
|
var app: XCUIApplication!
|
|
|
|
|
|
|
|
let randomIndex = Int(arc4random_uniform(26))
|
|
|
|
|
|
|
|
override func setUp() {
|
|
|
|
super.setUp()
|
|
|
|
continueAfterFailure = false
|
|
|
|
app = XCUIApplication()
|
|
|
|
app.launch()
|
|
|
|
app.tapMenubarIcon()
|
|
|
|
|
|
|
|
if !app.tables["mainTableView"].exists {
|
|
|
|
app.buttons["FloatingPin"].click()
|
|
|
|
app.tapMenubarIcon()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func testShortcuts() {
|
|
|
|
|
|
|
|
app.tables["mainTableView"].typeKey(",", modifierFlags: .command)
|
|
|
|
|
|
|
|
XCTAssertFalse(app.tables["mainTableView"].exists)
|
|
|
|
|
|
|
|
let randomAlphabet = randomLetter()
|
|
|
|
|
|
|
|
app.windows["Clocker"].buttons["ShortcutControl"].click()
|
|
|
|
app.windows["Clocker"].buttons["ShortcutControl"].typeKey(randomAlphabet, modifierFlags: [.shift, .command])
|
|
|
|
|
|
|
|
// Close the window to really test
|
|
|
|
app.windows["Clocker"].buttons["_XCUI:CloseWindow"].click()
|
|
|
|
|
|
|
|
app.typeKey(randomAlphabet, modifierFlags: [.shift, .command])
|
|
|
|
XCTAssertTrue(app.tables["mainTableView"].exists)
|
|
|
|
|
|
|
|
app.terminate()
|
|
|
|
app.launch()
|
|
|
|
|
|
|
|
app.typeKey(randomAlphabet, modifierFlags: [.shift, .command])
|
|
|
|
XCTAssertTrue(app.tables["mainTableView"].exists)
|
|
|
|
|
|
|
|
// Reset the shortcut
|
|
|
|
app.tables["mainTableView"].typeKey(",", modifierFlags: .command)
|
|
|
|
app.windows["Clocker"].buttons["ShortcutControl"].click()
|
|
|
|
app.windows["Clocker"].typeKey(XCUIKeyboardKey.delete, modifierFlags: [])
|
|
|
|
app.windows["Clocker"].typeKey(randomAlphabet, modifierFlags: [.shift, .command])
|
|
|
|
XCTAssertFalse(app.tables["mainTableView"].exists)
|
|
|
|
}
|
|
|
|
|
|
|
|
private func randomLetter() -> String {
|
|
|
|
let alphabet: [String] = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"]
|
|
|
|
return alphabet[randomIndex]
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|