diff --git a/packages/shared_preferences/shared_preferences_foundation/darwin/Classes/SharedPreferencesPlugin.swift b/packages/shared_preferences/shared_preferences_foundation/darwin/Classes/SharedPreferencesPlugin.swift index fcfe97e568c..b88562e8398 100644 --- a/packages/shared_preferences/shared_preferences_foundation/darwin/Classes/SharedPreferencesPlugin.swift +++ b/packages/shared_preferences/shared_preferences_foundation/darwin/Classes/SharedPreferencesPlugin.swift @@ -5,24 +5,24 @@ import Foundation #if os(iOS) -import Flutter + import Flutter #elseif os(macOS) -import FlutterMacOS + import FlutterMacOS #endif public class SharedPreferencesPlugin: NSObject, FlutterPlugin, UserDefaultsApi { public static func register(with registrar: FlutterPluginRegistrar) { let instance = SharedPreferencesPlugin() // Workaround for https://github.com/flutter/flutter/issues/118103. -#if os(iOS) - let messenger = registrar.messenger() -#else - let messenger = registrar.messenger -#endif + #if os(iOS) + let messenger = registrar.messenger() + #else + let messenger = registrar.messenger + #endif UserDefaultsApiSetup.setUp(binaryMessenger: messenger, api: instance) } - func getAll(prefix: String, allowList: [String]?) -> [String? : Any?] { + func getAll(prefix: String, allowList: [String]?) -> [String?: Any?] { return getAllPrefs(prefix: prefix, allowList: allowList) } @@ -47,21 +47,22 @@ public class SharedPreferencesPlugin: NSObject, FlutterPlugin, UserDefaultsApi { for (key, _) in getAllPrefs(prefix: prefix, allowList: allowList) { defaults.removeObject(forKey: key) } - return true + return true } /// Returns all preferences stored with specified prefix. /// If [allowList] is included, only items included will be returned. func getAllPrefs(prefix: String, allowList: [String]?) -> [String: Any] { var filteredPrefs: [String: Any] = [:] - var allowSet: Set?; + var allowSet: Set? if let allowList = allowList { allowSet = Set(allowList) } if let appDomain = Bundle.main.bundleIdentifier, let prefs = UserDefaults.standard.persistentDomain(forName: appDomain) { - for (key, value) in prefs where (key.hasPrefix(prefix) && (allowSet == nil || allowSet!.contains(key))) { + for (key, value) in prefs + where (key.hasPrefix(prefix) && (allowSet == nil || allowSet!.contains(key))) { filteredPrefs[key] = value } } diff --git a/packages/shared_preferences/shared_preferences_foundation/darwin/Tests/RunnerTests.swift b/packages/shared_preferences/shared_preferences_foundation/darwin/Tests/RunnerTests.swift index 64dd646ef8b..42a1d00d835 100644 --- a/packages/shared_preferences/shared_preferences_foundation/darwin/Tests/RunnerTests.swift +++ b/packages/shared_preferences/shared_preferences_foundation/darwin/Tests/RunnerTests.swift @@ -4,14 +4,14 @@ import XCTest +@testable import shared_preferences_foundation + #if os(iOS) -import Flutter + import Flutter #elseif os(macOS) -import FlutterMacOS + import FlutterMacOS #endif -@testable import shared_preferences_foundation - class RunnerTests: XCTestCase { let prefixes: [String] = ["aPrefix", ""] @@ -30,7 +30,7 @@ class RunnerTests: XCTestCase { XCTAssertEqual(storedValues["\(aPrefix)aDouble"] as! Double, 3.14, accuracy: 0.0001) XCTAssertEqual(storedValues["\(aPrefix)anInt"] as? Int, 42) XCTAssertEqual(storedValues["\(aPrefix)aString"] as? String, "hello world") - XCTAssertEqual(storedValues["\(aPrefix)aStringList"] as? Array, ["hello", "world"]) + XCTAssertEqual(storedValues["\(aPrefix)aStringList"] as? [String], ["hello", "world"]) } } @@ -70,40 +70,40 @@ class RunnerTests: XCTestCase { XCTAssertNil(finalValues[testKey] as Any?) } } - - func testClearWithNoAllowlist() throws { - for aPrefix in prefixes { - let plugin = SharedPreferencesPlugin() - let testKey = "\(aPrefix)foo" - plugin.setValue(key: testKey, value: 42) - - // Make sure there is something to clear, so the test can't pass due to a set failure. - let preRemovalValues = plugin.getAll(prefix: aPrefix, allowList: nil) - XCTAssertEqual(preRemovalValues[testKey] as? Int, 42) - - // Then verify that clearing works. - plugin.clear(prefix: aPrefix, allowList: nil) - - let finalValues = plugin.getAll(prefix: aPrefix, allowList: nil) - XCTAssertNil(finalValues[testKey] as Any?) - } + + func testClearWithNoAllowlist() throws { + for aPrefix in prefixes { + let plugin = SharedPreferencesPlugin() + let testKey = "\(aPrefix)foo" + plugin.setValue(key: testKey, value: 42) + + // Make sure there is something to clear, so the test can't pass due to a set failure. + let preRemovalValues = plugin.getAll(prefix: aPrefix, allowList: nil) + XCTAssertEqual(preRemovalValues[testKey] as? Int, 42) + + // Then verify that clearing works. + plugin.clear(prefix: aPrefix, allowList: nil) + + let finalValues = plugin.getAll(prefix: aPrefix, allowList: nil) + XCTAssertNil(finalValues[testKey] as Any?) } - - func testClearWithAllowlist() throws { - for aPrefix in prefixes { - let plugin = SharedPreferencesPlugin() - let testKey = "\(aPrefix)foo" - plugin.setValue(key: testKey, value: 42) - - // Make sure there is something to clear, so the test can't pass due to a set failure. - let preRemovalValues = plugin.getAll(prefix: aPrefix, allowList: nil) - XCTAssertEqual(preRemovalValues[testKey] as? Int, 42) - - plugin.clear(prefix: aPrefix, allowList: ["\(aPrefix)notfoo"]) - - let finalValues = plugin.getAll(prefix: aPrefix, allowList: nil) - XCTAssertEqual(finalValues[testKey] as? Int, 42) - } + } + + func testClearWithAllowlist() throws { + for aPrefix in prefixes { + let plugin = SharedPreferencesPlugin() + let testKey = "\(aPrefix)foo" + plugin.setValue(key: testKey, value: 42) + + // Make sure there is something to clear, so the test can't pass due to a set failure. + let preRemovalValues = plugin.getAll(prefix: aPrefix, allowList: nil) + XCTAssertEqual(preRemovalValues[testKey] as? Int, 42) + + plugin.clear(prefix: aPrefix, allowList: ["\(aPrefix)notfoo"]) + + let finalValues = plugin.getAll(prefix: aPrefix, allowList: nil) + XCTAssertEqual(finalValues[testKey] as? Int, 42) } - + } + } diff --git a/packages/shared_preferences/shared_preferences_foundation/example/ios/Runner/AppDelegate.swift b/packages/shared_preferences/shared_preferences_foundation/example/ios/Runner/AppDelegate.swift index caf99839333..d83c0ff0bee 100644 --- a/packages/shared_preferences/shared_preferences_foundation/example/ios/Runner/AppDelegate.swift +++ b/packages/shared_preferences/shared_preferences_foundation/example/ios/Runner/AppDelegate.swift @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -import UIKit import Flutter +import UIKit @UIApplicationMain @objc class AppDelegate: FlutterAppDelegate {