summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--ios/MullvadVPN/SimulatorTunnelProvider.swift50
1 files changed, 50 insertions, 0 deletions
diff --git a/ios/MullvadVPN/SimulatorTunnelProvider.swift b/ios/MullvadVPN/SimulatorTunnelProvider.swift
index 98b51dda34..3ee852299f 100644
--- a/ios/MullvadVPN/SimulatorTunnelProvider.swift
+++ b/ios/MullvadVPN/SimulatorTunnelProvider.swift
@@ -46,6 +46,56 @@ extension NEVPNConnection: VPNConnectionProtocol {}
extension NETunnelProviderSession: VPNTunnelProviderSessionProtocol {}
extension NETunnelProviderManager: VPNTunnelProviderManagerProtocol {}
+extension VPNTunnelProviderManagerProtocol {
+ static func loadAllFromPreferences() -> Result<[SelfType]?, Error>.Promise {
+ return Result<[SelfType]?, Error>.Promise { resolver in
+ Self.loadAllFromPreferences { tunnels, error in
+ if let error = error {
+ resolver.resolve(value: .failure(error))
+ } else {
+ resolver.resolve(value: .success(tunnels))
+ }
+ }
+ }
+ }
+
+ func loadFromPreferences() -> Result<(), Error>.Promise {
+ return Result<(), Error>.Promise { resolver in
+ loadFromPreferences { error in
+ if let error = error {
+ resolver.resolve(value: .failure(error))
+ } else {
+ resolver.resolve(value: .success(()))
+ }
+ }
+ }
+ }
+
+ func saveToPreferences() -> Result<(), Error>.Promise {
+ return Result<(), Error>.Promise { resolver in
+ saveToPreferences { error in
+ if let error = error {
+ resolver.resolve(value: .failure(error))
+ } else {
+ resolver.resolve(value: .success(()))
+ }
+ }
+ }
+ }
+
+ func removeFromPreferences() -> Result<(), Error>.Promise {
+ return Result<(), Error>.Promise { resolver in
+ removeFromPreferences { error in
+ if let error = error {
+ resolver.resolve(value: .failure(error))
+ } else {
+ resolver.resolve(value: .success(()))
+ }
+ }
+ }
+ }
+}
+
#if targetEnvironment(simulator)
// MARK: - NEPacketTunnelProvider stubs