62 lines
2.0 KiB
Swift
62 lines
2.0 KiB
Swift
import MusicAssistantCore
|
|
import XCTest
|
|
|
|
final class LocalLanguageCatalogTests: XCTestCase {
|
|
func testWorldwideCatalogSearchesArabicTermsAndRegionalCategories() {
|
|
let catalog = LocalLanguageCatalog()
|
|
let expectedCategories: Set<String> = [
|
|
"Middle East & North Africa",
|
|
"Europe",
|
|
"South Asia",
|
|
"East Asia",
|
|
"Southeast Asia",
|
|
"Africa",
|
|
"Americas",
|
|
"Oceania & Pacific"
|
|
]
|
|
|
|
XCTAssertGreaterThan(catalog.items.count, 70)
|
|
XCTAssertTrue(expectedCategories.isSubset(of: Set(catalog.familyCategories)))
|
|
XCTAssertEqual(catalog.languages(matching: "عربي").map(\.id), ["arabic"])
|
|
XCTAssertEqual(catalog.languages(matching: "한국어").map(\.id), ["korean"])
|
|
XCTAssertEqual(
|
|
catalog.languages(matching: "", familyCategory: "South Asia").map(\.id),
|
|
[
|
|
"bengali",
|
|
"gujarati",
|
|
"hindi",
|
|
"kannada",
|
|
"malayalam",
|
|
"marathi",
|
|
"nepali",
|
|
"pashto",
|
|
"punjabi",
|
|
"sinhala",
|
|
"tamil",
|
|
"telugu",
|
|
"urdu"
|
|
]
|
|
)
|
|
}
|
|
|
|
func testDeselectingLanguageRemovesItsLinkedDialects() {
|
|
var project = SongProject(
|
|
title: "Language Project",
|
|
idea: "Use Arabic and English",
|
|
languages: [
|
|
LanguageSelection(id: "arabic", name: "Arabic"),
|
|
LanguageSelection(id: "english", name: "English")
|
|
],
|
|
dialects: [
|
|
DialectSelection(id: "levantine", name: "Levantine", languageID: "arabic"),
|
|
DialectSelection(id: "us-english", name: "US English", languageID: "english")
|
|
]
|
|
)
|
|
|
|
project.removeLanguage(id: "arabic")
|
|
|
|
XCTAssertEqual(project.languages.map(\.id), ["english"])
|
|
XCTAssertEqual(project.dialects.map(\.id), ["us-english"])
|
|
}
|
|
}
|