Files
location-spoofer/Tests/PaopaoLocationSpooferTests/ProxyRuntimeModeTests.swift
T

57 lines
2.5 KiB
Swift

import XCTest
@testable import PaopaoLocationSpoofer
@MainActor
final class ProxyRuntimeModeTests: XCTestCase {
func testDefaultsToLocalWiFiAndPersistsThirdPartyMode() {
let suiteName = "ProxyRuntimeModeTests.\(UUID().uuidString)"
let legacySuiteName = "ProxyRuntimeModeLegacyTests.\(UUID().uuidString)"
let defaults = UserDefaults(suiteName: suiteName)!
let legacyDefaults = UserDefaults(suiteName: legacySuiteName)!
defer {
defaults.removePersistentDomain(forName: suiteName)
legacyDefaults.removePersistentDomain(forName: legacySuiteName)
}
let initial = ProxyRuntimeModeStore(defaults: defaults, legacyDefaults: legacyDefaults)
XCTAssertEqual(initial.mode, .localWiFi)
XCTAssertFalse(initial.hasSelectedMode)
XCTAssertFalse(initial.isInitialized(.localWiFi))
XCTAssertFalse(initial.isInitialized(.thirdParty))
initial.setMode(.thirdParty)
initial.markInitialized(.thirdParty)
let restored = ProxyRuntimeModeStore(defaults: defaults, legacyDefaults: legacyDefaults)
XCTAssertEqual(restored.mode, .thirdParty)
XCTAssertTrue(restored.hasSelectedMode)
XCTAssertFalse(restored.isInitialized(.localWiFi))
XCTAssertTrue(restored.isInitialized(.thirdParty))
restored.resetInitialization(.thirdParty)
XCTAssertFalse(restored.isInitialized(.thirdParty))
}
func testMigratesOnlyCurrentLegacyCompletedMode() {
let suiteName = "ProxyRuntimeModeMigrationTests.\(UUID().uuidString)"
let legacySuiteName = "ProxyRuntimeModeMigrationLegacyTests.\(UUID().uuidString)"
let defaults = UserDefaults(suiteName: suiteName)!
let legacyDefaults = UserDefaults(suiteName: legacySuiteName)!
defer {
defaults.removePersistentDomain(forName: suiteName)
legacyDefaults.removePersistentDomain(forName: legacySuiteName)
}
defaults.set(ProxyRuntimeMode.thirdParty.rawValue, forKey: "proxyRuntimeMode")
defaults.set(true, forKey: "hasSelectedProxyRuntimeMode")
legacyDefaults.set(true, forKey: "setupCompleted")
let migrated = ProxyRuntimeModeStore(defaults: defaults, legacyDefaults: legacyDefaults)
XCTAssertFalse(migrated.isInitialized(.localWiFi))
XCTAssertTrue(migrated.isInitialized(.thirdParty))
migrated.setMode(.localWiFi)
XCTAssertFalse(migrated.isInitialized(.localWiFi))
XCTAssertTrue(migrated.isInitialized(.thirdParty))
}
}