mirror of
https://github.com/xweiba/location-spoofer.git
synced 2026-09-26 16:41:54 +08:00
fix: 优化启动引导、坐标处理和日志管理
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
import XCTest
|
||||
@testable import PaopaoLocationSpoofer
|
||||
|
||||
final class VirtualLocationTipPreferencesTests: XCTestCase {
|
||||
private var suites: [String] = []
|
||||
|
||||
override func tearDown() {
|
||||
for suite in suites {
|
||||
UserDefaults.standard.removePersistentDomain(forName: suite)
|
||||
}
|
||||
suites.removeAll()
|
||||
super.tearDown()
|
||||
}
|
||||
|
||||
func testSuppressionAppearsOnlyAfterThirdSuccessfulOperation() {
|
||||
let defaults = makeDefaults()
|
||||
let legacyDefaults = makeDefaults()
|
||||
let preferences = VirtualLocationTipPreferences(
|
||||
defaults: defaults,
|
||||
legacyDefaults: legacyDefaults
|
||||
)
|
||||
|
||||
XCTAssertEqual(preferences.recordSuccessfulOperation(.activation), 1)
|
||||
XCTAssertFalse(preferences.canSuppress(.activation))
|
||||
XCTAssertEqual(preferences.recordSuccessfulOperation(.activation), 2)
|
||||
XCTAssertFalse(preferences.canSuppress(.activation))
|
||||
XCTAssertEqual(preferences.recordSuccessfulOperation(.activation), 3)
|
||||
XCTAssertTrue(preferences.canSuppress(.activation))
|
||||
}
|
||||
|
||||
func testActivationAndDeactivationCountersAndSuppressionAreIndependent() {
|
||||
let defaults = makeDefaults()
|
||||
let preferences = VirtualLocationTipPreferences(
|
||||
defaults: defaults,
|
||||
legacyDefaults: makeDefaults()
|
||||
)
|
||||
|
||||
for _ in 0..<3 {
|
||||
preferences.recordSuccessfulOperation(.activation)
|
||||
}
|
||||
preferences.suppress(.activation)
|
||||
|
||||
XCTAssertFalse(preferences.shouldPresentAutomaticTip(.activation))
|
||||
XCTAssertTrue(preferences.shouldPresentAutomaticTip(.deactivation))
|
||||
XCTAssertFalse(preferences.canSuppress(.deactivation))
|
||||
|
||||
for _ in 0..<3 {
|
||||
preferences.recordSuccessfulOperation(.deactivation)
|
||||
}
|
||||
preferences.suppress(.deactivation)
|
||||
XCTAssertFalse(preferences.shouldPresentAutomaticTip(.deactivation))
|
||||
}
|
||||
|
||||
func testSuppressionBeforeThirdOperationIsIgnored() {
|
||||
let preferences = VirtualLocationTipPreferences(
|
||||
defaults: makeDefaults(),
|
||||
legacyDefaults: makeDefaults()
|
||||
)
|
||||
|
||||
preferences.recordSuccessfulOperation(.deactivation)
|
||||
preferences.suppress(.deactivation)
|
||||
|
||||
XCTAssertTrue(preferences.shouldPresentAutomaticTip(.deactivation))
|
||||
}
|
||||
|
||||
func testLegacyActivationSuppressionRemainsEffective() {
|
||||
let legacyDefaults = makeDefaults()
|
||||
legacyDefaults.set(true, forKey: "activationTipDisabled")
|
||||
let preferences = VirtualLocationTipPreferences(
|
||||
defaults: makeDefaults(),
|
||||
legacyDefaults: legacyDefaults
|
||||
)
|
||||
|
||||
XCTAssertFalse(preferences.shouldPresentAutomaticTip(.activation))
|
||||
XCTAssertTrue(preferences.shouldPresentAutomaticTip(.deactivation))
|
||||
}
|
||||
|
||||
private func makeDefaults() -> UserDefaults {
|
||||
let suite = "VirtualLocationTipPreferencesTests.\(UUID().uuidString)"
|
||||
suites.append(suite)
|
||||
let defaults = UserDefaults(suiteName: suite)!
|
||||
defaults.removePersistentDomain(forName: suite)
|
||||
return defaults
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user