IGListKit/Examples/Examples-iOS/IGListKitExamples-UITests/UITestCase.swift
Nate Stedman 1a44045dce Run lint on IGListKit
Differential Revision: D19141253

fbshipit-source-id: 9ed4c278a91bb48a1f6d33cafa9ce8f21861573d
2019-12-19 09:34:42 -08:00

72 lines
2.6 KiB
Swift

/*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
import XCTest
class UITestCase: XCTestCase {
override func setUp() {
super.setUp()
continueAfterFailure = false
XCUIApplication().launch()
}
override func tearDown() {
super.tearDown()
}
// Adapted from http://masilotti.com/xctest-helpers/
internal func waitToAppear(element: XCUIElement,
timeout: TimeInterval = 2,
file: String = #file,
line: UInt = #line) {
waitToAppear(elements: [element], timeout: timeout, file: file, line: line)
}
internal func waitToAppear(elements: [XCUIElement],
timeout: TimeInterval = 2,
file: String = #file,
line: UInt = #line) {
waitTo(appear: true, elements: elements, timeout: timeout, file: file, line: line)
}
internal func waitToDisappear(element: XCUIElement,
timeout: TimeInterval = 2,
file: String = #file,
line: UInt = #line) {
waitToDisappear(elements: [element], timeout: timeout, file: file, line: line)
}
internal func waitToDisappear(elements: [XCUIElement],
timeout: TimeInterval = 2,
file: String = #file,
line: UInt = #line) {
waitTo(appear: false, elements: elements, timeout: timeout, file: file, line: line)
}
internal func waitTo(appear: Bool,
elements: [XCUIElement],
timeout: TimeInterval = 2,
file: String = #file,
line: UInt = #line) {
let existsPredicate = NSPredicate(format: "exists == \(appear)")
elements.forEach { element in
expectation(for: existsPredicate, evaluatedWith: element, handler: nil)
}
waitForExpectations(timeout: timeout) { error in
if error != nil {
let message = "Failed to \(appear ? "" : "not ")find element(s) after \(timeout) seconds."
self.recordFailure(withDescription: message,
inFile: file,
atLine: Int(line),
expected: true)
}
}
}
}