diff --git a/Source/Visitable/Visitable.swift b/Source/Visitable/Visitable.swift index c977493..6f51247 100644 --- a/Source/Visitable/Visitable.swift +++ b/Source/Visitable/Visitable.swift @@ -17,6 +17,9 @@ public protocol Visitable: AnyObject { func visitableDidRender() func showVisitableActivityIndicator() func hideVisitableActivityIndicator() + + func visitableDidActivateWebView(_ webView: WKWebView) + func visitableDidDeactivateWebView() } extension Visitable { @@ -31,13 +34,23 @@ extension Visitable { public func hideVisitableActivityIndicator() { visitableView.hideActivityIndicator() } + + public func visitableDidActivateWebView(_ webView: WKWebView) { + // No-op + } + + public func visitableDidDeactivateWebView() { + // No-op + } func activateVisitableWebView(_ webView: WKWebView) { visitableView.activateWebView(webView, forVisitable: self) + visitableDidActivateWebView(webView) } func deactivateVisitableWebView() { visitableView.deactivateWebView() + visitableDidDeactivateWebView() } func updateVisitableScreenshot() { diff --git a/Source/Visitable/VisitableViewController.swift b/Source/Visitable/VisitableViewController.swift index 0072751..b245952 100644 --- a/Source/Visitable/VisitableViewController.swift +++ b/Source/Visitable/VisitableViewController.swift @@ -1,4 +1,5 @@ import UIKit +import WebKit open class VisitableViewController: UIViewController, Visitable { open weak var visitableDelegate: VisitableDelegate? @@ -41,6 +42,14 @@ open class VisitableViewController: UIViewController, Visitable { visitableView.hideActivityIndicator() } + open func visitableDidActivateWebView(_ webView: WKWebView) { + // No-op + } + + open func visitableDidDeactivateWebView() { + // No-op + } + // MARK: Visitable View open private(set) lazy var visitableView: VisitableView! = { diff --git a/Tests/SessionSpec.swift b/Tests/SessionSpec.swift index 648d3a9..b7243ad 100644 --- a/Tests/SessionSpec.swift +++ b/Tests/SessionSpec.swift @@ -5,7 +5,7 @@ import Nimble import GCDWebServers @testable import Turbo -private let timeout = DispatchTimeInterval.seconds(15) +private let timeout = DispatchTimeInterval.seconds(35) class SessionSpec: QuickSpec { let server = GCDWebServer() diff --git a/Tests/Test.swift b/Tests/Test.swift index 2144997..cffcb86 100644 --- a/Tests/Test.swift +++ b/Tests/Test.swift @@ -1,9 +1,12 @@ import UIKit +import WebKit @testable import Turbo class TestVisitable: UIViewController, Visitable { // MARK: - Tests var visitableDidRenderCalled = false + var visitableDidActivateWebViewWasCalled = false + var visitableDidDeactivateWebViewWasCalled = false // MARK: - Visitable var visitableDelegate: VisitableDelegate? @@ -23,6 +26,14 @@ class TestVisitable: UIViewController, Visitable { func visitableDidRender() { visitableDidRenderCalled = true } + + func visitableDidActivateWebView(_ webView: WKWebView) { + visitableDidActivateWebViewWasCalled = true + } + + func visitableDidDeactivateWebView() { + visitableDidDeactivateWebViewWasCalled = true + } } class TestSessionDelegate: NSObject, SessionDelegate {