Refactored the UI test cases according to compose based navigation.

This commit is contained in:
MohitMaliFtechiz 2025-07-30 15:10:11 +05:30
parent 4d97eeebc8
commit 23e1dcdbdc
32 changed files with 306 additions and 247 deletions

View File

@ -51,6 +51,7 @@ import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
import org.kiwix.kiwixmobile.main.KiwixMainActivity
import org.kiwix.kiwixmobile.testutils.RetryRule
import org.kiwix.kiwixmobile.testutils.TestUtils
import org.kiwix.kiwixmobile.ui.KiwixDestination
import org.kiwix.kiwixmobile.utils.KiwixIdlingResource
import org.kiwix.libkiwix.Book
import org.kiwix.libzim.Archive
@ -138,7 +139,7 @@ class ObjectBoxToLibkiwixMigratorTest : BaseActivityTest() {
"en",
SharedPreferenceUtil(context)
)
it.navigate(R.id.libraryFragment)
it.navigate(KiwixDestination.Library.route)
}
}
boxStore = DatabaseModule.boxStore

View File

@ -54,6 +54,7 @@ import org.kiwix.kiwixmobile.core.utils.LanguageUtils
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
import org.kiwix.kiwixmobile.main.KiwixMainActivity
import org.kiwix.kiwixmobile.testutils.TestUtils
import org.kiwix.kiwixmobile.ui.KiwixDestination
@RunWith(AndroidJUnit4::class)
class ObjectBoxToRoomMigratorTest {
@ -90,7 +91,7 @@ class ObjectBoxToRoomMigratorTest {
"en",
SharedPreferenceUtil(context)
)
it.navigate(R.id.libraryFragment)
it.navigate(KiwixDestination.Library.route)
}
}
kiwixRoomDatabase =

View File

@ -47,7 +47,7 @@ import org.junit.BeforeClass
import org.junit.Rule
import org.junit.Test
import org.kiwix.kiwixmobile.BaseActivityTest
import org.kiwix.kiwixmobile.R
import org.kiwix.kiwixmobile.core.main.CoreMainActivity
import org.kiwix.kiwixmobile.core.utils.LanguageUtils.Companion.handleLocaleChange
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
import org.kiwix.kiwixmobile.core.utils.TestingUtils.COMPOSE_TEST_RULE_ORDER
@ -59,6 +59,7 @@ import org.kiwix.kiwixmobile.testutils.RetryRule
import org.kiwix.kiwixmobile.testutils.TestUtils
import org.kiwix.kiwixmobile.testutils.TestUtils.closeSystemDialogs
import org.kiwix.kiwixmobile.testutils.TestUtils.isSystemUINotRespondingDialogVisible
import org.kiwix.kiwixmobile.ui.KiwixDestination
import org.kiwix.kiwixmobile.utils.KiwixIdlingResource.Companion.getInstance
import java.util.concurrent.TimeUnit
@ -128,7 +129,7 @@ class DownloadTest : BaseActivityTest() {
BaristaSleepInteractions.sleep(TestUtils.TEST_PAUSE_MS.toLong())
activityScenario.onActivity {
kiwixMainActivity = it
it.navigate(R.id.libraryFragment)
it.navigate(KiwixDestination.Library.route)
}
try {
// delete all the ZIM files showing in the LocalLibrary
@ -159,7 +160,7 @@ class DownloadTest : BaseActivityTest() {
)
}
UiThreadStatement.runOnUiThread {
kiwixMainActivity.navigate(R.id.libraryFragment)
kiwixMainActivity.navigate(KiwixDestination.Library.route)
}
// refresh the local library list to show the downloaded zim file
library { refreshList(composeTestRule) }
@ -179,7 +180,7 @@ class DownloadTest : BaseActivityTest() {
fun testPauseAndResumeInOtherLanguage() {
BaristaSleepInteractions.sleep(TestUtils.TEST_PAUSE_MS.toLong())
activityScenario.onActivity {
it.navigate(R.id.libraryFragment)
it.navigate(KiwixDestination.Library.route)
}
try {
// delete all the ZIM files showing in the LocalLibrary
@ -192,7 +193,7 @@ class DownloadTest : BaseActivityTest() {
downloadRobot {
// change the application language
topLevel {
clickSettingsOnSideNav {
clickSettingsOnSideNav(kiwixMainActivity as CoreMainActivity) {
clickLanguagePreference(composeTestRule)
assertLanguagePrefDialogDisplayed(composeTestRule)
selectDeviceDefaultLanguage(composeTestRule)
@ -213,7 +214,7 @@ class DownloadTest : BaseActivityTest() {
stopDownloadIfAlreadyStarted(composeTestRule)
// select the default device language to perform other test cases.
topLevel {
clickSettingsOnSideNav {
clickSettingsOnSideNav(kiwixMainActivity as CoreMainActivity) {
clickLanguagePreference(composeTestRule)
assertLanguagePrefDialogDisplayed(composeTestRule)
selectDeviceDefaultLanguage(composeTestRule)

View File

@ -37,7 +37,6 @@ import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.kiwix.kiwixmobile.BaseActivityTest
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.TestingUtils.COMPOSE_TEST_RULE_ORDER
@ -46,6 +45,7 @@ import org.kiwix.kiwixmobile.main.KiwixMainActivity
import org.kiwix.kiwixmobile.testutils.RetryRule
import org.kiwix.kiwixmobile.testutils.TestUtils.closeSystemDialogs
import org.kiwix.kiwixmobile.testutils.TestUtils.isSystemUINotRespondingDialogVisible
import org.kiwix.kiwixmobile.ui.KiwixDestination
class ErrorActivityTest : BaseActivityTest() {
@Rule(order = RETRY_RULE_ORDER)
@ -106,7 +106,7 @@ class ErrorActivityTest : BaseActivityTest() {
@Test
fun verifyErrorActivity() {
activityScenario.onActivity {
it.navigate(R.id.helpFragment)
it.navigate(KiwixDestination.Help.route)
}
errorActivity {
assertSendDiagnosticReportDisplayed(composeTestRule)
@ -116,7 +116,7 @@ class ErrorActivityTest : BaseActivityTest() {
clickOnNoThanksButton(composeTestRule)
// Handle the app restart explicitly. Since test case does not handle the app restart.
activityScenario = ActivityScenario.launch(KiwixMainActivity::class.java).onActivity {
it.navigate(R.id.helpFragment)
it.navigate(KiwixDestination.Help.route)
}
// Assert HelpFragment is visible or not after clicking on the "No, Thanks" button.
assertSendDiagnosticReportDisplayed(composeTestRule)

View File

@ -31,7 +31,6 @@ import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.kiwix.kiwixmobile.BaseActivityTest
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.TestingUtils.COMPOSE_TEST_RULE_ORDER
@ -40,6 +39,7 @@ import org.kiwix.kiwixmobile.main.KiwixMainActivity
import org.kiwix.kiwixmobile.testutils.RetryRule
import org.kiwix.kiwixmobile.testutils.TestUtils.closeSystemDialogs
import org.kiwix.kiwixmobile.testutils.TestUtils.isSystemUINotRespondingDialogVisible
import org.kiwix.kiwixmobile.ui.KiwixDestination
import org.kiwix.kiwixmobile.utils.KiwixIdlingResource
class HelpFragmentTest : BaseActivityTest() {
@ -83,7 +83,7 @@ class HelpFragmentTest : BaseActivityTest() {
fun verifyHelpActivity() {
setShowCopyMoveToPublicDirectory(false)
activityScenario.onActivity {
it.navigate(R.id.helpFragment)
it.navigate(KiwixDestination.Help.route)
}
help {
clickOnWhatDoesKiwixDo(composeTestRule)
@ -105,7 +105,7 @@ class HelpFragmentTest : BaseActivityTest() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
setShowCopyMoveToPublicDirectory(true)
activityScenario.onActivity {
it.navigate(R.id.helpFragment)
it.navigate(KiwixDestination.Help.route)
}
help {
clickOnWhatDoesKiwixDo(composeTestRule)

View File

@ -41,7 +41,6 @@ import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.kiwix.kiwixmobile.BaseActivityTest
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.TestingUtils.COMPOSE_TEST_RULE_ORDER
@ -53,6 +52,7 @@ import org.kiwix.kiwixmobile.testutils.RetryRule
import org.kiwix.kiwixmobile.testutils.TestUtils
import org.kiwix.kiwixmobile.testutils.TestUtils.closeSystemDialogs
import org.kiwix.kiwixmobile.testutils.TestUtils.isSystemUINotRespondingDialogVisible
import org.kiwix.kiwixmobile.ui.KiwixDestination
@LargeTest
class InitialDownloadTest : BaseActivityTest() {
@ -115,7 +115,7 @@ class InitialDownloadTest : BaseActivityTest() {
fun initialDownloadTest() {
BaristaSleepInteractions.sleep(TestUtils.TEST_PAUSE_MS_FOR_SEARCH_TEST.toLong())
activityScenario.onActivity {
it.navigate(R.id.libraryFragment)
it.navigate(KiwixDestination.Library.route)
}
// delete all the ZIM files showing in the LocalLibrary
// screen to properly test the scenario.

View File

@ -37,7 +37,6 @@ import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.kiwix.kiwixmobile.BaseActivityTest
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.TestingUtils.COMPOSE_TEST_RULE_ORDER
@ -46,6 +45,7 @@ import org.kiwix.kiwixmobile.main.KiwixMainActivity
import org.kiwix.kiwixmobile.testutils.RetryRule
import org.kiwix.kiwixmobile.testutils.TestUtils.closeSystemDialogs
import org.kiwix.kiwixmobile.testutils.TestUtils.isSystemUINotRespondingDialogVisible
import org.kiwix.kiwixmobile.ui.KiwixDestination
class IntroFragmentTest : BaseActivityTest() {
@Rule(order = RETRY_RULE_ORDER)
@ -73,7 +73,7 @@ class IntroFragmentTest : BaseActivityTest() {
@Test
fun viewIsSwipeableAndNavigatesToMain() {
activityScenario.onActivity {
it.navigate(R.id.introFragment)
it.navigate(KiwixDestination.Intro.route)
}
intro {
swipeLeft(composeTestRule)

View File

@ -44,6 +44,7 @@ import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import org.kiwix.kiwixmobile.core.R
import org.kiwix.kiwixmobile.core.main.CoreMainActivity
import org.kiwix.kiwixmobile.core.utils.LanguageUtils.Companion.handleLocaleChange
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
import org.kiwix.kiwixmobile.core.utils.TestingUtils.COMPOSE_TEST_RULE_ORDER
@ -78,6 +79,7 @@ class LanguageFragmentTest {
var permissionRules: GrantPermissionRule =
GrantPermissionRule.grant(*permissions)
lateinit var kiwixMainActivity: KiwixMainActivity
private val instrumentation: Instrumentation by lazy(InstrumentationRegistry::getInstrumentation)
init {
@ -116,6 +118,7 @@ class LanguageFragmentTest {
ActivityScenario.launch(KiwixMainActivity::class.java).apply {
moveToState(Lifecycle.State.RESUMED)
onActivity {
kiwixMainActivity = it
handleLocaleChange(
it,
"en",
@ -127,7 +130,7 @@ class LanguageFragmentTest {
@Test
fun testLanguageFragment() {
StandardActions.closeDrawer() // close the drawer if open before running the test cases.
StandardActions.closeDrawer(kiwixMainActivity as CoreMainActivity) // close the drawer if open before running the test cases.
downloadRobot {
clickDownloadOnBottomNav()
waitForDataToLoad(composeTestRule = composeTestRule)

View File

@ -42,7 +42,7 @@ import org.hamcrest.Matchers.anyOf
import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.kiwix.kiwixmobile.R
import org.kiwix.kiwixmobile.core.main.CoreMainActivity
import org.kiwix.kiwixmobile.core.utils.LanguageUtils.Companion.handleLocaleChange
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
import org.kiwix.kiwixmobile.core.utils.TestingUtils.COMPOSE_TEST_RULE_ORDER
@ -51,6 +51,7 @@ import org.kiwix.kiwixmobile.main.KiwixMainActivity
import org.kiwix.kiwixmobile.nav.destination.library.library
import org.kiwix.kiwixmobile.testutils.RetryRule
import org.kiwix.kiwixmobile.testutils.TestUtils
import org.kiwix.kiwixmobile.ui.KiwixDestination
import org.kiwix.kiwixmobile.utils.StandardActions
class LocalFileTransferTest {
@ -82,6 +83,8 @@ class LocalFileTransferTest {
var permissionRules: GrantPermissionRule =
GrantPermissionRule.grant(*permissions)
lateinit var kiwixMainActivity: KiwixMainActivity
private val instrumentation: Instrumentation by lazy {
InstrumentationRegistry.getInstrumentation()
}
@ -119,6 +122,7 @@ class LocalFileTransferTest {
ActivityScenario.launch(KiwixMainActivity::class.java).apply {
moveToState(Lifecycle.State.RESUMED)
onActivity {
kiwixMainActivity = it
handleLocaleChange(
it,
"en",
@ -126,10 +130,10 @@ class LocalFileTransferTest {
)
}
}
StandardActions.closeDrawer()
StandardActions.closeDrawer(kiwixMainActivity as CoreMainActivity)
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N_MR1) {
activityScenario.onActivity {
it.navigate(R.id.libraryFragment)
it.navigate(KiwixDestination.Library.route)
}
library {
assertGetZimNearbyDeviceDisplayed(composeTestRule)
@ -153,15 +157,16 @@ class LocalFileTransferTest {
ActivityScenario.launch(KiwixMainActivity::class.java).apply {
moveToState(Lifecycle.State.RESUMED)
onActivity {
kiwixMainActivity = it
handleLocaleChange(
it,
"en",
SharedPreferenceUtil(context)
)
it.navigate(R.id.libraryFragment)
it.navigate(KiwixDestination.Library.route)
}
}
StandardActions.closeDrawer()
StandardActions.closeDrawer(kiwixMainActivity as CoreMainActivity)
library {
assertGetZimNearbyDeviceDisplayed(composeTestRule)
clickFileTransferIcon(composeTestRule) {
@ -187,10 +192,11 @@ class LocalFileTransferTest {
ActivityScenario.launch(KiwixMainActivity::class.java).apply {
moveToState(Lifecycle.State.RESUMED)
onActivity {
it.navigate(R.id.libraryFragment)
kiwixMainActivity = it
it.navigate(KiwixDestination.Library.route)
}
}
StandardActions.closeDrawer()
StandardActions.closeDrawer(kiwixMainActivity as CoreMainActivity)
library {
// test show case view show once.
clickFileTransferIcon(composeTestRule) {

View File

@ -25,7 +25,6 @@ import androidx.core.content.edit
import androidx.documentfile.provider.DocumentFile
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.NavHostFragment
import androidx.preference.PreferenceManager
import androidx.test.core.app.ActivityScenario
import androidx.test.internal.runner.junit4.statement.UiThreadStatement
@ -51,10 +50,10 @@ import org.kiwix.kiwixmobile.core.utils.TestingUtils.RETRY_RULE_ORDER
import org.kiwix.kiwixmobile.core.utils.dialog.AlertDialogShower
import org.kiwix.kiwixmobile.main.KiwixMainActivity
import org.kiwix.kiwixmobile.nav.destination.library.CopyMoveFileHandler
import org.kiwix.kiwixmobile.nav.destination.library.local.LocalLibraryFragment
import org.kiwix.kiwixmobile.testutils.RetryRule
import org.kiwix.kiwixmobile.testutils.TestUtils
import org.kiwix.kiwixmobile.testutils.TestUtils.waitUntilTimeout
import org.kiwix.kiwixmobile.ui.KiwixDestination
import org.kiwix.kiwixmobile.zimManager.Fat32Checker
import org.kiwix.kiwixmobile.zimManager.FileWritingFileSystemChecker
import java.io.File
@ -115,7 +114,7 @@ class CopyMoveFileHandlerTest : BaseActivityTest() {
selectedFile = getSelectedFile()
activityScenario.onActivity {
kiwixMainActivity = it
kiwixMainActivity.navigate(R.id.libraryFragment)
kiwixMainActivity.navigate(KiwixDestination.Library.route)
}
composeTestRule.waitUntilTimeout()
// test with first launch
@ -154,7 +153,7 @@ class CopyMoveFileHandlerTest : BaseActivityTest() {
selectedFile = getSelectedFile()
activityScenario.onActivity {
kiwixMainActivity = it
kiwixMainActivity.navigate(R.id.libraryFragment)
kiwixMainActivity.navigate(KiwixDestination.Library.route)
}
composeTestRule.waitUntilTimeout()
// test with first launch
@ -196,37 +195,39 @@ class CopyMoveFileHandlerTest : BaseActivityTest() {
private fun assertZimFileAddedInTheLocalLibrary() {
UiThreadStatement.runOnUiThread {
kiwixMainActivity.navigate(R.id.libraryFragment)
kiwixMainActivity.navigate(KiwixDestination.Library.route)
}
copyMoveFileHandler { assertZimFileAddedInTheLocalLibrary(composeTestRule) }
}
private fun showMoveFileToPublicDirectoryDialog() {
kiwixMainActivity.lifecycleScope.launch {
val navHostFragment: NavHostFragment =
kiwixMainActivity.supportFragmentManager
.findFragmentById(R.id.nav_host_fragment) as NavHostFragment
val localLibraryFragment =
navHostFragment.childFragmentManager.fragments[0] as LocalLibraryFragment
localLibraryFragment.copyMoveFileHandler?.showMoveFileToPublicDirectoryDialog(
Uri.fromFile(selectedFile),
DocumentFile.fromFile(selectedFile),
fragmentManager = localLibraryFragment.parentFragmentManager
)
}
// TODO refactore this with compose based navController.
// kiwixMainActivity.lifecycleScope.launch {
// val navHostFragment: NavHostFragment =
// kiwixMainActivity.navController
// .findFragmentById(R.id.nav_host_fragment) as NavHostFragment
// val localLibraryFragment =
// navHostFragment.childFragmentManager.fragments[0] as LocalLibraryFragment
// localLibraryFragment.copyMoveFileHandler?.showMoveFileToPublicDirectoryDialog(
// Uri.fromFile(selectedFile),
// DocumentFile.fromFile(selectedFile),
// fragmentManager = localLibraryFragment.parentFragmentManager
// )
// }
}
private fun tryOpeningInvalidZimFiles(uri: Uri) {
UiThreadStatement.runOnUiThread {
val navHostFragment: NavHostFragment =
kiwixMainActivity.supportFragmentManager
.findFragmentById(R.id.nav_host_fragment) as NavHostFragment
val localLibraryFragment =
navHostFragment.childFragmentManager.fragments[0] as LocalLibraryFragment
localLibraryFragment.handleSelectedFileUri(
uri,
)
}
// TODO refactore this with compose based navController.
// UiThreadStatement.runOnUiThread {
// val navHostFragment: NavHostFragment =
// kiwixMainActivity.supportFragmentManager
// .findFragmentById(R.id.nav_host_fragment) as NavHostFragment
// val localLibraryFragment =
// navHostFragment.childFragmentManager.fragments[0] as LocalLibraryFragment
// localLibraryFragment.handleSelectedFileUri(
// uri,
// )
// }
}
private fun getSelectedFile(): File {
@ -259,7 +260,7 @@ class CopyMoveFileHandlerTest : BaseActivityTest() {
fun testGetDestinationFile() {
activityScenario.onActivity {
kiwixMainActivity = it
kiwixMainActivity.navigate(R.id.libraryFragment)
kiwixMainActivity.navigate(KiwixDestination.Library.route)
}
val selectedFileName = "testCopyMove.zim"
deleteAllFilesInDirectory(parentFile)
@ -311,7 +312,7 @@ class CopyMoveFileHandlerTest : BaseActivityTest() {
selectedFile = getSelectedFile()
activityScenario.onActivity {
kiwixMainActivity = it
kiwixMainActivity.navigate(R.id.libraryFragment)
kiwixMainActivity.navigate(KiwixDestination.Library.route)
}
composeTestRule.waitUntilTimeout()
sharedPreferenceUtil.apply {

View File

@ -43,7 +43,6 @@ import org.junit.Rule
import org.junit.Test
import org.junit.jupiter.api.fail
import org.kiwix.kiwixmobile.BaseActivityTest
import org.kiwix.kiwixmobile.R
import org.kiwix.kiwixmobile.core.utils.LanguageUtils
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
import org.kiwix.kiwixmobile.core.utils.TestingUtils.COMPOSE_TEST_RULE_ORDER
@ -52,6 +51,7 @@ import org.kiwix.kiwixmobile.main.KiwixMainActivity
import org.kiwix.kiwixmobile.nav.destination.library.local.SELECT_FILE_BUTTON_TESTING_TAG
import org.kiwix.kiwixmobile.testutils.RetryRule
import org.kiwix.kiwixmobile.testutils.TestUtils
import org.kiwix.kiwixmobile.ui.KiwixDestination
import java.io.File
import java.io.FileOutputStream
import java.io.OutputStream
@ -109,7 +109,7 @@ class OpeningFilesFromStorageTest : BaseActivityTest() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R && Build.VERSION.SDK_INT != Build.VERSION_CODES.VANILLA_ICE_CREAM) {
activityScenario.onActivity {
kiwixMainActivity = it
it.navigate(R.id.libraryFragment)
it.navigate(KiwixDestination.Library.route)
}
val uri = copyFileToDownloadsFolder(context, fileName)
try {
@ -141,7 +141,7 @@ class OpeningFilesFromStorageTest : BaseActivityTest() {
) {
activityScenario.onActivity {
kiwixMainActivity = it
it.navigate(R.id.libraryFragment)
it.navigate(KiwixDestination.Library.route)
}
val uri = copyFileToDownloadsFolder(context, fileName)
try {

View File

@ -29,6 +29,7 @@ import applyWithViewHierarchyPrinting
import org.junit.Assert.assertEquals
import org.kiwix.kiwixmobile.BaseRobot
import org.kiwix.kiwixmobile.core.R
import org.kiwix.kiwixmobile.core.main.CoreMainActivity
import org.kiwix.kiwixmobile.core.main.KiwixWebView
import org.kiwix.kiwixmobile.core.settings.DIALOG_PREFERENCE_ITEM_TESTING_TAG
import org.kiwix.kiwixmobile.testutils.TestUtils.testFlakyView
@ -39,8 +40,8 @@ fun darkModeViewPainter(func: DarkModeViewPainterRobot.() -> Unit) =
DarkModeViewPainterRobot().applyWithViewHierarchyPrinting(func)
class DarkModeViewPainterRobot : BaseRobot() {
fun openSettings() {
openDrawer()
fun openSettings(coreMainActivity: CoreMainActivity) {
openDrawer(coreMainActivity)
enterSettings()
}

View File

@ -22,7 +22,6 @@ import androidx.compose.ui.test.junit4.createComposeRule
import androidx.core.content.edit
import androidx.core.net.toUri
import androidx.lifecycle.Lifecycle
import androidx.navigation.fragment.NavHostFragment
import androidx.preference.PreferenceManager
import androidx.test.core.app.ActivityScenario
import androidx.test.espresso.accessibility.AccessibilityChecks
@ -41,16 +40,16 @@ import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.kiwix.kiwixmobile.BaseActivityTest
import org.kiwix.kiwixmobile.R
import org.kiwix.kiwixmobile.core.main.CoreMainActivity
import org.kiwix.kiwixmobile.core.utils.LanguageUtils
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
import org.kiwix.kiwixmobile.core.utils.TestingUtils.COMPOSE_TEST_RULE_ORDER
import org.kiwix.kiwixmobile.core.utils.TestingUtils.RETRY_RULE_ORDER
import org.kiwix.kiwixmobile.nav.destination.library.local.LocalLibraryFragmentDirections
import org.kiwix.kiwixmobile.nav.destination.reader.KiwixReaderFragment
import org.kiwix.kiwixmobile.settings.settingsRobo
import org.kiwix.kiwixmobile.testutils.RetryRule
import org.kiwix.kiwixmobile.testutils.TestUtils
import org.kiwix.kiwixmobile.ui.KiwixDestination
import java.io.File
import java.io.FileOutputStream
import java.io.OutputStream
@ -123,13 +122,13 @@ class DarkModeViewPainterTest : BaseActivityTest() {
private fun openZimFileInReader() {
activityScenario.onActivity {
kiwixMainActivity = it
kiwixMainActivity.navigate(R.id.libraryFragment)
kiwixMainActivity.navigate(KiwixDestination.Library.route)
}
loadZimFileInReader()
}
private fun toggleDarkMode(enable: Boolean) {
darkModeViewPainter(DarkModeViewPainterRobot::openSettings)
darkModeViewPainter { openSettings(kiwixMainActivity as CoreMainActivity) }
settingsRobo { clickNightModePreference(composeTestRule) }
darkModeViewPainter {
if (enable) {
@ -142,27 +141,28 @@ class DarkModeViewPainterTest : BaseActivityTest() {
}
private fun verifyDarkMode(isEnabled: Boolean) {
UiThreadStatement.runOnUiThread {
val navHostFragment: NavHostFragment =
kiwixMainActivity.supportFragmentManager
.findFragmentById(R.id.nav_host_fragment) as NavHostFragment
val kiwixReaderFragment =
navHostFragment.childFragmentManager.fragments[0] as KiwixReaderFragment
val currentWebView = kiwixReaderFragment.getCurrentWebView()
currentWebView?.let {
darkModeViewPainter {
if (isEnabled) {
assertNightModeEnabled(it)
} else {
assertLightModeEnabled(it)
}
}
} ?: run {
throw RuntimeException(
"Could not check the dark mode enable or not because zim file is not loaded in the reader"
)
}
}
// TODO refactor this with compose based navController.
// UiThreadStatement.runOnUiThread {
// val navHostFragment: NavHostFragment =
// kiwixMainActivity.supportFragmentManager
// .findFragmentById(R.id.nav_host_fragment) as NavHostFragment
// val kiwixReaderFragment =
// navHostFragment.childFragmentManager.fragments[0] as KiwixReaderFragment
// val currentWebView = kiwixReaderFragment.getCurrentWebView()
// currentWebView?.let {
// darkModeViewPainter {
// if (isEnabled) {
// assertNightModeEnabled(it)
// } else {
// assertLightModeEnabled(it)
// }
// }
// } ?: run {
// throw RuntimeException(
// "Could not check the dark mode enable or not because zim file is not loaded in the reader"
// )
// }
// }
}
private fun loadZimFileInReader() {

View File

@ -28,6 +28,7 @@ import org.kiwix.kiwixmobile.Findable.StringId.TextId
import org.kiwix.kiwixmobile.Findable.ViewId
import org.kiwix.kiwixmobile.R
import org.kiwix.kiwixmobile.core.R.string
import org.kiwix.kiwixmobile.core.main.CoreMainActivity
import org.kiwix.kiwixmobile.help.HelpRobot
import org.kiwix.kiwixmobile.help.help
import org.kiwix.kiwixmobile.nav.destination.library.LibraryRobot
@ -53,7 +54,6 @@ fun topLevel(func: TopLevelDestinationRobot.() -> Unit) =
class TopLevelDestinationRobot : BaseRobot() {
fun clickReaderOnBottomNav(func: ReaderRobot.() -> Unit) {
isVisible(ViewId(R.id.navigation_container))
BaristaSleepInteractions.sleep(TestUtils.TEST_PAUSE_MS.toLong())
testFlakyView({ onView(withId(R.id.readerFragment)).perform(click()) })
reader(func)
@ -70,51 +70,54 @@ class TopLevelDestinationRobot : BaseRobot() {
onlineLibrary(func)
}
private fun inNavDrawer(navDrawerAction: () -> Unit) {
openDrawer()
private fun inNavDrawer(coreMainActivity: CoreMainActivity, navDrawerAction: () -> Unit) {
openDrawer(coreMainActivity)
navDrawerAction.invoke()
pressBack()
}
fun clickBookmarksOnNavDrawer(func: BookmarksRobot.() -> Unit) {
inNavDrawer {
fun clickBookmarksOnNavDrawer(
coreMainActivity: CoreMainActivity,
func: BookmarksRobot.() -> Unit
) {
inNavDrawer(coreMainActivity = coreMainActivity) {
testFlakyView({ onView(withText(string.bookmarks)).perform(click()) })
bookmarks(func)
pressBack()
}
}
fun clickHistoryOnSideNav(func: HistoryRobot.() -> Unit) {
inNavDrawer {
fun clickHistoryOnSideNav(coreMainActivity: CoreMainActivity, func: HistoryRobot.() -> Unit) {
inNavDrawer(coreMainActivity) {
clickOn(TextId(string.history))
history(func)
pressBack()
}
}
fun clickHostBooksOnSideNav(func: ZimHostRobot.() -> Unit) {
inNavDrawer {
fun clickHostBooksOnSideNav(coreMainActivity: CoreMainActivity, func: ZimHostRobot.() -> Unit) {
inNavDrawer(coreMainActivity) {
clickOn(TextId(string.menu_wifi_hotspot))
zimHost(func)
}
}
fun clickSettingsOnSideNav(func: SettingsRobot.() -> Unit) {
inNavDrawer {
fun clickSettingsOnSideNav(coreMainActivity: CoreMainActivity, func: SettingsRobot.() -> Unit) {
inNavDrawer(coreMainActivity) {
clickOn(TextId(string.menu_settings))
settingsRobo(func)
}
}
fun clickHelpOnSideNav(func: HelpRobot.() -> Unit) {
inNavDrawer {
fun clickHelpOnSideNav(coreMainActivity: CoreMainActivity, func: HelpRobot.() -> Unit) {
inNavDrawer(coreMainActivity) {
clickOn(TextId(string.menu_help))
help(func)
}
}
fun clickSupportKiwixOnSideNav() {
inNavDrawer {
fun clickSupportKiwixOnSideNav(coreMainActivity: CoreMainActivity) {
inNavDrawer(coreMainActivity) {
clickOn(TextId(string.menu_support_kiwix))
}
}

View File

@ -38,6 +38,7 @@ import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.kiwix.kiwixmobile.BaseActivityTest
import org.kiwix.kiwixmobile.core.main.CoreMainActivity
import org.kiwix.kiwixmobile.core.utils.LanguageUtils.Companion.handleLocaleChange
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
import org.kiwix.kiwixmobile.core.utils.TestingUtils.COMPOSE_TEST_RULE_ORDER
@ -55,6 +56,8 @@ class TopLevelDestinationTest : BaseActivityTest() {
@get:Rule(order = COMPOSE_TEST_RULE_ORDER)
val composeTestRule = createComposeRule()
lateinit var kiwixMainActivity: KiwixMainActivity
@Before
override fun waitForIdle() {
UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()).apply {
@ -81,6 +84,7 @@ class TopLevelDestinationTest : BaseActivityTest() {
ActivityScenario.launch(KiwixMainActivity::class.java).apply {
moveToState(Lifecycle.State.RESUMED)
onActivity {
kiwixMainActivity = it
handleLocaleChange(
it,
"en",
@ -122,20 +126,26 @@ class TopLevelDestinationTest : BaseActivityTest() {
assertReceiveFileTitleVisible(composeTestRule)
}
}
clickBookmarksOnNavDrawer {
clickBookmarksOnNavDrawer(kiwixMainActivity as CoreMainActivity) {
assertBookMarksDisplayed(composeTestRule)
clickOnTrashIcon(composeTestRule)
assertDeleteBookmarksDialogDisplayed(composeTestRule)
}
clickHistoryOnSideNav {
clickHistoryOnSideNav(kiwixMainActivity as CoreMainActivity) {
assertHistoryDisplayed(composeTestRule)
clickOnTrashIcon(composeTestRule)
assertDeleteHistoryDialogDisplayed(composeTestRule)
}
clickHostBooksOnSideNav { assertMenuWifiHotspotDisplayed(composeTestRule) }
clickSettingsOnSideNav { assertMenuSettingsDisplayed(composeTestRule) }
clickHelpOnSideNav { assertToolbarDisplayed(composeTestRule) }
clickSupportKiwixOnSideNav()
clickHostBooksOnSideNav(kiwixMainActivity as CoreMainActivity) {
assertMenuWifiHotspotDisplayed(composeTestRule)
}
clickSettingsOnSideNav(kiwixMainActivity as CoreMainActivity) {
assertMenuSettingsDisplayed(composeTestRule)
}
clickHelpOnSideNav(kiwixMainActivity as CoreMainActivity) {
assertToolbarDisplayed(composeTestRule)
}
clickSupportKiwixOnSideNav(kiwixMainActivity as CoreMainActivity)
pressBack()
}
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N_MR1) {

View File

@ -39,7 +39,6 @@ import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.kiwix.kiwixmobile.BaseActivityTest
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.TestingUtils.COMPOSE_TEST_RULE_ORDER
@ -49,6 +48,7 @@ import org.kiwix.kiwixmobile.testutils.RetryRule
import org.kiwix.kiwixmobile.testutils.TestUtils
import org.kiwix.kiwixmobile.testutils.TestUtils.closeSystemDialogs
import org.kiwix.kiwixmobile.testutils.TestUtils.isSystemUINotRespondingDialogVisible
import org.kiwix.kiwixmobile.ui.KiwixDestination
import java.io.File
import java.io.FileOutputStream
import java.io.OutputStream
@ -118,7 +118,7 @@ class LocalLibraryTest : BaseActivityTest() {
@Test
fun testLocalLibrary() {
activityScenario.onActivity {
it.navigate(R.id.libraryFragment)
it.navigate(KiwixDestination.Library.route)
}
library {
refreshList(composeTestRule)

View File

@ -30,7 +30,6 @@ import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.kiwix.kiwixmobile.BaseActivityTest
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.TestingUtils.COMPOSE_TEST_RULE_ORDER
@ -41,6 +40,7 @@ import org.kiwix.kiwixmobile.testutils.RetryRule
import org.kiwix.kiwixmobile.testutils.TestUtils
import org.kiwix.kiwixmobile.testutils.TestUtils.closeSystemDialogs
import org.kiwix.kiwixmobile.testutils.TestUtils.isSystemUINotRespondingDialogVisible
import org.kiwix.kiwixmobile.ui.KiwixDestination
class OnlineLibraryFragmentTest : BaseActivityTest() {
@Rule(order = RETRY_RULE_ORDER)
@ -92,7 +92,7 @@ class OnlineLibraryFragmentTest : BaseActivityTest() {
BaristaSleepInteractions.sleep(TestUtils.TEST_PAUSE_MS.toLong())
activityScenario.onActivity {
kiwixMainActivity = it
it.navigate(R.id.downloadsFragment)
it.navigate(KiwixDestination.Downloads.route)
}
downloadRobot {
waitForDataToLoad(composeTestRule = composeTestRule)
@ -110,7 +110,7 @@ class OnlineLibraryFragmentTest : BaseActivityTest() {
BaristaSleepInteractions.sleep(TestUtils.TEST_PAUSE_MS.toLong())
activityScenario.onActivity {
kiwixMainActivity = it
it.navigate(R.id.downloadsFragment)
it.navigate(KiwixDestination.Downloads.route)
}
downloadRobot {
waitForDataToLoad(composeTestRule = composeTestRule)

View File

@ -42,7 +42,7 @@ import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.kiwix.kiwixmobile.BaseActivityTest
import org.kiwix.kiwixmobile.R
import org.kiwix.kiwixmobile.core.main.CoreMainActivity
import org.kiwix.kiwixmobile.core.utils.LanguageUtils.Companion.handleLocaleChange
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
import org.kiwix.kiwixmobile.core.utils.TestingUtils.COMPOSE_TEST_RULE_ORDER
@ -54,6 +54,7 @@ import org.kiwix.kiwixmobile.testutils.RetryRule
import org.kiwix.kiwixmobile.testutils.TestUtils
import org.kiwix.kiwixmobile.testutils.TestUtils.closeSystemDialogs
import org.kiwix.kiwixmobile.testutils.TestUtils.isSystemUINotRespondingDialogVisible
import org.kiwix.kiwixmobile.ui.KiwixDestination
import org.kiwix.kiwixmobile.utils.StandardActions
import java.io.File
import java.io.FileOutputStream
@ -118,7 +119,7 @@ class NoteFragmentTest : BaseActivityTest() {
@Test
fun verifyNoteFragment() {
activityScenario.onActivity {
it.navigate(R.id.notesFragment)
it.navigate(KiwixDestination.Notes.route)
}
note {
assertToolbarExist(composeTestRule)
@ -131,14 +132,14 @@ class NoteFragmentTest : BaseActivityTest() {
fun testUserCanSeeNotesForDeletedFiles() {
deletePreviouslySavedNotes()
loadZimFileInReader("testzim.zim")
StandardActions.closeDrawer() // close the drawer if open before running the test cases.
StandardActions.closeDrawer(kiwixMainActivity as CoreMainActivity) // close the drawer if open before running the test cases.
note {
clickOnNoteMenuItem(composeTestRule)
assertNoteDialogDisplayed(composeTestRule)
writeDemoNote(composeTestRule)
saveNote(composeTestRule)
pressBack()
openNoteFragment()
openNoteFragment(kiwixMainActivity as CoreMainActivity)
assertToolbarExist(composeTestRule)
clickOnSavedNote(composeTestRule)
clickOnOpenNote(composeTestRule)
@ -151,7 +152,7 @@ class NoteFragmentTest : BaseActivityTest() {
// goto local library fragment to delete the ZIM file
UiThreadStatement.runOnUiThread {
kiwixMainActivity.navigate(R.id.libraryFragment)
kiwixMainActivity.navigate(KiwixDestination.Library.route)
}
library {
@ -161,7 +162,7 @@ class NoteFragmentTest : BaseActivityTest() {
}
note {
openNoteFragment()
openNoteFragment(kiwixMainActivity as CoreMainActivity)
assertToolbarExist(composeTestRule)
clickOnSavedNote(composeTestRule)
clickOnOpenNote(composeTestRule)
@ -185,7 +186,7 @@ class NoteFragmentTest : BaseActivityTest() {
writeDemoNote(composeTestRule)
saveNote(composeTestRule)
pressBack()
openNoteFragment()
openNoteFragment(kiwixMainActivity as CoreMainActivity)
assertToolbarExist(composeTestRule)
clickOnSavedNote(composeTestRule)
clickOnOpenNote(composeTestRule)
@ -208,7 +209,7 @@ class NoteFragmentTest : BaseActivityTest() {
writeDemoNote(composeTestRule)
saveNote(composeTestRule)
pressBack()
openNoteFragment()
openNoteFragment(kiwixMainActivity as CoreMainActivity)
assertToolbarExist(composeTestRule)
clickOnSavedNote(composeTestRule)
clickOnOpenNote(composeTestRule)
@ -246,7 +247,7 @@ class NoteFragmentTest : BaseActivityTest() {
private fun deletePreviouslySavedNotes() {
// delete the notes if any saved to properly run the test scenario
note {
openNoteFragment()
openNoteFragment(kiwixMainActivity as CoreMainActivity)
assertToolbarExist(composeTestRule)
clickOnTrashIcon(composeTestRule)
assertDeleteNoteDialogDisplayed(composeTestRule)
@ -259,7 +260,7 @@ class NoteFragmentTest : BaseActivityTest() {
private fun loadZimFileInReader(zimFileName: String) {
activityScenario.onActivity {
kiwixMainActivity = it
kiwixMainActivity.navigate(R.id.libraryFragment)
kiwixMainActivity.navigate(KiwixDestination.Library.route)
}
val loadFileStream =

View File

@ -40,6 +40,7 @@ import com.adevinta.android.barista.interaction.BaristaSleepInteractions
import org.kiwix.kiwixmobile.BaseRobot
import org.kiwix.kiwixmobile.core.R
import org.kiwix.kiwixmobile.core.main.ADD_NOTE_TEXT_FILED_TESTING_TAG
import org.kiwix.kiwixmobile.core.main.CoreMainActivity
import org.kiwix.kiwixmobile.core.main.DELETE_MENU_BUTTON_TESTING_TAG
import org.kiwix.kiwixmobile.core.main.SAVE_MENU_BUTTON_TESTING_TAG
import org.kiwix.kiwixmobile.core.main.reader.TAKE_NOTE_MENU_ITEM_TESTING_TAG
@ -128,8 +129,8 @@ class NoteRobot : BaseRobot() {
})
}
fun openNoteFragment() {
openDrawer()
fun openNoteFragment(coreMainActivity: CoreMainActivity) {
openDrawer(coreMainActivity)
testFlakyView({ onView(withText(R.string.pref_notes)).perform(click()) })
}

View File

@ -37,6 +37,7 @@ import applyWithViewHierarchyPrinting
import com.adevinta.android.barista.interaction.BaristaSleepInteractions
import org.kiwix.kiwixmobile.BaseRobot
import org.kiwix.kiwixmobile.core.R
import org.kiwix.kiwixmobile.core.main.CoreMainActivity
import org.kiwix.kiwixmobile.core.page.DELETE_MENU_ICON_TESTING_TAG
import org.kiwix.kiwixmobile.core.page.NO_ITEMS_TEXT_TESTING_TAG
import org.kiwix.kiwixmobile.core.page.PAGE_LIST_TEST_TAG
@ -143,9 +144,9 @@ class BookmarksRobot : BaseRobot() {
BaristaSleepInteractions.sleep(TestUtils.TEST_PAUSE_MS_FOR_SEARCH_TEST.toLong())
}
fun openBookmarkScreen() {
fun openBookmarkScreen(coreMainActivity: CoreMainActivity) {
testFlakyView({
openDrawer()
openDrawer(coreMainActivity)
onView(withText(R.string.bookmarks)).perform(click())
})
}

View File

@ -22,7 +22,7 @@ import androidx.compose.ui.test.junit4.createComposeRule
import androidx.core.content.edit
import androidx.core.net.toUri
import androidx.lifecycle.Lifecycle
import androidx.navigation.fragment.NavHostFragment
import androidx.navigation.NavOptions
import androidx.preference.PreferenceManager
import androidx.test.core.app.ActivityScenario
import androidx.test.espresso.accessibility.AccessibilityChecks
@ -33,16 +33,13 @@ import com.google.android.apps.common.testing.accessibility.framework.Accessibil
import com.google.android.apps.common.testing.accessibility.framework.AccessibilityCheckResultUtils.matchesViews
import com.google.android.apps.common.testing.accessibility.framework.checks.SpeakableTextPresentCheck
import com.google.android.apps.common.testing.accessibility.framework.checks.TouchTargetSizeCheck
import kotlinx.coroutines.runBlocking
import org.hamcrest.Matchers.allOf
import org.hamcrest.Matchers.anyOf
import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.kiwix.kiwixmobile.BaseActivityTest
import org.kiwix.kiwixmobile.R
import org.kiwix.kiwixmobile.core.main.reader.CoreReaderFragment
import org.kiwix.kiwixmobile.core.page.bookmark.adapter.LibkiwixBookmarkItem
import org.kiwix.kiwixmobile.core.main.CoreMainActivity
import org.kiwix.kiwixmobile.core.utils.LanguageUtils.Companion.handleLocaleChange
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
import org.kiwix.kiwixmobile.core.utils.TestingUtils.COMPOSE_TEST_RULE_ORDER
@ -54,8 +51,7 @@ import org.kiwix.kiwixmobile.testutils.RetryRule
import org.kiwix.kiwixmobile.testutils.TestUtils
import org.kiwix.kiwixmobile.testutils.TestUtils.TEST_PAUSE_MS_FOR_DOWNLOAD_TEST
import org.kiwix.kiwixmobile.testutils.TestUtils.waitUntilTimeout
import org.kiwix.libkiwix.Book
import org.kiwix.libkiwix.Bookmark
import org.kiwix.kiwixmobile.ui.KiwixDestination
import java.io.File
import java.io.FileOutputStream
import java.io.OutputStream
@ -120,7 +116,7 @@ class LibkiwixBookmarkTest : BaseActivityTest() {
fun testBookmarks() {
activityScenario.onActivity {
kiwixMainActivity = it
kiwixMainActivity.navigate(R.id.libraryFragment)
kiwixMainActivity.navigate(KiwixDestination.Library.route)
kiwixMainActivity.navigate(
LocalLibraryFragmentDirections.actionNavigationLibraryToNavigationReader()
.apply { zimFileUri = getZimFile().toUri().toString() }
@ -136,7 +132,7 @@ class LibkiwixBookmarkTest : BaseActivityTest() {
pressBack()
// Test saving bookmark
clickOnSaveBookmarkImage(composeTestRule)
openBookmarkScreen()
openBookmarkScreen(kiwixMainActivity as CoreMainActivity)
assertBookmarkSaved(composeTestRule)
pressBack()
// Test removing bookmark
@ -152,8 +148,13 @@ class LibkiwixBookmarkTest : BaseActivityTest() {
@Test
fun testBookmarkRemainsSavedOrNot() {
activityScenario.onActivity {
kiwixMainActivity = it
}
topLevel {
clickBookmarksOnNavDrawer { assertBookmarkSaved(composeTestRule) }
clickBookmarksOnNavDrawer(kiwixMainActivity as CoreMainActivity) {
assertBookmarkSaved(composeTestRule)
}
}
}
@ -162,10 +163,13 @@ class LibkiwixBookmarkTest : BaseActivityTest() {
val zimFile = getZimFile()
activityScenario.onActivity {
kiwixMainActivity = it
kiwixMainActivity.navigate(R.id.libraryFragment)
kiwixMainActivity.navigate(KiwixDestination.Library.route)
val navOptions = NavOptions.Builder()
.setPopUpTo(KiwixDestination.Reader.route, false)
.build()
kiwixMainActivity.navigate(
LocalLibraryFragmentDirections.actionNavigationLibraryToNavigationReader()
.apply { zimFileUri = zimFile.toUri().toString() }
KiwixDestination.Reader.createRoute(zimFileUri = zimFile.toUri().toString()),
navOptions
)
}
bookmarks {
@ -178,40 +182,41 @@ class LibkiwixBookmarkTest : BaseActivityTest() {
pressBack()
}
composeTestRule.waitUntilTimeout()
val navHostFragment: NavHostFragment =
kiwixMainActivity.supportFragmentManager
.findFragmentById(R.id.nav_host_fragment) as NavHostFragment
val coreReaderFragment = navHostFragment.childFragmentManager.fragments[0] as CoreReaderFragment
val libKiwixBook =
Book().apply {
update(coreReaderFragment.zimReaderContainer?.zimFileReader?.jniKiwixReader)
}
val bookmarkList = arrayListOf<LibkiwixBookmarkItem>()
for (i in 1..500) {
val bookmark =
Bookmark().apply {
bookId = coreReaderFragment.zimReaderContainer?.zimFileReader?.id
title = "bookmark$i"
url = "http://kiwix.org/demoBookmark$i"
bookTitle = libKiwixBook.title
}
val libkiwixItem =
LibkiwixBookmarkItem(
bookmark,
coreReaderFragment.zimReaderContainer?.zimFileReader?.favicon,
coreReaderFragment.zimReaderContainer?.zimFileReader?.zimReaderSource
)
runBlocking {
coreReaderFragment.libkiwixBookmarks?.saveBookmark(libkiwixItem).also {
bookmarkList.add(libkiwixItem)
}
}
}
bookmarks {
// test all the saved bookmarks are showing on the bookmarks screen
openBookmarkScreen()
testAllBookmarkShowing(bookmarkList, composeTestRule)
}
// TODO refactor this wih compose based navController.
// val navHostFragment: NavHostFragment =
// kiwixMainActivity.supportFragmentManager
// .findFragmentById(R.id.nav_host_fragment) as NavHostFragment
// val coreReaderFragment = navHostFragment.childFragmentManager.fragments[0] as CoreReaderFragment
// val libKiwixBook =
// Book().apply {
// update(coreReaderFragment.zimReaderContainer?.zimFileReader?.jniKiwixReader)
// }
// val bookmarkList = arrayListOf<LibkiwixBookmarkItem>()
// for (i in 1..500) {
// val bookmark =
// Bookmark().apply {
// bookId = coreReaderFragment.zimReaderContainer?.zimFileReader?.id
// title = "bookmark$i"
// url = "http://kiwix.org/demoBookmark$i"
// bookTitle = libKiwixBook.title
// }
// val libkiwixItem =
// LibkiwixBookmarkItem(
// bookmark,
// coreReaderFragment.zimReaderContainer?.zimFileReader?.favicon,
// coreReaderFragment.zimReaderContainer?.zimFileReader?.zimReaderSource
// )
// runBlocking {
// coreReaderFragment.libkiwixBookmarks?.saveBookmark(libkiwixItem).also {
// bookmarkList.add(libkiwixItem)
// }
// }
// }
// bookmarks {
// // test all the saved bookmarks are showing on the bookmarks screen
// openBookmarkScreen()
// testAllBookmarkShowing(bookmarkList, composeTestRule)
// }
}
private fun getZimFile(): File {

View File

@ -23,6 +23,7 @@ import androidx.compose.ui.test.junit4.createComposeRule
import androidx.core.content.edit
import androidx.core.net.toUri
import androidx.lifecycle.Lifecycle
import androidx.navigation.NavOptions
import androidx.preference.PreferenceManager
import androidx.test.core.app.ActivityScenario
import androidx.test.espresso.accessibility.AccessibilityChecks
@ -43,16 +44,17 @@ import org.junit.Rule
import org.junit.Test
import org.kiwix.kiwixmobile.BaseActivityTest
import org.kiwix.kiwixmobile.R
import org.kiwix.kiwixmobile.core.main.CoreMainActivity
import org.kiwix.kiwixmobile.core.utils.LanguageUtils.Companion.handleLocaleChange
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
import org.kiwix.kiwixmobile.core.utils.TestingUtils.COMPOSE_TEST_RULE_ORDER
import org.kiwix.kiwixmobile.core.utils.TestingUtils.RETRY_RULE_ORDER
import org.kiwix.kiwixmobile.main.KiwixMainActivity
import org.kiwix.kiwixmobile.nav.destination.library.local.LocalLibraryFragmentDirections
import org.kiwix.kiwixmobile.testutils.RetryRule
import org.kiwix.kiwixmobile.testutils.TestUtils
import org.kiwix.kiwixmobile.testutils.TestUtils.closeSystemDialogs
import org.kiwix.kiwixmobile.testutils.TestUtils.isSystemUINotRespondingDialogVisible
import org.kiwix.kiwixmobile.ui.KiwixDestination
import org.kiwix.kiwixmobile.utils.StandardActions
import java.io.File
import java.io.FileOutputStream
@ -118,7 +120,7 @@ class NavigationHistoryTest : BaseActivityTest() {
fun navigationHistoryDialogTest() {
activityScenario.onActivity {
kiwixMainActivity = it
kiwixMainActivity.navigate(R.id.libraryFragment)
kiwixMainActivity.navigate(KiwixDestination.Library.route)
}
val loadFileStream =
NavigationHistoryTest::class.java.classLoader.getResourceAsStream("testzim.zim")
@ -140,12 +142,15 @@ class NavigationHistoryTest : BaseActivityTest() {
}
}
UiThreadStatement.runOnUiThread {
val navOptions = NavOptions.Builder()
.setPopUpTo(KiwixDestination.Reader.route, false)
.build()
kiwixMainActivity.navigate(
LocalLibraryFragmentDirections.actionNavigationLibraryToNavigationReader()
.apply { zimFileUri = zimFile.toUri().toString() }
KiwixDestination.Reader.createRoute(zimFileUri = zimFile.toUri().toString()),
navOptions
)
}
StandardActions.closeDrawer() // close the drawer if open before running the test cases.
StandardActions.closeDrawer(kiwixMainActivity as CoreMainActivity) // close the drawer if open before running the test cases.
navigationHistory {
closeTabSwitcherIfVisible(composeTestRule)
checkZimFileLoadedSuccessful(R.id.readerFragment)

View File

@ -39,7 +39,6 @@ import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.kiwix.kiwixmobile.BaseActivityTest
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.THREE_MONTHS_IN_MILLISECONDS
@ -51,6 +50,7 @@ import org.kiwix.kiwixmobile.testutils.RetryRule
import org.kiwix.kiwixmobile.testutils.TestUtils
import org.kiwix.kiwixmobile.testutils.TestUtils.closeSystemDialogs
import org.kiwix.kiwixmobile.testutils.TestUtils.isSystemUINotRespondingDialogVisible
import org.kiwix.kiwixmobile.ui.KiwixDestination
import java.io.File
import java.io.FileOutputStream
import java.io.OutputStream
@ -123,7 +123,7 @@ class DonationDialogTest : BaseActivityTest() {
sharedPreferenceUtil.lastDonationPopupShownInMilliSeconds = 0L
activityScenario.onActivity {
kiwixMainActivity = it
kiwixMainActivity.navigate(R.id.libraryFragment)
kiwixMainActivity.navigate(KiwixDestination.Library.route)
}
deleteAllZIMFilesFromApplication()
openReaderFragment()
@ -170,7 +170,7 @@ class DonationDialogTest : BaseActivityTest() {
private fun openReaderFragment() {
UiThreadStatement.runOnUiThread {
kiwixMainActivity.navigate(kiwixMainActivity.readerFragmentResId)
kiwixMainActivity.navigate(kiwixMainActivity.readerFragmentRoute)
}
}
@ -202,7 +202,7 @@ class DonationDialogTest : BaseActivityTest() {
private fun openLocalLibraryScreen() {
activityScenario.onActivity {
kiwixMainActivity = it
kiwixMainActivity.navigate(R.id.libraryFragment)
kiwixMainActivity.navigate(KiwixDestination.Library.route)
}
}

View File

@ -56,6 +56,7 @@ import org.kiwix.kiwixmobile.testutils.TestUtils
import org.kiwix.kiwixmobile.testutils.TestUtils.closeSystemDialogs
import org.kiwix.kiwixmobile.testutils.TestUtils.getOkkHttpClientForTesting
import org.kiwix.kiwixmobile.testutils.TestUtils.isSystemUINotRespondingDialogVisible
import org.kiwix.kiwixmobile.ui.KiwixDestination
import java.io.File
import java.io.FileOutputStream
import java.io.OutputStream
@ -117,7 +118,7 @@ class KiwixReaderFragmentTest : BaseActivityTest() {
fun testTabClosedDialog() {
activityScenario.onActivity {
kiwixMainActivity = it
kiwixMainActivity.navigate(R.id.libraryFragment)
kiwixMainActivity.navigate(KiwixDestination.Library.route)
}
val loadFileStream =
KiwixReaderFragmentTest::class.java.classLoader.getResourceAsStream("testzim.zim")
@ -158,7 +159,7 @@ class KiwixReaderFragmentTest : BaseActivityTest() {
fun testZimFileRendering() {
activityScenario.onActivity {
kiwixMainActivity = it
kiwixMainActivity.navigate(R.id.libraryFragment)
kiwixMainActivity.navigate(KiwixDestination.Library.route)
}
val downloadingZimFile = getDownloadingZimFile()
getOkkHttpClientForTesting().newCall(downloadRequest()).execute().use { response ->

View File

@ -21,6 +21,7 @@ package org.kiwix.kiwixmobile.reader
import androidx.core.content.edit
import androidx.core.net.toUri
import androidx.lifecycle.Lifecycle
import androidx.navigation.NavOptions
import androidx.preference.PreferenceManager
import androidx.test.core.app.ActivityScenario
import androidx.test.espresso.accessibility.AccessibilityChecks
@ -50,10 +51,10 @@ import org.kiwix.kiwixmobile.core.utils.LanguageUtils.Companion.handleLocaleChan
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
import org.kiwix.kiwixmobile.core.utils.TestingUtils.RETRY_RULE_ORDER
import org.kiwix.kiwixmobile.main.KiwixMainActivity
import org.kiwix.kiwixmobile.nav.destination.library.local.LocalLibraryFragmentDirections
import org.kiwix.kiwixmobile.page.history.navigationHistory
import org.kiwix.kiwixmobile.testutils.RetryRule
import org.kiwix.kiwixmobile.testutils.TestUtils
import org.kiwix.kiwixmobile.ui.KiwixDestination
import org.kiwix.libzim.SuggestionSearcher
import java.io.File
import java.io.FileOutputStream
@ -112,13 +113,16 @@ class ZimFileReaderWithSplittedZimFileTest : BaseActivityTest() {
fun testZimFileReaderWithSplittedZimFile() {
activityScenario.onActivity {
kiwixMainActivity = it
kiwixMainActivity.navigate(R.id.libraryFragment)
kiwixMainActivity.navigate(KiwixDestination.Library.route)
}
createAndGetSplitedZimFile()?.let {
UiThreadStatement.runOnUiThread {
val navOptions = NavOptions.Builder()
.setPopUpTo(KiwixDestination.Reader.route, false)
.build()
kiwixMainActivity.navigate(
LocalLibraryFragmentDirections.actionNavigationLibraryToNavigationReader()
.apply { zimFileUri = it.toUri().toString() }
KiwixDestination.Reader.createRoute(zimFileUri = it.toUri().toString()),
navOptions
)
}

View File

@ -22,7 +22,6 @@ import androidx.compose.ui.test.junit4.createComposeRule
import androidx.core.content.edit
import androidx.core.net.toUri
import androidx.lifecycle.Lifecycle
import androidx.navigation.fragment.NavHostFragment
import androidx.preference.PreferenceManager
import androidx.test.core.app.ActivityScenario
import androidx.test.espresso.accessibility.AccessibilityChecks
@ -47,8 +46,6 @@ import org.junit.Rule
import org.junit.Test
import org.kiwix.kiwixmobile.BaseActivityTest
import org.kiwix.kiwixmobile.R
import org.kiwix.kiwixmobile.core.search.SearchFragment
import org.kiwix.kiwixmobile.core.search.viewmodel.Action
import org.kiwix.kiwixmobile.core.utils.LanguageUtils.Companion.handleLocaleChange
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
import org.kiwix.kiwixmobile.core.utils.TestingUtils.COMPOSE_TEST_RULE_ORDER
@ -60,6 +57,7 @@ import org.kiwix.kiwixmobile.testutils.TestUtils
import org.kiwix.kiwixmobile.testutils.TestUtils.closeSystemDialogs
import org.kiwix.kiwixmobile.testutils.TestUtils.getOkkHttpClientForTesting
import org.kiwix.kiwixmobile.testutils.TestUtils.isSystemUINotRespondingDialogVisible
import org.kiwix.kiwixmobile.ui.KiwixDestination
import java.io.File
import java.io.FileOutputStream
import java.io.OutputStream
@ -134,7 +132,7 @@ class SearchFragmentTest : BaseActivityTest() {
fun searchFragmentSimple() {
activityScenario.onActivity {
kiwixMainActivity = it
kiwixMainActivity.navigate(R.id.libraryFragment)
kiwixMainActivity.navigate(KiwixDestination.Library.route)
}
testZimFile = getTestZimFile()
openKiwixReaderFragmentWithFile(testZimFile)
@ -173,7 +171,7 @@ class SearchFragmentTest : BaseActivityTest() {
pressBack()
}
UiThreadStatement.runOnUiThread { kiwixMainActivity.navigate(R.id.libraryFragment) }
UiThreadStatement.runOnUiThread { kiwixMainActivity.navigate(KiwixDestination.Library.route) }
// test with a large ZIM file to properly test the scenario
downloadingZimFile = getDownloadingZimFile()
getOkkHttpClientForTesting().newCall(downloadRequest()).execute().use { response ->
@ -259,7 +257,7 @@ class SearchFragmentTest : BaseActivityTest() {
)
activityScenario.onActivity {
kiwixMainActivity = it
kiwixMainActivity.navigate(R.id.libraryFragment)
kiwixMainActivity.navigate(KiwixDestination.Library.route)
}
downloadingZimFile = getDownloadingZimFile()
getOkkHttpClientForTesting().newCall(downloadRequest()).execute().use { response ->
@ -279,33 +277,34 @@ class SearchFragmentTest : BaseActivityTest() {
openSearchWithQuery(searchTerms[0], downloadingZimFile)
// wait for searchFragment become visible on screen.
delay(2000)
val navHostFragment: NavHostFragment =
kiwixMainActivity.supportFragmentManager
.findFragmentById(R.id.nav_host_fragment) as NavHostFragment
val searchFragment = navHostFragment.childFragmentManager.fragments[0] as SearchFragment
for (i in 1..100) {
// This will execute the render method 100 times frequently.
val searchTerm = searchTerms[i % searchTerms.size]
searchFragment.searchViewModel.actions.trySend(Action.Filter(searchTerm)).isSuccess
}
for (i in 1..100) {
// this will execute the render method 100 times with 100MS delay.
delay(100)
val searchTerm = searchTerms[i % searchTerms.size]
searchFragment.searchViewModel.actions.trySend(Action.Filter(searchTerm)).isSuccess
}
for (i in 1..100) {
// this will execute the render method 100 times with 200MS delay.
delay(200)
val searchTerm = searchTerms[i % searchTerms.size]
searchFragment.searchViewModel.actions.trySend(Action.Filter(searchTerm)).isSuccess
}
for (i in 1..100) {
// this will execute the render method 100 times with 200MS delay.
delay(300)
val searchTerm = searchTerms[i % searchTerms.size]
searchFragment.searchViewModel.actions.trySend(Action.Filter(searchTerm)).isSuccess
}
// TODO refactor this with compose based navController.
// val navHostFragment: NavHostFragment =
// kiwixMainActivity.supportFragmentManager
// .findFragmentById(R.id.nav_host_fragment) as NavHostFragment
// val searchFragment = navHostFragment.childFragmentManager.fragments[0] as SearchFragment
// for (i in 1..100) {
// // This will execute the render method 100 times frequently.
// val searchTerm = searchTerms[i % searchTerms.size]
// searchFragment.searchViewModel.actions.trySend(Action.Filter(searchTerm)).isSuccess
// }
// for (i in 1..100) {
// // this will execute the render method 100 times with 100MS delay.
// delay(100)
// val searchTerm = searchTerms[i % searchTerms.size]
// searchFragment.searchViewModel.actions.trySend(Action.Filter(searchTerm)).isSuccess
// }
// for (i in 1..100) {
// // this will execute the render method 100 times with 200MS delay.
// delay(200)
// val searchTerm = searchTerms[i % searchTerms.size]
// searchFragment.searchViewModel.actions.trySend(Action.Filter(searchTerm)).isSuccess
// }
// for (i in 1..100) {
// // this will execute the render method 100 times with 200MS delay.
// delay(300)
// val searchTerm = searchTerms[i % searchTerms.size]
// searchFragment.searchViewModel.actions.trySend(Action.Filter(searchTerm)).isSuccess
// }
}
private fun removeTemporaryZimFilesToFreeUpDeviceStorage() {

View File

@ -36,7 +36,7 @@ import org.hamcrest.Matchers.anyOf
import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.kiwix.kiwixmobile.R
import org.kiwix.kiwixmobile.core.main.CoreMainActivity
import org.kiwix.kiwixmobile.core.utils.LanguageUtils.Companion.handleLocaleChange
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
import org.kiwix.kiwixmobile.core.utils.TestingUtils.COMPOSE_TEST_RULE_ORDER
@ -46,6 +46,7 @@ import org.kiwix.kiwixmobile.main.KiwixMainActivity
import org.kiwix.kiwixmobile.testutils.RetryRule
import org.kiwix.kiwixmobile.testutils.TestUtils.closeSystemDialogs
import org.kiwix.kiwixmobile.testutils.TestUtils.isSystemUINotRespondingDialogVisible
import org.kiwix.kiwixmobile.ui.KiwixDestination
import org.kiwix.kiwixmobile.utils.StandardActions
class KiwixSettingsFragmentTest {
@ -56,6 +57,8 @@ class KiwixSettingsFragmentTest {
@get:Rule(order = COMPOSE_TEST_RULE_ORDER)
val composeTestRule = createComposeRule()
lateinit var kiwixMainActivity: KiwixMainActivity
private val permissions =
arrayOf(
Manifest.permission.READ_EXTERNAL_STORAGE,
@ -108,13 +111,14 @@ class KiwixSettingsFragmentTest {
}
}
activityScenario.onActivity {
it.navigate(R.id.introFragment)
kiwixMainActivity = it
it.navigate(KiwixDestination.Intro.route)
}
intro {
swipeLeft(composeTestRule)
clickGetStarted(composeTestRule) {}
}
StandardActions.openDrawer()
StandardActions.openDrawer(kiwixMainActivity as CoreMainActivity)
StandardActions.enterSettings()
}

View File

@ -41,6 +41,7 @@ import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import org.kiwix.kiwixmobile.core.main.CoreMainActivity
import org.kiwix.kiwixmobile.core.utils.LanguageUtils.Companion.handleLocaleChange
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
import org.kiwix.kiwixmobile.core.utils.TestingUtils.COMPOSE_TEST_RULE_ORDER
@ -63,6 +64,7 @@ class GetContentShortcutTest {
@get:Rule(order = COMPOSE_TEST_RULE_ORDER)
val composeTestRule = createComposeRule()
lateinit var kiwixMainActivity: KiwixMainActivity
init {
AccessibilityChecks.enable().apply {
@ -106,6 +108,7 @@ class GetContentShortcutTest {
ActivityScenario.launch(KiwixMainActivity::class.java).apply {
moveToState(Lifecycle.State.RESUMED)
onActivity {
kiwixMainActivity = it
handleLocaleChange(
it,
"en",
@ -139,20 +142,26 @@ class GetContentShortcutTest {
assertReceiveFileTitleVisible(composeTestRule)
}
}
clickBookmarksOnNavDrawer {
clickBookmarksOnNavDrawer(kiwixMainActivity as CoreMainActivity) {
assertBookMarksDisplayed(composeTestRule)
clickOnTrashIcon(composeTestRule)
assertDeleteBookmarksDialogDisplayed(composeTestRule)
}
clickHistoryOnSideNav {
clickHistoryOnSideNav(kiwixMainActivity as CoreMainActivity) {
assertHistoryDisplayed(composeTestRule)
clickOnTrashIcon(composeTestRule)
assertDeleteHistoryDialogDisplayed(composeTestRule)
}
clickHostBooksOnSideNav { assertMenuWifiHotspotDisplayed(composeTestRule) }
clickSettingsOnSideNav { assertMenuSettingsDisplayed(composeTestRule) }
clickHelpOnSideNav { HelpRobot().assertToolbarDisplayed(composeTestRule) }
clickSupportKiwixOnSideNav()
clickHostBooksOnSideNav(kiwixMainActivity as CoreMainActivity) {
assertMenuWifiHotspotDisplayed(composeTestRule)
}
clickSettingsOnSideNav(kiwixMainActivity as CoreMainActivity) {
assertMenuSettingsDisplayed(composeTestRule)
}
clickHelpOnSideNav(kiwixMainActivity as CoreMainActivity) {
HelpRobot().assertToolbarDisplayed(composeTestRule)
}
clickSupportKiwixOnSideNav(kiwixMainActivity as CoreMainActivity)
pressBack()
}
}

View File

@ -18,17 +18,14 @@
package org.kiwix.kiwixmobile.utils
import org.kiwix.kiwixmobile.core.utils.files.Log
import androidx.core.view.GravityCompat
import androidx.test.espresso.Espresso
import androidx.test.espresso.action.ViewActions
import androidx.test.espresso.matcher.ViewMatchers
import com.adevinta.android.barista.interaction.BaristaClickInteractions.clickOn
import com.adevinta.android.barista.interaction.BaristaDialogInteractions
import com.adevinta.android.barista.interaction.BaristaDrawerInteractions.closeDrawerWithGravity
import com.adevinta.android.barista.interaction.BaristaDrawerInteractions.openDrawerWithGravity
import com.adevinta.android.barista.interaction.BaristaSleepInteractions
import org.kiwix.kiwixmobile.R
import org.kiwix.kiwixmobile.core.R.string
import org.kiwix.kiwixmobile.core.main.CoreMainActivity
import org.kiwix.kiwixmobile.testutils.TestUtils
/**
@ -40,14 +37,14 @@ object StandardActions {
clickOn(TestUtils.getResourceString(string.menu_settings))
}
fun openDrawer() {
fun openDrawer(coreMainActivity: CoreMainActivity) {
BaristaSleepInteractions.sleep(TestUtils.TEST_PAUSE_MS.toLong())
openDrawerWithGravity(R.id.navigation_container, GravityCompat.START)
coreMainActivity.openNavigationDrawer()
}
fun closeDrawer() {
fun closeDrawer(coreMainActivity: CoreMainActivity) {
BaristaSleepInteractions.sleep(TestUtils.TEST_PAUSE_MS.toLong())
closeDrawerWithGravity(R.id.navigation_container, GravityCompat.START)
coreMainActivity.closeNavigationDrawer()
}
@JvmStatic

View File

@ -40,7 +40,7 @@ import org.junit.After
import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.kiwix.kiwixmobile.R
import org.kiwix.kiwixmobile.core.main.CoreMainActivity
import org.kiwix.kiwixmobile.core.utils.LanguageUtils.Companion.handleLocaleChange
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
import org.kiwix.kiwixmobile.core.utils.TestingUtils.COMPOSE_TEST_RULE_ORDER
@ -49,6 +49,7 @@ import org.kiwix.kiwixmobile.main.KiwixMainActivity
import org.kiwix.kiwixmobile.nav.destination.library.library
import org.kiwix.kiwixmobile.testutils.RetryRule
import org.kiwix.kiwixmobile.testutils.TestUtils
import org.kiwix.kiwixmobile.ui.KiwixDestination
import org.kiwix.kiwixmobile.utils.StandardActions
import java.io.File
import java.io.FileOutputStream
@ -66,6 +67,8 @@ class ZimHostFragmentTest {
private lateinit var activityScenario: ActivityScenario<KiwixMainActivity>
lateinit var kiwixMainActivity: KiwixMainActivity
private val permissions =
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
arrayOf(
@ -143,9 +146,10 @@ class ZimHostFragmentTest {
Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU
) {
activityScenario.onActivity {
it.navigate(R.id.libraryFragment)
kiwixMainActivity = it
it.navigate(KiwixDestination.Library.route)
}
StandardActions.closeDrawer() // close the drawer if open before running the test cases.
StandardActions.closeDrawer(kiwixMainActivity as CoreMainActivity) // close the drawer if open before running the test cases.
// delete all the ZIM files showing in the LocalLibrary
// screen to properly test the scenario.
library {
@ -158,7 +162,7 @@ class ZimHostFragmentTest {
zimHost {
refreshLibraryList(composeTestRule)
assertZimFilesLoaded(composeTestRule)
openZimHostFragment()
openZimHostFragment(kiwixMainActivity as CoreMainActivity)
// Check if server is already started
stopServerIfAlreadyStarted(composeTestRule)

View File

@ -33,6 +33,7 @@ import junit.framework.AssertionFailedError
import org.kiwix.kiwixmobile.BaseRobot
import org.kiwix.kiwixmobile.Findable.StringId.TextId
import org.kiwix.kiwixmobile.core.R
import org.kiwix.kiwixmobile.core.main.CoreMainActivity
import org.kiwix.kiwixmobile.core.ui.components.TOOLBAR_TITLE_TESTING_TAG
import org.kiwix.kiwixmobile.core.utils.dialog.ALERT_DIALOG_NATURAL_BUTTON_TESTING_TAG
import org.kiwix.kiwixmobile.core.utils.dialog.ALERT_DIALOG_TITLE_TEXT_TESTING_TAG
@ -68,8 +69,8 @@ class ZimHostRobot : BaseRobot() {
zimFileNodes.assertCountEquals(2)
}
fun openZimHostFragment() {
openDrawer()
fun openZimHostFragment(coreMainActivity: CoreMainActivity) {
openDrawer(coreMainActivity)
clickOn(TextId(R.string.menu_wifi_hotspot))
}

View File

@ -150,7 +150,7 @@ class SearchFragmentTestForCustomApp {
}
}
UiThreadStatement.runOnUiThread {
customMainActivity.navigate(customMainActivity.readerFragmentResId)
customMainActivity.navigate(customMainActivity.readerFragmentRoute)
}
openZimFileInReader(zimFile = downloadingZimFile)
openSearchWithQuery()
@ -230,7 +230,7 @@ class SearchFragmentTestForCustomApp {
}
}
UiThreadStatement.runOnUiThread {
customMainActivity.navigate(customMainActivity.readerFragmentResId)
customMainActivity.navigate(customMainActivity.readerFragmentRoute)
}
openZimFileInReader(zimFile = downloadingZimFile)
openSearchWithQuery(searchTerms[0])
@ -288,7 +288,7 @@ class SearchFragmentTestForCustomApp {
}
}
UiThreadStatement.runOnUiThread {
customMainActivity.navigate(customMainActivity.readerFragmentResId)
customMainActivity.navigate(customMainActivity.readerFragmentRoute)
}
openZimFileInReader(zimFile = downloadingZimFile)
search {