51 lines
1.5 KiB
Swift
51 lines
1.5 KiB
Swift
import Quick
|
|
import Nimble
|
|
|
|
@testable import EXDevLauncher
|
|
|
|
class EXDevLauncherPendingDeepLinkRegistryTest: QuickSpec {
|
|
class Listener: NSObject, EXDevLauncherPendingDeepLinkListener {
|
|
var lastDeepLink: URL?
|
|
|
|
func onNewPendingDeepLink(_ deepLink: URL) {
|
|
lastDeepLink = deepLink
|
|
}
|
|
}
|
|
|
|
override class func spec() {
|
|
it("registry should inform all subscribers about new value") {
|
|
let listener = Listener()
|
|
let registry = EXDevLauncherPendingDeepLinkRegistry()
|
|
|
|
registry.subscribe(listener)
|
|
registry.pendingDeepLink = URL.init(string: "http://localhost:1234")
|
|
|
|
expect(listener.lastDeepLink?.absoluteString).to(equal("http://localhost:1234"))
|
|
}
|
|
|
|
it("unsubscribe should work") {
|
|
let listener = Listener()
|
|
let registry = EXDevLauncherPendingDeepLinkRegistry()
|
|
|
|
registry.subscribe(listener)
|
|
registry.unsubscribe(listener)
|
|
registry.pendingDeepLink = URL.init(string: "http://localhost:1234")
|
|
|
|
expect(listener.lastDeepLink).to(beNil())
|
|
}
|
|
|
|
it("consumePendingDeepLink should reset the inner value") {
|
|
let listener = Listener()
|
|
let registry = EXDevLauncherPendingDeepLinkRegistry()
|
|
|
|
registry.subscribe(listener)
|
|
registry.pendingDeepLink = URL.init(string: "http://localhost:1234")
|
|
let consumedURL = registry.consumePendingDeepLink()
|
|
|
|
expect(registry.pendingDeepLink).to(beNil())
|
|
expect(listener.lastDeepLink?.absoluteString).to(equal("http://localhost:1234"))
|
|
expect(listener.lastDeepLink! as NSURL) === (consumedURL! as NSURL)
|
|
}
|
|
}
|
|
}
|