Files
location-spoofer/Tests/PaopaoLocationSpooferTests/ThirdPartyCommunityPromptPreferencesTests.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
}
}