Skip to content

Instantly share code, notes, and snippets.

View evermeer's full-sized avatar

Edwin Vermeer evermeer

View GitHub Profile
@evermeer
evermeer / testsample.swift
Created June 1, 2018 14:16
Code block 4 for UITest medium blog
XCTAssert(HomeScreen.theLabel.waitUntilExists().exists, "label should exist")
HomeScreen.theLabel.waitUntilExistsAssert()
group("Testing the switch") { activity in
takeScreenshot(activity: activity, "First screenshot")
app.buttons["Second"].waitUntilExists().tap()
takeScreenshot()
app.buttons["Third"].waitUntilExists().tap()
takeScreenshot(groupName: "Screenshot group?")
HomeScreen.theButton.waitUntilExists().tap()
takeScreenshot("Last screenshot")
@evermeer
evermeer / infixOperator.swift
Created June 1, 2018 14:14
Code block 3 for UITest medium blog
infix operator ~~>
public extension UIView {
static func ~~> <T>(lhs: UIView, rhs: T) where T: RawRepresentable {
if let rv = rhs.rawValue as? String {
lhs.accessibilityIdentifier = rv
}
}
}
@evermeer
evermeer / RawRepresentableUITest.swift
Created June 1, 2018 14:13
code block 2 for UITest medium blog
public extension RawRepresentable {
var element: XCUIElement {
if query.count > 1 {
fatalError("There are \(query.count) elements with identifier \(self.rawValue as? String ?? "") found!")
}
return query.firstMatch
}
var query: XCUIElementQuery {
return XCUIApplication().descendants(matching: .any).matching(identifier: self.rawValue as? String ?? "")
}
@evermeer
evermeer / UITestEnum.swift
Created June 1, 2018 14:11
code block for UITest medium blog
enum HomeScreen: String {
case theLabel
case theTextField
case theButton
case switch1
case switch2
case dueButton
case detailsButton
}
@evermeer
evermeer / gist:5df7ad1f8db529893f40
Created July 7, 2015 20:15
CloudKit working with cursor
/**
Generic query handling
- parameter type: An object instance that will be used as the type of the records that will be returned
- parameter query: The CloudKit query that will be executed
- parameter completionHandler: The function that will be called with the result of the query
- parameter errorHandler: The function that will be called when there was an error
:return: No return value
*/
internal func queryRecords<T:EVCloudKitDataObject>(type:T, query: CKQuery, completionHandler: (results: [T]) -> Bool, errorHandler:((error: NSError) -> Void)? = nil) {