mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-09 15:27:55 -04:00
Merge pull request #3849 from kiwix/Fix#3848
Fixed: Improve article search in our application.
This commit is contained in:
commit
95ef46adf5
@ -43,6 +43,7 @@ import org.kiwix.kiwixmobile.core.dao.entities.BookmarkEntity
|
|||||||
import org.kiwix.kiwixmobile.core.data.remote.ObjectBoxToLibkiwixMigrator
|
import org.kiwix.kiwixmobile.core.data.remote.ObjectBoxToLibkiwixMigrator
|
||||||
import org.kiwix.kiwixmobile.core.di.modules.DatabaseModule
|
import org.kiwix.kiwixmobile.core.di.modules.DatabaseModule
|
||||||
import org.kiwix.kiwixmobile.core.page.bookmark.adapter.LibkiwixBookmarkItem
|
import org.kiwix.kiwixmobile.core.page.bookmark.adapter.LibkiwixBookmarkItem
|
||||||
|
import org.kiwix.kiwixmobile.core.utils.LanguageUtils.Companion.handleLocaleChange
|
||||||
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
|
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
|
||||||
import org.kiwix.kiwixmobile.main.KiwixMainActivity
|
import org.kiwix.kiwixmobile.main.KiwixMainActivity
|
||||||
import org.kiwix.kiwixmobile.testutils.RetryRule
|
import org.kiwix.kiwixmobile.testutils.RetryRule
|
||||||
@ -96,10 +97,16 @@ class ObjectBoxToLibkiwixMigratorTest : BaseActivityTest() {
|
|||||||
putBoolean(SharedPreferenceUtil.PREF_IS_TEST, true)
|
putBoolean(SharedPreferenceUtil.PREF_IS_TEST, true)
|
||||||
putBoolean(SharedPreferenceUtil.IS_PLAY_STORE_BUILD, true)
|
putBoolean(SharedPreferenceUtil.IS_PLAY_STORE_BUILD, true)
|
||||||
putBoolean(SharedPreferenceUtil.PREF_PLAY_STORE_RESTRICTION, false)
|
putBoolean(SharedPreferenceUtil.PREF_PLAY_STORE_RESTRICTION, false)
|
||||||
|
putString(SharedPreferenceUtil.PREF_LANG, "en")
|
||||||
}
|
}
|
||||||
activityScenario = ActivityScenario.launch(KiwixMainActivity::class.java).apply {
|
activityScenario = ActivityScenario.launch(KiwixMainActivity::class.java).apply {
|
||||||
moveToState(Lifecycle.State.RESUMED)
|
moveToState(Lifecycle.State.RESUMED)
|
||||||
onActivity {
|
onActivity {
|
||||||
|
handleLocaleChange(
|
||||||
|
it,
|
||||||
|
"en",
|
||||||
|
SharedPreferenceUtil(context)
|
||||||
|
)
|
||||||
it.navigate(R.id.libraryFragment)
|
it.navigate(R.id.libraryFragment)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -60,6 +60,7 @@ class DeepLinksTest : BaseActivityTest() {
|
|||||||
setIsPlayStoreBuildType(true)
|
setIsPlayStoreBuildType(true)
|
||||||
prefIsTest = true
|
prefIsTest = true
|
||||||
playStoreRestrictionPermissionDialog = false
|
playStoreRestrictionPermissionDialog = false
|
||||||
|
putPrefLanguage("en")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -37,6 +37,8 @@ import org.kiwix.kiwixmobile.R
|
|||||||
import org.kiwix.kiwixmobile.core.utils.files.Log
|
import org.kiwix.kiwixmobile.core.utils.files.Log
|
||||||
import org.kiwix.kiwixmobile.download.DownloadTest.Companion.KIWIX_DOWNLOAD_TEST
|
import org.kiwix.kiwixmobile.download.DownloadTest.Companion.KIWIX_DOWNLOAD_TEST
|
||||||
import org.kiwix.kiwixmobile.testutils.TestUtils
|
import org.kiwix.kiwixmobile.testutils.TestUtils
|
||||||
|
import org.kiwix.kiwixmobile.testutils.TestUtils.testFlakyView
|
||||||
|
import org.kiwix.kiwixmobile.utils.RecyclerViewMatcher
|
||||||
|
|
||||||
fun downloadRobot(func: DownloadRobot.() -> Unit) =
|
fun downloadRobot(func: DownloadRobot.() -> Unit) =
|
||||||
DownloadRobot().applyWithViewHierarchyPrinting(func)
|
DownloadRobot().applyWithViewHierarchyPrinting(func)
|
||||||
@ -57,12 +59,15 @@ class DownloadRobot : BaseRobot() {
|
|||||||
|
|
||||||
fun waitForDataToLoad() {
|
fun waitForDataToLoad() {
|
||||||
try {
|
try {
|
||||||
isVisible(Text(zimFileTitle))
|
isVisible(TextId(R.string.your_languages))
|
||||||
} catch (e: RuntimeException) {
|
} catch (e: RuntimeException) {
|
||||||
if (retryCountForDataToLoad > 0) {
|
if (retryCountForDataToLoad > 0) {
|
||||||
retryCountForDataToLoad--
|
retryCountForDataToLoad--
|
||||||
waitForDataToLoad()
|
waitForDataToLoad()
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
// throw the exception when there is no more retry left.
|
||||||
|
throw RuntimeException("Couldn't load the online library list.\n Original exception = $e")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -75,7 +80,14 @@ class DownloadRobot : BaseRobot() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun downloadZimFile() {
|
fun downloadZimFile() {
|
||||||
clickOn(Text(zimFileTitle))
|
pauseForBetterTestPerformance()
|
||||||
|
testFlakyView({
|
||||||
|
onView(
|
||||||
|
RecyclerViewMatcher(R.id.libraryList).atPosition(
|
||||||
|
1
|
||||||
|
)
|
||||||
|
).perform(click())
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
fun assertDownloadStart() {
|
fun assertDownloadStart() {
|
||||||
|
@ -38,6 +38,7 @@ import org.junit.Test
|
|||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
import org.kiwix.kiwixmobile.BaseActivityTest
|
import org.kiwix.kiwixmobile.BaseActivityTest
|
||||||
import org.kiwix.kiwixmobile.R
|
import org.kiwix.kiwixmobile.R
|
||||||
|
import org.kiwix.kiwixmobile.core.utils.LanguageUtils.Companion.handleLocaleChange
|
||||||
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
|
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
|
||||||
import org.kiwix.kiwixmobile.main.KiwixMainActivity
|
import org.kiwix.kiwixmobile.main.KiwixMainActivity
|
||||||
import org.kiwix.kiwixmobile.main.topLevel
|
import org.kiwix.kiwixmobile.main.topLevel
|
||||||
@ -74,9 +75,17 @@ class DownloadTest : BaseActivityTest() {
|
|||||||
putBoolean(SharedPreferenceUtil.IS_PLAY_STORE_BUILD, true)
|
putBoolean(SharedPreferenceUtil.IS_PLAY_STORE_BUILD, true)
|
||||||
putBoolean(SharedPreferenceUtil.PREF_IS_TEST, true)
|
putBoolean(SharedPreferenceUtil.PREF_IS_TEST, true)
|
||||||
putBoolean(SharedPreferenceUtil.PREF_PLAY_STORE_RESTRICTION, false)
|
putBoolean(SharedPreferenceUtil.PREF_PLAY_STORE_RESTRICTION, false)
|
||||||
|
putString(SharedPreferenceUtil.PREF_LANG, "en")
|
||||||
}
|
}
|
||||||
activityScenario = ActivityScenario.launch(KiwixMainActivity::class.java).apply {
|
activityScenario = ActivityScenario.launch(KiwixMainActivity::class.java).apply {
|
||||||
moveToState(Lifecycle.State.RESUMED)
|
moveToState(Lifecycle.State.RESUMED)
|
||||||
|
onActivity {
|
||||||
|
handleLocaleChange(
|
||||||
|
it,
|
||||||
|
"en",
|
||||||
|
SharedPreferenceUtil(context)
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -137,10 +146,10 @@ class DownloadTest : BaseActivityTest() {
|
|||||||
// change the application language
|
// change the application language
|
||||||
topLevel {
|
topLevel {
|
||||||
clickSettingsOnSideNav {
|
clickSettingsOnSideNav {
|
||||||
clickOnLanguagePreference()
|
clickLanguagePreference()
|
||||||
assertLanguagePrefDialogDisplayed()
|
assertLanguagePrefDialogDisplayed()
|
||||||
selectDeviceDefaultLanguage()
|
selectDeviceDefaultLanguage()
|
||||||
clickOnLanguagePreference()
|
clickLanguagePreference()
|
||||||
assertLanguagePrefDialogDisplayed()
|
assertLanguagePrefDialogDisplayed()
|
||||||
selectAlbanianLanguage()
|
selectAlbanianLanguage()
|
||||||
}
|
}
|
||||||
@ -159,7 +168,7 @@ class DownloadTest : BaseActivityTest() {
|
|||||||
// select the default device language to perform other test cases.
|
// select the default device language to perform other test cases.
|
||||||
topLevel {
|
topLevel {
|
||||||
clickSettingsOnSideNav {
|
clickSettingsOnSideNav {
|
||||||
clickOnLanguagePreference()
|
clickLanguagePreference()
|
||||||
assertLanguagePrefDialogDisplayed()
|
assertLanguagePrefDialogDisplayed()
|
||||||
selectDeviceDefaultLanguage()
|
selectDeviceDefaultLanguage()
|
||||||
// check if the device default language is selected or not.
|
// check if the device default language is selected or not.
|
||||||
|
@ -30,6 +30,7 @@ import org.junit.Rule
|
|||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.kiwix.kiwixmobile.BaseActivityTest
|
import org.kiwix.kiwixmobile.BaseActivityTest
|
||||||
import org.kiwix.kiwixmobile.R
|
import org.kiwix.kiwixmobile.R
|
||||||
|
import org.kiwix.kiwixmobile.core.utils.LanguageUtils.Companion.handleLocaleChange
|
||||||
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
|
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
|
||||||
import org.kiwix.kiwixmobile.main.KiwixMainActivity
|
import org.kiwix.kiwixmobile.main.KiwixMainActivity
|
||||||
import org.kiwix.kiwixmobile.testutils.RetryRule
|
import org.kiwix.kiwixmobile.testutils.RetryRule
|
||||||
@ -51,6 +52,13 @@ class HelpFragmentTest : BaseActivityTest() {
|
|||||||
}
|
}
|
||||||
activityScenario = ActivityScenario.launch(KiwixMainActivity::class.java).apply {
|
activityScenario = ActivityScenario.launch(KiwixMainActivity::class.java).apply {
|
||||||
moveToState(Lifecycle.State.RESUMED)
|
moveToState(Lifecycle.State.RESUMED)
|
||||||
|
onActivity {
|
||||||
|
handleLocaleChange(
|
||||||
|
it,
|
||||||
|
"en",
|
||||||
|
SharedPreferenceUtil(context)
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -113,6 +121,7 @@ class HelpFragmentTest : BaseActivityTest() {
|
|||||||
putPrefWifiOnly(false)
|
putPrefWifiOnly(false)
|
||||||
setIsPlayStoreBuildType(showRestriction)
|
setIsPlayStoreBuildType(showRestriction)
|
||||||
prefIsTest = true
|
prefIsTest = true
|
||||||
|
putPrefLanguage("en")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -34,6 +34,7 @@ import org.junit.Test
|
|||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
import org.kiwix.kiwixmobile.BaseActivityTest
|
import org.kiwix.kiwixmobile.BaseActivityTest
|
||||||
import org.kiwix.kiwixmobile.R
|
import org.kiwix.kiwixmobile.R
|
||||||
|
import org.kiwix.kiwixmobile.core.utils.LanguageUtils.Companion.handleLocaleChange
|
||||||
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
|
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
|
||||||
import org.kiwix.kiwixmobile.main.KiwixMainActivity
|
import org.kiwix.kiwixmobile.main.KiwixMainActivity
|
||||||
import org.kiwix.kiwixmobile.nav.destination.library.library
|
import org.kiwix.kiwixmobile.nav.destination.library.library
|
||||||
@ -65,9 +66,17 @@ class InitialDownloadTest : BaseActivityTest() {
|
|||||||
putBoolean(SharedPreferenceUtil.IS_PLAY_STORE_BUILD, true)
|
putBoolean(SharedPreferenceUtil.IS_PLAY_STORE_BUILD, true)
|
||||||
putBoolean(SharedPreferenceUtil.PREF_IS_TEST, true)
|
putBoolean(SharedPreferenceUtil.PREF_IS_TEST, true)
|
||||||
putBoolean(SharedPreferenceUtil.PREF_PLAY_STORE_RESTRICTION, false)
|
putBoolean(SharedPreferenceUtil.PREF_PLAY_STORE_RESTRICTION, false)
|
||||||
|
putString(SharedPreferenceUtil.PREF_LANG, "en")
|
||||||
}
|
}
|
||||||
activityScenario = ActivityScenario.launch(KiwixMainActivity::class.java).apply {
|
activityScenario = ActivityScenario.launch(KiwixMainActivity::class.java).apply {
|
||||||
moveToState(Lifecycle.State.RESUMED)
|
moveToState(Lifecycle.State.RESUMED)
|
||||||
|
onActivity {
|
||||||
|
handleLocaleChange(
|
||||||
|
it,
|
||||||
|
"en",
|
||||||
|
SharedPreferenceUtil(context)
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,6 +29,7 @@ import org.junit.Rule
|
|||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.kiwix.kiwixmobile.BaseActivityTest
|
import org.kiwix.kiwixmobile.BaseActivityTest
|
||||||
import org.kiwix.kiwixmobile.R
|
import org.kiwix.kiwixmobile.R
|
||||||
|
import org.kiwix.kiwixmobile.core.utils.LanguageUtils.Companion.handleLocaleChange
|
||||||
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
|
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
|
||||||
import org.kiwix.kiwixmobile.main.KiwixMainActivity
|
import org.kiwix.kiwixmobile.main.KiwixMainActivity
|
||||||
import org.kiwix.kiwixmobile.testutils.RetryRule
|
import org.kiwix.kiwixmobile.testutils.RetryRule
|
||||||
@ -60,9 +61,17 @@ class IntroFragmentTest : BaseActivityTest() {
|
|||||||
}
|
}
|
||||||
PreferenceManager.getDefaultSharedPreferences(context).edit {
|
PreferenceManager.getDefaultSharedPreferences(context).edit {
|
||||||
putBoolean(SharedPreferenceUtil.PREF_SHOW_INTRO, true)
|
putBoolean(SharedPreferenceUtil.PREF_SHOW_INTRO, true)
|
||||||
|
putString(SharedPreferenceUtil.PREF_LANG, "en")
|
||||||
}
|
}
|
||||||
activityScenario = ActivityScenario.launch(KiwixMainActivity::class.java).apply {
|
activityScenario = ActivityScenario.launch(KiwixMainActivity::class.java).apply {
|
||||||
moveToState(Lifecycle.State.RESUMED)
|
moveToState(Lifecycle.State.RESUMED)
|
||||||
|
onActivity {
|
||||||
|
handleLocaleChange(
|
||||||
|
it,
|
||||||
|
"en",
|
||||||
|
SharedPreferenceUtil(context)
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -33,6 +33,7 @@ import org.junit.Before
|
|||||||
import org.junit.Rule
|
import org.junit.Rule
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
|
import org.kiwix.kiwixmobile.core.utils.LanguageUtils.Companion.handleLocaleChange
|
||||||
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
|
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
|
||||||
import org.kiwix.kiwixmobile.main.KiwixMainActivity
|
import org.kiwix.kiwixmobile.main.KiwixMainActivity
|
||||||
import org.kiwix.kiwixmobile.testutils.RetryRule
|
import org.kiwix.kiwixmobile.testutils.RetryRule
|
||||||
@ -75,9 +76,17 @@ class LanguageFragmentTest {
|
|||||||
putBoolean(SharedPreferenceUtil.PREF_SHOW_INTRO, false)
|
putBoolean(SharedPreferenceUtil.PREF_SHOW_INTRO, false)
|
||||||
putBoolean(SharedPreferenceUtil.PREF_WIFI_ONLY, false)
|
putBoolean(SharedPreferenceUtil.PREF_WIFI_ONLY, false)
|
||||||
putBoolean(SharedPreferenceUtil.PREF_PLAY_STORE_RESTRICTION, false)
|
putBoolean(SharedPreferenceUtil.PREF_PLAY_STORE_RESTRICTION, false)
|
||||||
|
putString(SharedPreferenceUtil.PREF_LANG, "en")
|
||||||
}
|
}
|
||||||
ActivityScenario.launch(KiwixMainActivity::class.java).apply {
|
ActivityScenario.launch(KiwixMainActivity::class.java).apply {
|
||||||
moveToState(Lifecycle.State.RESUMED)
|
moveToState(Lifecycle.State.RESUMED)
|
||||||
|
onActivity {
|
||||||
|
handleLocaleChange(
|
||||||
|
it,
|
||||||
|
"en",
|
||||||
|
SharedPreferenceUtil(instrumentation.targetContext.applicationContext)
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,6 +34,7 @@ import org.junit.Before
|
|||||||
import org.junit.Rule
|
import org.junit.Rule
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.kiwix.kiwixmobile.R
|
import org.kiwix.kiwixmobile.R
|
||||||
|
import org.kiwix.kiwixmobile.core.utils.LanguageUtils.Companion.handleLocaleChange
|
||||||
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
|
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
|
||||||
import org.kiwix.kiwixmobile.main.KiwixMainActivity
|
import org.kiwix.kiwixmobile.main.KiwixMainActivity
|
||||||
import org.kiwix.kiwixmobile.nav.destination.library.library
|
import org.kiwix.kiwixmobile.nav.destination.library.library
|
||||||
@ -86,6 +87,13 @@ class LocalFileTransferTest {
|
|||||||
shouldShowShowCaseFeatureToUser(false)
|
shouldShowShowCaseFeatureToUser(false)
|
||||||
activityScenario = ActivityScenario.launch(KiwixMainActivity::class.java).apply {
|
activityScenario = ActivityScenario.launch(KiwixMainActivity::class.java).apply {
|
||||||
moveToState(Lifecycle.State.RESUMED)
|
moveToState(Lifecycle.State.RESUMED)
|
||||||
|
onActivity {
|
||||||
|
handleLocaleChange(
|
||||||
|
it,
|
||||||
|
"en",
|
||||||
|
SharedPreferenceUtil(context)
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
StandardActions.closeDrawer()
|
StandardActions.closeDrawer()
|
||||||
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N_MR1) {
|
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N_MR1) {
|
||||||
@ -113,6 +121,11 @@ class LocalFileTransferTest {
|
|||||||
activityScenario = ActivityScenario.launch(KiwixMainActivity::class.java).apply {
|
activityScenario = ActivityScenario.launch(KiwixMainActivity::class.java).apply {
|
||||||
moveToState(Lifecycle.State.RESUMED)
|
moveToState(Lifecycle.State.RESUMED)
|
||||||
onActivity {
|
onActivity {
|
||||||
|
handleLocaleChange(
|
||||||
|
it,
|
||||||
|
"en",
|
||||||
|
SharedPreferenceUtil(context)
|
||||||
|
)
|
||||||
it.navigate(R.id.libraryFragment)
|
it.navigate(R.id.libraryFragment)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -161,6 +174,7 @@ class LocalFileTransferTest {
|
|||||||
putBoolean(SharedPreferenceUtil.PREF_IS_TEST, true)
|
putBoolean(SharedPreferenceUtil.PREF_IS_TEST, true)
|
||||||
putBoolean(SharedPreferenceUtil.PREF_SHOW_SHOWCASE, shouldShowShowCase)
|
putBoolean(SharedPreferenceUtil.PREF_SHOW_SHOWCASE, shouldShowShowCase)
|
||||||
putBoolean(SharedPreferenceUtil.PREF_PLAY_STORE_RESTRICTION, false)
|
putBoolean(SharedPreferenceUtil.PREF_PLAY_STORE_RESTRICTION, false)
|
||||||
|
putString(SharedPreferenceUtil.PREF_LANG, "en")
|
||||||
}
|
}
|
||||||
if (isResetShowCaseId) {
|
if (isResetShowCaseId) {
|
||||||
// To clear showCaseID to ensure the showcase view will show.
|
// To clear showCaseID to ensure the showcase view will show.
|
||||||
|
@ -28,6 +28,7 @@ import org.junit.Before
|
|||||||
import org.junit.Rule
|
import org.junit.Rule
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.kiwix.kiwixmobile.BaseActivityTest
|
import org.kiwix.kiwixmobile.BaseActivityTest
|
||||||
|
import org.kiwix.kiwixmobile.core.utils.LanguageUtils.Companion.handleLocaleChange
|
||||||
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
|
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
|
||||||
import org.kiwix.kiwixmobile.help.HelpRobot
|
import org.kiwix.kiwixmobile.help.HelpRobot
|
||||||
import org.kiwix.kiwixmobile.localFileTransfer.LocalFileTransferRobot
|
import org.kiwix.kiwixmobile.localFileTransfer.LocalFileTransferRobot
|
||||||
@ -61,9 +62,17 @@ class TopLevelDestinationTest : BaseActivityTest() {
|
|||||||
putBoolean(SharedPreferenceUtil.PREF_EXTERNAL_LINK_POPUP, true)
|
putBoolean(SharedPreferenceUtil.PREF_EXTERNAL_LINK_POPUP, true)
|
||||||
putBoolean(SharedPreferenceUtil.PREF_SHOW_SHOWCASE, false)
|
putBoolean(SharedPreferenceUtil.PREF_SHOW_SHOWCASE, false)
|
||||||
putBoolean(SharedPreferenceUtil.PREF_PLAY_STORE_RESTRICTION, false)
|
putBoolean(SharedPreferenceUtil.PREF_PLAY_STORE_RESTRICTION, false)
|
||||||
|
putString(SharedPreferenceUtil.PREF_LANG, "en")
|
||||||
}
|
}
|
||||||
activityScenario = ActivityScenario.launch(KiwixMainActivity::class.java).apply {
|
activityScenario = ActivityScenario.launch(KiwixMainActivity::class.java).apply {
|
||||||
moveToState(Lifecycle.State.RESUMED)
|
moveToState(Lifecycle.State.RESUMED)
|
||||||
|
onActivity {
|
||||||
|
handleLocaleChange(
|
||||||
|
it,
|
||||||
|
"en",
|
||||||
|
SharedPreferenceUtil(context)
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -55,6 +55,7 @@ class MimeTypeTest : BaseActivityTest() {
|
|||||||
putBoolean(SharedPreferenceUtil.PREF_SHOW_INTRO, false)
|
putBoolean(SharedPreferenceUtil.PREF_SHOW_INTRO, false)
|
||||||
putBoolean(SharedPreferenceUtil.PREF_WIFI_ONLY, false)
|
putBoolean(SharedPreferenceUtil.PREF_WIFI_ONLY, false)
|
||||||
putBoolean(SharedPreferenceUtil.PREF_PLAY_STORE_RESTRICTION, false)
|
putBoolean(SharedPreferenceUtil.PREF_PLAY_STORE_RESTRICTION, false)
|
||||||
|
putString(SharedPreferenceUtil.PREF_LANG, "en")
|
||||||
}
|
}
|
||||||
activityScenario = ActivityScenario.launch(KiwixMainActivity::class.java).apply {
|
activityScenario = ActivityScenario.launch(KiwixMainActivity::class.java).apply {
|
||||||
moveToState(Lifecycle.State.RESUMED)
|
moveToState(Lifecycle.State.RESUMED)
|
||||||
|
@ -114,6 +114,7 @@ class PlayStoreRestrictionDialogTest {
|
|||||||
setIsPlayStoreBuildType(true)
|
setIsPlayStoreBuildType(true)
|
||||||
prefIsTest = true
|
prefIsTest = true
|
||||||
playStoreRestrictionPermissionDialog = showDialog
|
playStoreRestrictionPermissionDialog = showDialog
|
||||||
|
putPrefLanguage("en")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,6 +32,7 @@ import org.junit.Rule
|
|||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.kiwix.kiwixmobile.BaseActivityTest
|
import org.kiwix.kiwixmobile.BaseActivityTest
|
||||||
import org.kiwix.kiwixmobile.R
|
import org.kiwix.kiwixmobile.R
|
||||||
|
import org.kiwix.kiwixmobile.core.utils.LanguageUtils.Companion.handleLocaleChange
|
||||||
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
|
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
|
||||||
import org.kiwix.kiwixmobile.main.KiwixMainActivity
|
import org.kiwix.kiwixmobile.main.KiwixMainActivity
|
||||||
import org.kiwix.kiwixmobile.testutils.RetryRule
|
import org.kiwix.kiwixmobile.testutils.RetryRule
|
||||||
@ -70,9 +71,17 @@ class LocalLibraryTest : BaseActivityTest() {
|
|||||||
// while refreshing the content in LocalLibraryFragment.
|
// while refreshing the content in LocalLibraryFragment.
|
||||||
putBoolean(SharedPreferenceUtil.PREF_SHOW_MANAGE_PERMISSION_DIALOG_ON_REFRESH, false)
|
putBoolean(SharedPreferenceUtil.PREF_SHOW_MANAGE_PERMISSION_DIALOG_ON_REFRESH, false)
|
||||||
putBoolean(SharedPreferenceUtil.PREF_PLAY_STORE_RESTRICTION, false)
|
putBoolean(SharedPreferenceUtil.PREF_PLAY_STORE_RESTRICTION, false)
|
||||||
|
putString(SharedPreferenceUtil.PREF_LANG, "en")
|
||||||
}
|
}
|
||||||
activityScenario = ActivityScenario.launch(KiwixMainActivity::class.java).apply {
|
activityScenario = ActivityScenario.launch(KiwixMainActivity::class.java).apply {
|
||||||
moveToState(Lifecycle.State.RESUMED)
|
moveToState(Lifecycle.State.RESUMED)
|
||||||
|
onActivity {
|
||||||
|
handleLocaleChange(
|
||||||
|
it,
|
||||||
|
"en",
|
||||||
|
SharedPreferenceUtil(context)
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,6 +33,7 @@ import org.junit.Rule
|
|||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.kiwix.kiwixmobile.BaseActivityTest
|
import org.kiwix.kiwixmobile.BaseActivityTest
|
||||||
import org.kiwix.kiwixmobile.R
|
import org.kiwix.kiwixmobile.R
|
||||||
|
import org.kiwix.kiwixmobile.core.utils.LanguageUtils.Companion.handleLocaleChange
|
||||||
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
|
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
|
||||||
import org.kiwix.kiwixmobile.main.KiwixMainActivity
|
import org.kiwix.kiwixmobile.main.KiwixMainActivity
|
||||||
import org.kiwix.kiwixmobile.nav.destination.library.LocalLibraryFragmentDirections
|
import org.kiwix.kiwixmobile.nav.destination.library.LocalLibraryFragmentDirections
|
||||||
@ -66,9 +67,17 @@ class NoteFragmentTest : BaseActivityTest() {
|
|||||||
putBoolean(SharedPreferenceUtil.PREF_WIFI_ONLY, false)
|
putBoolean(SharedPreferenceUtil.PREF_WIFI_ONLY, false)
|
||||||
putBoolean(SharedPreferenceUtil.PREF_IS_TEST, true)
|
putBoolean(SharedPreferenceUtil.PREF_IS_TEST, true)
|
||||||
putBoolean(SharedPreferenceUtil.PREF_PLAY_STORE_RESTRICTION, false)
|
putBoolean(SharedPreferenceUtil.PREF_PLAY_STORE_RESTRICTION, false)
|
||||||
|
putString(SharedPreferenceUtil.PREF_LANG, "en")
|
||||||
}
|
}
|
||||||
activityScenario = ActivityScenario.launch(KiwixMainActivity::class.java).apply {
|
activityScenario = ActivityScenario.launch(KiwixMainActivity::class.java).apply {
|
||||||
moveToState(Lifecycle.State.RESUMED)
|
moveToState(Lifecycle.State.RESUMED)
|
||||||
|
onActivity {
|
||||||
|
handleLocaleChange(
|
||||||
|
it,
|
||||||
|
"en",
|
||||||
|
SharedPreferenceUtil(context)
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,6 +32,7 @@ import org.junit.Rule
|
|||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.kiwix.kiwixmobile.BaseActivityTest
|
import org.kiwix.kiwixmobile.BaseActivityTest
|
||||||
import org.kiwix.kiwixmobile.R
|
import org.kiwix.kiwixmobile.R
|
||||||
|
import org.kiwix.kiwixmobile.core.utils.LanguageUtils.Companion.handleLocaleChange
|
||||||
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
|
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
|
||||||
import org.kiwix.kiwixmobile.main.KiwixMainActivity
|
import org.kiwix.kiwixmobile.main.KiwixMainActivity
|
||||||
import org.kiwix.kiwixmobile.main.topLevel
|
import org.kiwix.kiwixmobile.main.topLevel
|
||||||
@ -63,9 +64,17 @@ class LibkiwixBookmarkTest : BaseActivityTest() {
|
|||||||
putBoolean(SharedPreferenceUtil.PREF_WIFI_ONLY, false)
|
putBoolean(SharedPreferenceUtil.PREF_WIFI_ONLY, false)
|
||||||
putBoolean(SharedPreferenceUtil.PREF_IS_TEST, true)
|
putBoolean(SharedPreferenceUtil.PREF_IS_TEST, true)
|
||||||
putBoolean(SharedPreferenceUtil.PREF_PLAY_STORE_RESTRICTION, false)
|
putBoolean(SharedPreferenceUtil.PREF_PLAY_STORE_RESTRICTION, false)
|
||||||
|
putString(SharedPreferenceUtil.PREF_LANG, "en")
|
||||||
}
|
}
|
||||||
activityScenario = ActivityScenario.launch(KiwixMainActivity::class.java).apply {
|
activityScenario = ActivityScenario.launch(KiwixMainActivity::class.java).apply {
|
||||||
moveToState(Lifecycle.State.RESUMED)
|
moveToState(Lifecycle.State.RESUMED)
|
||||||
|
onActivity {
|
||||||
|
handleLocaleChange(
|
||||||
|
it,
|
||||||
|
"en",
|
||||||
|
SharedPreferenceUtil(context)
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,6 +33,7 @@ import org.junit.Rule
|
|||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.kiwix.kiwixmobile.BaseActivityTest
|
import org.kiwix.kiwixmobile.BaseActivityTest
|
||||||
import org.kiwix.kiwixmobile.R
|
import org.kiwix.kiwixmobile.R
|
||||||
|
import org.kiwix.kiwixmobile.core.utils.LanguageUtils.Companion.handleLocaleChange
|
||||||
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
|
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
|
||||||
import org.kiwix.kiwixmobile.main.KiwixMainActivity
|
import org.kiwix.kiwixmobile.main.KiwixMainActivity
|
||||||
import org.kiwix.kiwixmobile.nav.destination.library.LocalLibraryFragmentDirections
|
import org.kiwix.kiwixmobile.nav.destination.library.LocalLibraryFragmentDirections
|
||||||
@ -65,9 +66,17 @@ class NavigationHistoryTest : BaseActivityTest() {
|
|||||||
putBoolean(SharedPreferenceUtil.PREF_WIFI_ONLY, false)
|
putBoolean(SharedPreferenceUtil.PREF_WIFI_ONLY, false)
|
||||||
putBoolean(SharedPreferenceUtil.PREF_IS_TEST, true)
|
putBoolean(SharedPreferenceUtil.PREF_IS_TEST, true)
|
||||||
putBoolean(SharedPreferenceUtil.PREF_PLAY_STORE_RESTRICTION, false)
|
putBoolean(SharedPreferenceUtil.PREF_PLAY_STORE_RESTRICTION, false)
|
||||||
|
putString(SharedPreferenceUtil.PREF_LANG, "en")
|
||||||
}
|
}
|
||||||
activityScenario = ActivityScenario.launch(KiwixMainActivity::class.java).apply {
|
activityScenario = ActivityScenario.launch(KiwixMainActivity::class.java).apply {
|
||||||
moveToState(Lifecycle.State.RESUMED)
|
moveToState(Lifecycle.State.RESUMED)
|
||||||
|
onActivity {
|
||||||
|
handleLocaleChange(
|
||||||
|
it,
|
||||||
|
"en",
|
||||||
|
SharedPreferenceUtil(context)
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,6 +31,7 @@ import org.junit.Test
|
|||||||
import org.kiwix.kiwixmobile.BaseActivityTest
|
import org.kiwix.kiwixmobile.BaseActivityTest
|
||||||
import org.kiwix.kiwixmobile.core.NightModeConfig
|
import org.kiwix.kiwixmobile.core.NightModeConfig
|
||||||
import org.kiwix.kiwixmobile.core.reader.ZimFileReader
|
import org.kiwix.kiwixmobile.core.reader.ZimFileReader
|
||||||
|
import org.kiwix.kiwixmobile.core.utils.LanguageUtils.Companion.handleLocaleChange
|
||||||
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
|
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
|
||||||
import org.kiwix.kiwixmobile.main.KiwixMainActivity
|
import org.kiwix.kiwixmobile.main.KiwixMainActivity
|
||||||
import org.kiwix.kiwixmobile.testutils.TestUtils
|
import org.kiwix.kiwixmobile.testutils.TestUtils
|
||||||
@ -54,9 +55,17 @@ class EncodedUrlTest : BaseActivityTest() {
|
|||||||
putBoolean(SharedPreferenceUtil.PREF_SHOW_INTRO, false)
|
putBoolean(SharedPreferenceUtil.PREF_SHOW_INTRO, false)
|
||||||
putBoolean(SharedPreferenceUtil.PREF_WIFI_ONLY, false)
|
putBoolean(SharedPreferenceUtil.PREF_WIFI_ONLY, false)
|
||||||
putBoolean(SharedPreferenceUtil.PREF_PLAY_STORE_RESTRICTION, false)
|
putBoolean(SharedPreferenceUtil.PREF_PLAY_STORE_RESTRICTION, false)
|
||||||
|
putString(SharedPreferenceUtil.PREF_LANG, "en")
|
||||||
}
|
}
|
||||||
activityScenario = ActivityScenario.launch(KiwixMainActivity::class.java).apply {
|
activityScenario = ActivityScenario.launch(KiwixMainActivity::class.java).apply {
|
||||||
moveToState(Lifecycle.State.RESUMED)
|
moveToState(Lifecycle.State.RESUMED)
|
||||||
|
onActivity {
|
||||||
|
handleLocaleChange(
|
||||||
|
it,
|
||||||
|
"en",
|
||||||
|
SharedPreferenceUtil(context)
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,6 +33,7 @@ import org.junit.Rule
|
|||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.kiwix.kiwixmobile.BaseActivityTest
|
import org.kiwix.kiwixmobile.BaseActivityTest
|
||||||
import org.kiwix.kiwixmobile.R
|
import org.kiwix.kiwixmobile.R
|
||||||
|
import org.kiwix.kiwixmobile.core.utils.LanguageUtils.Companion.handleLocaleChange
|
||||||
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
|
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
|
||||||
import org.kiwix.kiwixmobile.main.KiwixMainActivity
|
import org.kiwix.kiwixmobile.main.KiwixMainActivity
|
||||||
import org.kiwix.kiwixmobile.nav.destination.library.LocalLibraryFragmentDirections
|
import org.kiwix.kiwixmobile.nav.destination.library.LocalLibraryFragmentDirections
|
||||||
@ -63,9 +64,17 @@ class KiwixReaderFragmentTest : BaseActivityTest() {
|
|||||||
putBoolean(SharedPreferenceUtil.PREF_WIFI_ONLY, false)
|
putBoolean(SharedPreferenceUtil.PREF_WIFI_ONLY, false)
|
||||||
putBoolean(SharedPreferenceUtil.PREF_IS_TEST, true)
|
putBoolean(SharedPreferenceUtil.PREF_IS_TEST, true)
|
||||||
putBoolean(SharedPreferenceUtil.PREF_PLAY_STORE_RESTRICTION, false)
|
putBoolean(SharedPreferenceUtil.PREF_PLAY_STORE_RESTRICTION, false)
|
||||||
|
putString(SharedPreferenceUtil.PREF_LANG, "en")
|
||||||
}
|
}
|
||||||
activityScenario = ActivityScenario.launch(KiwixMainActivity::class.java).apply {
|
activityScenario = ActivityScenario.launch(KiwixMainActivity::class.java).apply {
|
||||||
moveToState(Lifecycle.State.RESUMED)
|
moveToState(Lifecycle.State.RESUMED)
|
||||||
|
onActivity {
|
||||||
|
handleLocaleChange(
|
||||||
|
it,
|
||||||
|
"en",
|
||||||
|
SharedPreferenceUtil(context)
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,6 +36,7 @@ import org.kiwix.kiwixmobile.BaseActivityTest
|
|||||||
import org.kiwix.kiwixmobile.R
|
import org.kiwix.kiwixmobile.R
|
||||||
import org.kiwix.kiwixmobile.core.NightModeConfig
|
import org.kiwix.kiwixmobile.core.NightModeConfig
|
||||||
import org.kiwix.kiwixmobile.core.reader.ZimFileReader
|
import org.kiwix.kiwixmobile.core.reader.ZimFileReader
|
||||||
|
import org.kiwix.kiwixmobile.core.utils.LanguageUtils.Companion.handleLocaleChange
|
||||||
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
|
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
|
||||||
import org.kiwix.kiwixmobile.main.KiwixMainActivity
|
import org.kiwix.kiwixmobile.main.KiwixMainActivity
|
||||||
import org.kiwix.kiwixmobile.nav.destination.library.LocalLibraryFragmentDirections
|
import org.kiwix.kiwixmobile.nav.destination.library.LocalLibraryFragmentDirections
|
||||||
@ -68,9 +69,17 @@ class ZimFileReaderWithSplittedZimFileTest : BaseActivityTest() {
|
|||||||
putBoolean(SharedPreferenceUtil.PREF_SHOW_INTRO, false)
|
putBoolean(SharedPreferenceUtil.PREF_SHOW_INTRO, false)
|
||||||
putBoolean(SharedPreferenceUtil.PREF_WIFI_ONLY, false)
|
putBoolean(SharedPreferenceUtil.PREF_WIFI_ONLY, false)
|
||||||
putBoolean(SharedPreferenceUtil.PREF_PLAY_STORE_RESTRICTION, false)
|
putBoolean(SharedPreferenceUtil.PREF_PLAY_STORE_RESTRICTION, false)
|
||||||
|
putString(SharedPreferenceUtil.PREF_LANG, "en")
|
||||||
}
|
}
|
||||||
activityScenario = ActivityScenario.launch(KiwixMainActivity::class.java).apply {
|
activityScenario = ActivityScenario.launch(KiwixMainActivity::class.java).apply {
|
||||||
moveToState(Lifecycle.State.RESUMED)
|
moveToState(Lifecycle.State.RESUMED)
|
||||||
|
onActivity {
|
||||||
|
handleLocaleChange(
|
||||||
|
it,
|
||||||
|
"en",
|
||||||
|
SharedPreferenceUtil(context)
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -35,6 +35,7 @@ import org.junit.Rule
|
|||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.kiwix.kiwixmobile.BaseActivityTest
|
import org.kiwix.kiwixmobile.BaseActivityTest
|
||||||
import org.kiwix.kiwixmobile.R
|
import org.kiwix.kiwixmobile.R
|
||||||
|
import org.kiwix.kiwixmobile.core.utils.LanguageUtils.Companion.handleLocaleChange
|
||||||
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
|
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
|
||||||
import org.kiwix.kiwixmobile.main.KiwixMainActivity
|
import org.kiwix.kiwixmobile.main.KiwixMainActivity
|
||||||
import org.kiwix.kiwixmobile.nav.destination.library.LocalLibraryFragmentDirections.actionNavigationLibraryToNavigationReader
|
import org.kiwix.kiwixmobile.nav.destination.library.LocalLibraryFragmentDirections.actionNavigationLibraryToNavigationReader
|
||||||
@ -73,9 +74,17 @@ class SearchFragmentTest : BaseActivityTest() {
|
|||||||
putBoolean(SharedPreferenceUtil.PREF_WIFI_ONLY, false)
|
putBoolean(SharedPreferenceUtil.PREF_WIFI_ONLY, false)
|
||||||
putBoolean(SharedPreferenceUtil.PREF_IS_TEST, true)
|
putBoolean(SharedPreferenceUtil.PREF_IS_TEST, true)
|
||||||
putBoolean(SharedPreferenceUtil.PREF_PLAY_STORE_RESTRICTION, false)
|
putBoolean(SharedPreferenceUtil.PREF_PLAY_STORE_RESTRICTION, false)
|
||||||
|
putString(SharedPreferenceUtil.PREF_LANG, "en")
|
||||||
}
|
}
|
||||||
activityScenario = ActivityScenario.launch(KiwixMainActivity::class.java).apply {
|
activityScenario = ActivityScenario.launch(KiwixMainActivity::class.java).apply {
|
||||||
moveToState(Lifecycle.State.RESUMED)
|
moveToState(Lifecycle.State.RESUMED)
|
||||||
|
onActivity {
|
||||||
|
handleLocaleChange(
|
||||||
|
it,
|
||||||
|
"en",
|
||||||
|
SharedPreferenceUtil(context)
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -157,6 +166,23 @@ class SearchFragmentTest : BaseActivityTest() {
|
|||||||
// go to reader screen
|
// go to reader screen
|
||||||
pressBack()
|
pressBack()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Added test for checking the crash scenario where the application was crashing when we
|
||||||
|
// frequently searched for article, and clicked on the searched item.
|
||||||
|
search {
|
||||||
|
// test by searching 10 article and clicking on them
|
||||||
|
searchAndClickOnArticle(searchQueryForDownloadedZimFile)
|
||||||
|
searchAndClickOnArticle("A Song")
|
||||||
|
searchAndClickOnArticle("The Ra")
|
||||||
|
searchAndClickOnArticle("The Ge")
|
||||||
|
searchAndClickOnArticle("Wish")
|
||||||
|
searchAndClickOnArticle("WIFI")
|
||||||
|
searchAndClickOnArticle("Woman")
|
||||||
|
searchAndClickOnArticle("Big Ba")
|
||||||
|
searchAndClickOnArticle("My Wor")
|
||||||
|
searchAndClickOnArticle("100")
|
||||||
|
assertArticleLoaded()
|
||||||
|
}
|
||||||
removeTemporaryZimFilesToFreeUpDeviceStorage()
|
removeTemporaryZimFilesToFreeUpDeviceStorage()
|
||||||
LeakAssertions.assertNoLeaks()
|
LeakAssertions.assertNoLeaks()
|
||||||
}
|
}
|
||||||
|
@ -20,26 +20,27 @@ package org.kiwix.kiwixmobile.search
|
|||||||
|
|
||||||
import android.view.KeyEvent
|
import android.view.KeyEvent
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import androidx.recyclerview.widget.RecyclerView.ViewHolder
|
|
||||||
import androidx.test.espresso.Espresso.onView
|
import androidx.test.espresso.Espresso.onView
|
||||||
import androidx.test.espresso.action.ViewActions.clearText
|
import androidx.test.espresso.action.ViewActions.clearText
|
||||||
import androidx.test.espresso.action.ViewActions.click
|
import androidx.test.espresso.action.ViewActions.click
|
||||||
import androidx.test.espresso.action.ViewActions.typeText
|
import androidx.test.espresso.action.ViewActions.typeText
|
||||||
import androidx.test.espresso.assertion.ViewAssertions.matches
|
import androidx.test.espresso.assertion.ViewAssertions.matches
|
||||||
import androidx.test.espresso.contrib.RecyclerViewActions.actionOnItemAtPosition
|
import androidx.test.espresso.contrib.RecyclerViewActions.actionOnItemAtPosition
|
||||||
import androidx.test.espresso.contrib.RecyclerViewActions.scrollToPosition
|
import androidx.test.espresso.matcher.ViewMatchers.hasDescendant
|
||||||
import androidx.test.espresso.matcher.ViewMatchers.isDescendantOfA
|
|
||||||
import androidx.test.espresso.matcher.ViewMatchers.isDisplayed
|
|
||||||
import androidx.test.espresso.matcher.ViewMatchers.withId
|
import androidx.test.espresso.matcher.ViewMatchers.withId
|
||||||
import androidx.test.espresso.matcher.ViewMatchers.withText
|
import androidx.test.espresso.matcher.ViewMatchers.withText
|
||||||
|
import androidx.test.espresso.web.sugar.Web.onWebView
|
||||||
|
import androidx.test.espresso.web.webdriver.DriverAtoms.findElement
|
||||||
|
import androidx.test.espresso.web.webdriver.Locator
|
||||||
import androidx.test.uiautomator.UiDevice
|
import androidx.test.uiautomator.UiDevice
|
||||||
import applyWithViewHierarchyPrinting
|
import applyWithViewHierarchyPrinting
|
||||||
import com.adevinta.android.barista.interaction.BaristaSleepInteractions
|
import com.adevinta.android.barista.interaction.BaristaSleepInteractions
|
||||||
import org.hamcrest.Matchers.allOf
|
import com.adevinta.android.barista.internal.matcher.HelperMatchers.atPosition
|
||||||
import org.kiwix.kiwixmobile.BaseRobot
|
import org.kiwix.kiwixmobile.BaseRobot
|
||||||
import org.kiwix.kiwixmobile.Findable.ViewId
|
import org.kiwix.kiwixmobile.Findable.ViewId
|
||||||
import org.kiwix.kiwixmobile.core.R
|
import org.kiwix.kiwixmobile.core.R
|
||||||
import org.kiwix.kiwixmobile.testutils.TestUtils
|
import org.kiwix.kiwixmobile.testutils.TestUtils
|
||||||
|
import org.kiwix.kiwixmobile.testutils.TestUtils.testFlakyView
|
||||||
|
|
||||||
fun search(func: SearchRobot.() -> Unit) = SearchRobot().applyWithViewHierarchyPrinting(func)
|
fun search(func: SearchRobot.() -> Unit) = SearchRobot().applyWithViewHierarchyPrinting(func)
|
||||||
|
|
||||||
@ -67,29 +68,24 @@ class SearchRobot : BaseRobot() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun searchWithFrequentlyTypedWords(query: String, wait: Long = 0L) {
|
fun searchWithFrequentlyTypedWords(query: String, wait: Long = 0L) {
|
||||||
val searchView = onView(withId(R.id.search_src_text))
|
testFlakyView({
|
||||||
for (char in query) {
|
val searchView = onView(withId(R.id.search_src_text))
|
||||||
searchView.perform(typeText(char.toString()))
|
for (char in query) {
|
||||||
if (wait != 0L) {
|
searchView.perform(typeText(char.toString()))
|
||||||
BaristaSleepInteractions.sleep(wait)
|
if (wait != 0L) {
|
||||||
|
BaristaSleepInteractions.sleep(wait)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
fun assertSearchSuccessful(searchResult: String) {
|
fun assertSearchSuccessful(searchResult: String) {
|
||||||
BaristaSleepInteractions.sleep(TestUtils.TEST_PAUSE_MS_FOR_SEARCH_TEST.toLong())
|
BaristaSleepInteractions.sleep(TestUtils.TEST_PAUSE_MS_FOR_SEARCH_TEST.toLong())
|
||||||
val recyclerViewId = R.id.search_list
|
val recyclerViewId = R.id.search_list
|
||||||
|
|
||||||
// Scroll to the first position in the RecyclerView
|
onView(withId(recyclerViewId)).check(
|
||||||
onView(withId(recyclerViewId)).perform(scrollToPosition<ViewHolder>(0))
|
|
||||||
|
|
||||||
// Match the view at the first position in the RecyclerView
|
|
||||||
onView(withText(searchResult)).check(
|
|
||||||
matches(
|
matches(
|
||||||
allOf(
|
atPosition(0, hasDescendant(withText(searchResult)))
|
||||||
isDisplayed(),
|
|
||||||
isDescendantOfA(withId(recyclerViewId))
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@ -106,4 +102,26 @@ class SearchRobot : BaseRobot() {
|
|||||||
val searchView = onView(withId(R.id.search_src_text))
|
val searchView = onView(withId(R.id.search_src_text))
|
||||||
searchView.perform(clearText())
|
searchView.perform(clearText())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun openSearchScreen() {
|
||||||
|
testFlakyView({ onView(withId(R.id.menu_search)).perform(click()) })
|
||||||
|
}
|
||||||
|
|
||||||
|
fun searchAndClickOnArticle(searchString: String) {
|
||||||
|
openSearchScreen()
|
||||||
|
searchWithFrequentlyTypedWords(searchString)
|
||||||
|
clickOnSearchItemInSearchList()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun assertArticleLoaded() {
|
||||||
|
testFlakyView({
|
||||||
|
onWebView()
|
||||||
|
.withElement(
|
||||||
|
findElement(
|
||||||
|
Locator.XPATH,
|
||||||
|
"//*[contains(text(), 'Big Baby DRAM')]"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -28,6 +28,8 @@ import org.junit.Before
|
|||||||
import org.junit.Rule
|
import org.junit.Rule
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.kiwix.kiwixmobile.R
|
import org.kiwix.kiwixmobile.R
|
||||||
|
import org.kiwix.kiwixmobile.core.utils.LanguageUtils.Companion.handleLocaleChange
|
||||||
|
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
|
||||||
import org.kiwix.kiwixmobile.intro.IntroRobot
|
import org.kiwix.kiwixmobile.intro.IntroRobot
|
||||||
import org.kiwix.kiwixmobile.intro.intro
|
import org.kiwix.kiwixmobile.intro.intro
|
||||||
import org.kiwix.kiwixmobile.main.KiwixMainActivity
|
import org.kiwix.kiwixmobile.main.KiwixMainActivity
|
||||||
@ -69,6 +71,11 @@ class KiwixSettingsFragmentTest {
|
|||||||
}
|
}
|
||||||
UiThreadStatement.runOnUiThread {
|
UiThreadStatement.runOnUiThread {
|
||||||
activityScenarioRule.scenario.onActivity {
|
activityScenarioRule.scenario.onActivity {
|
||||||
|
handleLocaleChange(
|
||||||
|
it,
|
||||||
|
"en",
|
||||||
|
SharedPreferenceUtil(it)
|
||||||
|
)
|
||||||
it.navigate(R.id.introFragment)
|
it.navigate(R.id.introFragment)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -78,7 +78,22 @@ class SettingsRobot : BaseRobot() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun clickLanguagePreference() {
|
fun clickLanguagePreference() {
|
||||||
clickRecyclerViewItems(R.string.device_default)
|
testFlakyView({
|
||||||
|
onView(
|
||||||
|
withResourceName("recycler_view")
|
||||||
|
).perform(
|
||||||
|
actionOnItem<RecyclerView.ViewHolder>(
|
||||||
|
hasDescendant(
|
||||||
|
Matchers.anyOf(
|
||||||
|
withText("shqip"),
|
||||||
|
withText("English"),
|
||||||
|
withText(R.string.device_default)
|
||||||
|
)
|
||||||
|
),
|
||||||
|
ViewActions.click()
|
||||||
|
)
|
||||||
|
)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
fun assertLanguagePrefDialogDisplayed() {
|
fun assertLanguagePrefDialogDisplayed() {
|
||||||
@ -128,21 +143,6 @@ class SettingsRobot : BaseRobot() {
|
|||||||
clickRecyclerViewItems(R.string.pref_info_version)
|
clickRecyclerViewItems(R.string.pref_info_version)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun clickOnLanguagePreference() {
|
|
||||||
try {
|
|
||||||
clickRecyclerViewItems(R.string.device_default)
|
|
||||||
} catch (ignore: Exception) {
|
|
||||||
// if the device language Albanian
|
|
||||||
onView(
|
|
||||||
withResourceName("recycler_view")
|
|
||||||
).perform(
|
|
||||||
actionOnItem<RecyclerView.ViewHolder>(
|
|
||||||
hasDescendant(Matchers.anyOf(withText("shqip"))), ViewActions.click()
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fun selectAlbanianLanguage() {
|
fun selectAlbanianLanguage() {
|
||||||
testFlakyView({
|
testFlakyView({
|
||||||
onData(anything()).inAdapterView(withId(R.id.select_dialog_listview)).atPosition(2)
|
onData(anything()).inAdapterView(withId(R.id.select_dialog_listview)).atPosition(2)
|
||||||
|
@ -31,6 +31,7 @@ import org.junit.Before
|
|||||||
import org.junit.Rule
|
import org.junit.Rule
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.kiwix.kiwixmobile.R
|
import org.kiwix.kiwixmobile.R
|
||||||
|
import org.kiwix.kiwixmobile.core.utils.LanguageUtils.Companion.handleLocaleChange
|
||||||
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
|
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
|
||||||
import org.kiwix.kiwixmobile.main.KiwixMainActivity
|
import org.kiwix.kiwixmobile.main.KiwixMainActivity
|
||||||
import org.kiwix.kiwixmobile.nav.destination.library.library
|
import org.kiwix.kiwixmobile.nav.destination.library.library
|
||||||
@ -88,10 +89,18 @@ class ZimHostFragmentTest {
|
|||||||
setIsPlayStoreBuildType(true)
|
setIsPlayStoreBuildType(true)
|
||||||
prefIsTest = true
|
prefIsTest = true
|
||||||
playStoreRestrictionPermissionDialog = false
|
playStoreRestrictionPermissionDialog = false
|
||||||
|
putPrefLanguage("en")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
activityScenario = ActivityScenario.launch(KiwixMainActivity::class.java).apply {
|
activityScenario = ActivityScenario.launch(KiwixMainActivity::class.java).apply {
|
||||||
moveToState(Lifecycle.State.RESUMED)
|
moveToState(Lifecycle.State.RESUMED)
|
||||||
|
onActivity {
|
||||||
|
handleLocaleChange(
|
||||||
|
it,
|
||||||
|
"en",
|
||||||
|
SharedPreferenceUtil(it)
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -86,15 +86,8 @@ class ZimReaderContainer @Inject constructor(private val zimFileReaderFactory: F
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun copyReader(): ZimFileReader? = runBlocking {
|
|
||||||
zimFile?.let { zimFileReaderFactory.create(it) }
|
|
||||||
?: assetFileDescriptor?.let { zimFileReaderFactory.create(it) }
|
|
||||||
}
|
|
||||||
|
|
||||||
val zimFile get() = zimFileReader?.zimFile
|
val zimFile get() = zimFileReader?.zimFile
|
||||||
|
|
||||||
val assetFileDescriptor get() = zimFileReader?.assetFileDescriptor
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the zimFile path if opened from file else return the filePath of assetFileDescriptor
|
* Return the zimFile path if opened from file else return the filePath of assetFileDescriptor
|
||||||
*/
|
*/
|
||||||
@ -112,5 +105,3 @@ class ZimReaderContainer @Inject constructor(private val zimFileReaderFactory: F
|
|||||||
val favicon get() = zimFileReader?.favicon
|
val favicon get() = zimFileReader?.favicon
|
||||||
val language get() = zimFileReader?.language
|
val language get() = zimFileReader?.language
|
||||||
}
|
}
|
||||||
|
|
||||||
data class SearchResult(val title: String?)
|
|
||||||
|
@ -285,6 +285,15 @@ class SearchFragment : BaseFragment() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private suspend fun render(state: SearchState) {
|
private suspend fun render(state: SearchState) {
|
||||||
|
// Check if the fragment is visible on the screen. This method called multiple times
|
||||||
|
// (7-14 times) when an item in the search list is clicked, which leads to unnecessary
|
||||||
|
// data loading and also causes a crash.
|
||||||
|
// The issue arises because the searchViewModel takes a moment to detach from the window,
|
||||||
|
// and during this time, this method is called multiple times due to the rendering process.
|
||||||
|
// To avoid unnecessary data loading and prevent crashes, we check if the search screen is
|
||||||
|
// visible to the user before proceeding. If the screen is not visible,
|
||||||
|
// we skip the data loading process.
|
||||||
|
if (!isVisible) return
|
||||||
searchMutex.withLock {
|
searchMutex.withLock {
|
||||||
// `cancelAndJoin` cancels the previous running job and waits for it to completely cancel.
|
// `cancelAndJoin` cancels the previous running job and waits for it to completely cancel.
|
||||||
renderingJob?.cancelAndJoin()
|
renderingJob?.cancelAndJoin()
|
||||||
|
@ -113,12 +113,10 @@ class SearchViewModel @Inject constructor(
|
|||||||
@Suppress("DEPRECATION")
|
@Suppress("DEPRECATION")
|
||||||
private fun searchResults() = filter.asFlow()
|
private fun searchResults() = filter.asFlow()
|
||||||
.mapLatest {
|
.mapLatest {
|
||||||
val zimFileReader = zimReaderContainer.copyReader()
|
SearchResultsWithTerm(
|
||||||
try {
|
it,
|
||||||
SearchResultsWithTerm(it, searchResultGenerator.generateSearchResults(it, zimFileReader))
|
searchResultGenerator.generateSearchResults(it, zimReaderContainer.zimFileReader)
|
||||||
} finally {
|
)
|
||||||
zimFileReader?.dispose()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private suspend fun actionMapper() = actions.consumeEach {
|
private suspend fun actionMapper() = actions.consumeEach {
|
||||||
|
@ -100,7 +100,7 @@ internal class SearchViewModelTest {
|
|||||||
Dispatchers.setMain(testDispatcher)
|
Dispatchers.setMain(testDispatcher)
|
||||||
clearAllMocks()
|
clearAllMocks()
|
||||||
recentsFromDb = Channel(kotlinx.coroutines.channels.Channel.UNLIMITED)
|
recentsFromDb = Channel(kotlinx.coroutines.channels.Channel.UNLIMITED)
|
||||||
every { zimReaderContainer.copyReader() } returns zimFileReader
|
every { zimReaderContainer.zimFileReader } returns zimFileReader
|
||||||
coEvery {
|
coEvery {
|
||||||
searchResultGenerator.generateSearchResults("", zimFileReader)
|
searchResultGenerator.generateSearchResults("", zimFileReader)
|
||||||
} returns null
|
} returns null
|
||||||
|
Loading…
x
Reference in New Issue
Block a user