Add language catalog selector
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
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"])
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user