feat(ios/engine): adds unit test for prior commit

This commit is contained in:
jahorton 2020-11-18 10:00:43 +07:00
parent 571494fb07
commit 02f58bc481
2 changed files with 42 additions and 0 deletions

View file

@ -325,4 +325,35 @@ class AssociatingPackageInstallerTests: XCTestCase {
XCTAssertNil(Storage.active.userDefaults.userKeyboards)
XCTAssertNil(Storage.active.userDefaults.userLexicalModels)
}
func testPackageLanguageMismatch() throws {
guard let strPackage = try ResourceFileManager.shared.prepareKMPInstall(from: TestUtils.Keyboards.fvSencotenKMP) as? KeyboardKeymanPackage else {
XCTFail()
return
}
guard let eurolatinPackage = try ResourceFileManager.shared.prepareKMPInstall(from: TestUtils.Keyboards.silEuroLatinKMP) as? KeyboardKeymanPackage else {
XCTFail()
return
}
let strInstaller = AssociatingPackageInstaller(for: strPackage,
defaultLanguageCode: "str", // correct code: str-latn
downloadManager: downloadManager) { _ in
}
// Package does not contain "str", but does contain "str-latn"
XCTAssertEqual(strInstaller.defaultLgCode, "str-latn")
let eurolatinInstaller = AssociatingPackageInstaller(for: eurolatinPackage,
defaultLanguageCode: "en-fake-bcp", // correct code: "en"
downloadManager: downloadManager) { _ in
}
// Package does not contain "en-fake-bcp", but does contain "en".
XCTAssertEqual(eurolatinInstaller.defaultLgCode, "en")
// Note: the current naive approach isn't exactly BCP-47 subtag aware - it relies on one tag
// containing the entire other tag as a substring.
}
}

View file

@ -13,6 +13,7 @@ extension TestUtils {
enum Keyboards {
static let khmerAngkorKMP = TestUtils.keyboardsBundle.url(forResource: "khmer_angkor", withExtension: "kmp")!
static let silEuroLatinKMP = TestUtils.keyboardsBundle.url(forResource: "sil_euro_latin", withExtension: "kmp")!
static let fvSencotenKMP = TestUtils.keyboardsBundle.url(forResource: "fv_sencoten", withExtension: "kmp")!
static let khmer_angkor = InstallableKeyboard(id: "khmer_angkor",
name: "Khmer Angkor",
@ -43,5 +44,15 @@ extension TestUtils {
font: Font(family: "LatinWeb", source: ["DejaVuSans.ttf"], size: nil),
oskFont: nil,
isCustom: false)
static let fv_sencoten = InstallableKeyboard(id: "fv_sencoten",
name: "SENĆOŦEN",
languageID: "str-latn",
languageName: "Salish, Straits (Latin)",
version: "9.1",
isRTL: false,
font: nil,
oskFont: nil,
isCustom: false)
}
}