You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

74 lines
2.2 KiB

// Copyright © 2015 Abhishek Banthia
import XCTest
class AboutUsTests: XCTestCase {
var app: XCUIApplication!
override func setUp() {
super.setUp()
// Put setup code here. This method is called before the invocation of each test method in the class.
// In UI tests it is usually best to stop immediately when a failure occurs.
continueAfterFailure = false
app = XCUIApplication()
app.launchArguments.append(CLUITestingLaunchArgument) // To configure Firebase in AppDelegate
app.launch()
if app.tables["FloatingTableView"].exists {
app.tapMenubarIcon()
app.buttons["FloatingPin"].click()
}
}
private func tapAboutTab() {
let aboutTab = app.toolbars.buttons.element(boundBy: 4)
aboutTab.click()
}
func testMockingFeedback() {
app.tapMenubarIcon()
app.buttons["Preferences"].click()
tapAboutTab()
app.checkBoxes["ClockerPrivateFeedback"].click()
app.buttons["Send Feedback"].click()
XCTAssertFalse(app.progressIndicators["ProgressIndicator"].exists)
sleep(2) // Wait for Toast to disappear
// Close window
app.windows["Clocker Feedback"].buttons["Cancel"].click()
}
func testSendingDataToFirebase() {
app.tapMenubarIcon()
app.buttons["Preferences"].click()
tapAboutTab()
app.checkBoxes["ClockerPrivateFeedback"].click()
let textView = app.textViews["FeedbackTextView"]
textView.click()
textView.typeText("This feedback was generated by UI Tests")
let nameField = app.textFields["NameField"]
nameField.click()
nameField.typeText("Random Name")
let emailField = app.textFields["EmailField"]
emailField.click()
emailField.typeText("randomemail@uitests.com")
app.buttons["Send Feedback"].click()
inverseWaiterFor(element: app.progressIndicators["ProgressIndicator"])
XCTAssertTrue(app.sheets.staticTexts["Thank you for helping make Clocker even better!"].exists)
XCTAssertTrue(app.sheets.staticTexts["We owe you a candy. 😇"].exists)
app.windows["Clocker Feedback"].sheets.buttons["Close"].click()
}
}