35 lines
1.3 KiB
Swift
35 lines
1.3 KiB
Swift
import XCTest
|
|
@testable import PureMac
|
|
|
|
final class AppLanguagePreferencesTests: XCTestCase {
|
|
func testApplyCustomLanguageSetsAppleLanguagesAndPreservesLocale() {
|
|
let context = makeDefaults()
|
|
let defaults = context.defaults
|
|
defaults.set("pt_BR", forKey: "AppleLocale")
|
|
|
|
AppLanguagePreferences.apply(.english, defaults: defaults)
|
|
|
|
XCTAssertEqual(defaults.array(forKey: "AppleLanguages") as? [String], ["en"])
|
|
XCTAssertEqual(defaults.string(forKey: "AppleLocale"), "pt_BR")
|
|
}
|
|
|
|
func testApplySystemLanguageRemovesAppleLanguagesAndPreservesLocale() {
|
|
let context = makeDefaults()
|
|
let defaults = context.defaults
|
|
defaults.set(["en"], forKey: "AppleLanguages")
|
|
defaults.set("pt_BR", forKey: "AppleLocale")
|
|
|
|
AppLanguagePreferences.apply(.system, defaults: defaults)
|
|
|
|
XCTAssertNil(defaults.persistentDomain(forName: context.suiteName)?["AppleLanguages"])
|
|
XCTAssertEqual(defaults.string(forKey: "AppleLocale"), "pt_BR")
|
|
}
|
|
|
|
private func makeDefaults() -> (defaults: UserDefaults, suiteName: String) {
|
|
let suiteName = "PureMacTests.AppLanguagePreferences.\(UUID().uuidString)"
|
|
let defaults = UserDefaults(suiteName: suiteName)!
|
|
defaults.removePersistentDomain(forName: suiteName)
|
|
return (defaults, suiteName)
|
|
}
|
|
}
|