41 lines
1.6 KiB
Swift
41 lines
1.6 KiB
Swift
// SPDX-FileCopyrightText: 2026 Kaede Akino
|
|
// SPDX-License-Identifier: GPL-3.0-only
|
|
|
|
import Foundation
|
|
import TermindApplication
|
|
import Testing
|
|
|
|
@testable import TermindIOS
|
|
|
|
struct MobileLanguagePreferenceMigrationTests {
|
|
@Test func removesLegacyInAppLanguagePreferences() throws {
|
|
let (defaults, suiteName) = try makeDefaults()
|
|
defer { defaults.removePersistentDomain(forName: suiteName) }
|
|
defaults.set(AppLanguage.simplifiedChinese.rawValue, forKey: SettingsKey.appLanguage)
|
|
defaults.set([AppLanguage.simplifiedChinese.rawValue], forKey: "AppleLanguages")
|
|
|
|
MobileLanguagePreferenceMigration.run(in: defaults)
|
|
|
|
let domain = defaults.persistentDomain(forName: suiteName)
|
|
#expect(domain?[SettingsKey.appLanguage] == nil)
|
|
#expect(domain?["AppleLanguages"] == nil)
|
|
}
|
|
|
|
@Test func preservesSystemManagedPerAppLanguageWithoutLegacyMarker() throws {
|
|
let (defaults, suiteName) = try makeDefaults()
|
|
defer { defaults.removePersistentDomain(forName: suiteName) }
|
|
defaults.set([AppLanguage.traditionalChinese.rawValue], forKey: "AppleLanguages")
|
|
|
|
MobileLanguagePreferenceMigration.run(in: defaults)
|
|
|
|
#expect(defaults.stringArray(forKey: "AppleLanguages") == [AppLanguage.traditionalChinese.rawValue])
|
|
}
|
|
|
|
private func makeDefaults() throws -> (UserDefaults, String) {
|
|
let suiteName = "MobileLanguagePreferenceMigrationTests.\(UUID().uuidString)"
|
|
let defaults = try #require(UserDefaults(suiteName: suiteName))
|
|
defaults.removePersistentDomain(forName: suiteName)
|
|
return (defaults, suiteName)
|
|
}
|
|
}
|