mirror of
https://github.com/xweiba/location-spoofer.git
synced 2026-09-21 22:30:46 +08:00
51 lines
1.7 KiB
Swift
51 lines
1.7 KiB
Swift
import XCTest
|
|
@testable import PaopaoLocationSpoofer
|
|
|
|
final class ThirdPartyCommunityPromptPreferencesTests: XCTestCase {
|
|
private var suites: [String] = []
|
|
|
|
override func tearDown() {
|
|
for suite in suites {
|
|
UserDefaults.standard.removePersistentDomain(forName: suite)
|
|
}
|
|
suites.removeAll()
|
|
super.tearDown()
|
|
}
|
|
|
|
func testSuppressionBecomesAvailableOnThirdPresentation() {
|
|
let preferences = ThirdPartyCommunityPromptPreferences(defaults: makeDefaults())
|
|
|
|
XCTAssertEqual(preferences.recordPresentation(), 1)
|
|
XCTAssertFalse(preferences.canSuppress())
|
|
XCTAssertEqual(preferences.recordPresentation(), 2)
|
|
XCTAssertFalse(preferences.canSuppress())
|
|
XCTAssertEqual(preferences.recordPresentation(), 3)
|
|
XCTAssertTrue(preferences.canSuppress())
|
|
}
|
|
|
|
func testEarlySuppressionIsIgnoredAndThirdPresentationCanPersistIt() {
|
|
let defaults = makeDefaults()
|
|
let preferences = ThirdPartyCommunityPromptPreferences(defaults: defaults)
|
|
|
|
preferences.recordPresentation()
|
|
preferences.suppress()
|
|
XCTAssertTrue(preferences.shouldPresent())
|
|
|
|
preferences.recordPresentation()
|
|
preferences.recordPresentation()
|
|
preferences.suppress()
|
|
XCTAssertFalse(preferences.shouldPresent())
|
|
|
|
let restored = ThirdPartyCommunityPromptPreferences(defaults: defaults)
|
|
XCTAssertFalse(restored.shouldPresent())
|
|
}
|
|
|
|
private func makeDefaults() -> UserDefaults {
|
|
let suite = "ThirdPartyCommunityPromptPreferencesTests.\(UUID().uuidString)"
|
|
suites.append(suite)
|
|
let defaults = UserDefaults(suiteName: suite)!
|
|
defaults.removePersistentDomain(forName: suite)
|
|
return defaults
|
|
}
|
|
}
|