Document language host tests and their runtime boundaries
This commit is contained in:
1 parent
3dfedc8822
commit
7b8e0a95bb
2 files changed
+24
No files matched your search
@@ -0,0 +1,23 @@
|
||||
# Проверка языка приложения
|
||||
|
||||
```sh
|
||||
cd tools/chatgui-android
|
||||
./gradlew :language-tests:test
|
||||
```
|
||||
|
||||
Модуль компилирует настоящий `data/AppLanguage.kt` с отдельными host-моделями
|
||||
Android/AppCompat. JDK-парсер читает настоящий `res/xml/locales_config.xml`;
|
||||
список языков не дублируется в fixtures. Путь XML объявлен входом Gradle test.
|
||||
Запрошенные языки и effective ресурсы меняются в тесте независимо.
|
||||
|
||||
22 теста проверяют каталог/BCP47, закрытие XML parser при отказе, выбор и сброс
|
||||
языка, ошибки чтения/записи AppCompat, включая отказ после публикации запроса,
|
||||
локализованные строки и форматирование. Проверки `applied()` считают все четыре
|
||||
владельца уведомлений, повторяют тот же locale после отказа, изолируют ошибки
|
||||
и проверяют запрет mutators из фонового потока.
|
||||
|
||||
Host-модели не запускают службы, аудио, ядро и Android Looper; они не проверяют
|
||||
ART, реальную Activity recreation или реализацию хранилища AppCompat.
|
||||
APK с настоящими Android/AndroidX API проверяется обычной NDK/Gradle-сборкой.
|
||||
`:app:testDebugUnitTest` зависит от этого набора только как от задачи;
|
||||
host-классы не включаются в classpath приложения или APK.
|
||||
+1
@@ -23,6 +23,7 @@ class AppLanguageRefreshTest {
|
||||
context.resources.configuration.locales = LocaleListCompat.forLanguageTags("en-x-test-${++sequence}")
|
||||
ContextCompat.failContext = false
|
||||
AppCompatDelegate.failRead = false; AppCompatDelegate.failWrite = false
|
||||
AppCompatDelegate.failWriteAfter = false
|
||||
AppCompatDelegate.requested = LocaleListCompat.forLanguageTags("ru")
|
||||
AppCompatDelegate.selections.clear()
|
||||
HostLanguageNotifications.attempts.clear(); HostLanguageNotifications.failures.clear()
|
||||
|
||||
Reference in new issue
Block a user