Skip to content

Commit d2f499b

Browse files
david-allisonlukstbit
authored andcommitted
test(card-browser): handle language changes
Fixed in 3ea835e Issue 17367
1 parent a9b9529 commit d2f499b

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

AnkiDroid/src/test/java/com/ichi2/anki/browser/CardBrowserViewModelTest.kt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -997,6 +997,20 @@ class CardBrowserViewModelTest : JvmTest() {
997997
}
998998
}
999999

1000+
@Suppress("SpellCheckingInspection") // German
1001+
@Test
1002+
fun `columns headings - language change`() =
1003+
runViewModelTest {
1004+
fun firstHeading() = flowOfColumnHeadings.value.first().label
1005+
1006+
assertThat("English", firstHeading(), equalTo("Sort Field"))
1007+
1008+
col.reopenWithLanguage("de")
1009+
onReinit()
1010+
1011+
assertThat("German", firstHeading(), equalTo("Sortierfeld"))
1012+
}
1013+
10001014
private fun assertDate(str: String?) {
10011015
// 2025-01-09 @ 18:06
10021016
assertNotNull(str)

AnkiDroid/src/test/java/com/ichi2/testutils/TestClass.kt

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
package com.ichi2.testutils
1818

19+
import androidx.appcompat.app.AppCompatDelegate
1920
import com.ichi2.anki.CollectionManager
2021
import com.ichi2.anki.ioDispatcher
2122
import com.ichi2.anki.isCollectionEmpty
@@ -32,6 +33,7 @@ import com.ichi2.libanki.QueueType
3233
import com.ichi2.libanki.exception.ConfirmModSchemaException
3334
import com.ichi2.libanki.utils.set
3435
import com.ichi2.testutils.ext.addNote
36+
import com.ichi2.utils.LanguageUtil
3537
import kotlinx.coroutines.Dispatchers
3638
import kotlinx.coroutines.test.StandardTestDispatcher
3739
import kotlinx.coroutines.test.TestScope
@@ -193,6 +195,20 @@ interface TestClass {
193195
addNotes(1)
194196
}
195197

198+
/**
199+
* Closes and reopens the backend using the provided [language], typically for
200+
* [CollectionManager.TR] calls
201+
*
202+
* This does not set the [application locales][AppCompatDelegate.setApplicationLocales]
203+
*
204+
* @param language tag in the form: `de` or `zh-CN`
205+
*/
206+
suspend fun Collection.reopenWithLanguage(language: String) {
207+
LanguageUtil.setDefaultBackendLanguages(language)
208+
CollectionManager.discardBackend()
209+
CollectionManager.getColUnsafe()
210+
}
211+
196212
fun selectDefaultDeck() {
197213
col.decks.select(Consts.DEFAULT_DECK_ID)
198214
}

0 commit comments

Comments
 (0)