// Copyright © 2015 Abhishek Banthia import XCTest class PermissionsTests: XCTestCase { var app: XCUIApplication! override func setUp() { super.setUp() continueAfterFailure = false app = XCUIApplication() app.launch() } func testAcceptingCalendarPermissions() { if app.tables["FloatingTableView"].exists { app.buttons["FloatingPin"].click() } app.tapMenubarIcon() app/*@START_MENU_TOKEN@*/ .buttons["Preferences"]/*[[".dialogs[\"Clocker Panel\"].buttons[\"Preferences\"]",".buttons[\"Preferences\"]"],[[[-1,1],[-1,0]]],[0]]@END_MENU_TOKEN@*/ .click() let clockerWindow = app.windows["Clocker"] // Check Permissions first let permissionsTab = clockerWindow.toolbars.buttons["Permissions"] permissionsTab.click() let grantButton = clockerWindow.buttons["CalendarGrantAccessButton"].firstMatch if grantButton.title == "Granted" || grantButton.title == "Denied" { return } let calendarButton = clockerWindow.toolbars.buttons["Calendar"] calendarButton.click() let showUpcomingEventView = clockerWindow.staticTexts["UpcomingEventView"] XCTAssertFalse(showUpcomingEventView.isHittable) clockerWindow.buttons["Grant Access"].click() clockerWindow.buttons["CalendarGrantAccessButton"].firstMatch.click() addUIInterruptionMonitor(withDescription: "Calendars Access") { alert -> Bool in let alertButton = alert.buttons["OK"] if alertButton.exists { alertButton.tap() return true } return false } calendarButton.click() XCTAssertTrue(showUpcomingEventView.isHittable) } func testAcceptingRemindersPermissions() { if app.tables["FloatingTableView"].exists { app.tapMenubarIcon() app.buttons["FloatingPin"].click() } app.tapMenubarIcon() app/*@START_MENU_TOKEN@*/ .buttons["Preferences"]/*[[".dialogs[\"Clocker Panel\"].buttons[\"Preferences\"]",".buttons[\"Preferences\"]"],[[[-1,1],[-1,0]]],[0]]@END_MENU_TOKEN@*/ .click() let clockerWindow = app.windows["Clocker"] // Check Permissions first let permissionsTab = clockerWindow.toolbars.buttons["Permissions"] permissionsTab.click() let grantButton = clockerWindow.buttons["RemindersGrantAccessButton"].firstMatch if grantButton.title == "Granted" || grantButton.title == "Denied" { return } clockerWindow.buttons["RemindersGrantAccessButton"].firstMatch.click() addUIInterruptionMonitor(withDescription: "Reminders Access") { alert -> Bool in let alertButton = alert.buttons["OK"] if alertButton.exists { alertButton.tap() return true } return false } } }