56 lines
1.2 KiB
Swift
56 lines
1.2 KiB
Swift
//
|
|
// ReCaptchaDecoder+Helper.swift
|
|
// ReCaptcha
|
|
//
|
|
// Created by Flávio Caetano on 22/12/17.
|
|
// Copyright © 2018 ReCaptcha. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
@testable import ReCaptcha
|
|
import WebKit
|
|
|
|
class MockMessage: WKScriptMessage {
|
|
override var body: Any {
|
|
return storedBody
|
|
}
|
|
|
|
fileprivate let storedBody: Any
|
|
|
|
init(message: Any) {
|
|
storedBody = message
|
|
}
|
|
}
|
|
|
|
// MARK: - Decoder Helpers
|
|
extension ReCaptchaDecoder {
|
|
func send(message: MockMessage) {
|
|
userContentController(WKUserContentController(), didReceive: message)
|
|
}
|
|
}
|
|
|
|
// MARK: - Result Helpers
|
|
extension ReCaptchaDecoder.Result: Equatable {
|
|
var error: ReCaptchaError? {
|
|
guard case .error(let error) = self else { return nil }
|
|
return error
|
|
}
|
|
|
|
public static func == (lhs: ReCaptchaDecoder.Result, rhs: ReCaptchaDecoder.Result) -> Bool {
|
|
switch (lhs, rhs) {
|
|
case (.showReCaptcha, .showReCaptcha),
|
|
(.didLoad, .didLoad):
|
|
return true
|
|
|
|
case (.token(let lht), .token(let rht)):
|
|
return lht == rht
|
|
|
|
case (.error(let lhe), .error(let rhe)):
|
|
return lhe == rhe
|
|
|
|
default:
|
|
return false
|
|
}
|
|
}
|
|
}
|