Fixed: CodeFactor issues.

* Fixed: The `DownloadTest`.
* Fixed: The `uiDevice.pressBack` was not working with compose UI so we have replaced it with `Espresso.pressBack`.
* Fixed: NoteFragmentTest.
This commit is contained in:
MohitMaliFtechiz 2025-08-02 01:00:28 +05:30
parent 8112632c80
commit 21debceb82
6 changed files with 27 additions and 16 deletions

View File

@ -21,6 +21,7 @@ package org.kiwix.kiwixmobile
import android.R.id import android.R.id
import android.app.Instrumentation import android.app.Instrumentation
import android.content.Context import android.content.Context
import androidx.test.espresso.Espresso
import androidx.test.espresso.NoMatchingViewException import androidx.test.espresso.NoMatchingViewException
import androidx.test.platform.app.InstrumentationRegistry import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.uiautomator.Direction import androidx.test.uiautomator.Direction
@ -50,7 +51,7 @@ abstract class BaseRobot(
} }
internal fun pressBack() { internal fun pressBack() {
uiDevice.pressBack() Espresso.pressBack()
} }
internal fun pressHome() { internal fun pressHome() {

View File

@ -51,9 +51,11 @@ import org.kiwix.kiwixmobile.core.main.CoreMainActivity
import org.kiwix.kiwixmobile.core.utils.LanguageUtils.Companion.handleLocaleChange 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.core.utils.TestingUtils.COMPOSE_TEST_RULE_ORDER 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.main.KiwixMainActivity
import org.kiwix.kiwixmobile.main.topLevel import org.kiwix.kiwixmobile.main.topLevel
import org.kiwix.kiwixmobile.nav.destination.library.library import org.kiwix.kiwixmobile.nav.destination.library.library
import org.kiwix.kiwixmobile.testutils.RetryRule
import org.kiwix.kiwixmobile.testutils.TestUtils import org.kiwix.kiwixmobile.testutils.TestUtils
import org.kiwix.kiwixmobile.testutils.TestUtils.closeSystemDialogs import org.kiwix.kiwixmobile.testutils.TestUtils.closeSystemDialogs
import org.kiwix.kiwixmobile.testutils.TestUtils.isSystemUINotRespondingDialogVisible import org.kiwix.kiwixmobile.testutils.TestUtils.isSystemUINotRespondingDialogVisible
@ -63,9 +65,9 @@ import java.util.concurrent.TimeUnit
@LargeTest @LargeTest
class DownloadTest : BaseActivityTest() { class DownloadTest : BaseActivityTest() {
// @Rule(order = RETRY_RULE_ORDER) @Rule(order = RETRY_RULE_ORDER)
// @JvmField @JvmField
// val retryRule = RetryRule() val retryRule = RetryRule()
@get:Rule(order = COMPOSE_TEST_RULE_ORDER) @get:Rule(order = COMPOSE_TEST_RULE_ORDER)
val composeTestRule = createComposeRule() val composeTestRule = createComposeRule()
@ -178,6 +180,7 @@ class DownloadTest : BaseActivityTest() {
fun testPauseAndResumeInOtherLanguage() { fun testPauseAndResumeInOtherLanguage() {
BaristaSleepInteractions.sleep(TestUtils.TEST_PAUSE_MS.toLong()) BaristaSleepInteractions.sleep(TestUtils.TEST_PAUSE_MS.toLong())
activityScenario.onActivity { activityScenario.onActivity {
kiwixMainActivity = it
it.navigate(KiwixDestination.Library.route) it.navigate(KiwixDestination.Library.route)
} }
try { try {

View File

@ -92,6 +92,7 @@ class NoteFragmentTest : BaseActivityTest() {
ActivityScenario.launch(KiwixMainActivity::class.java).apply { ActivityScenario.launch(KiwixMainActivity::class.java).apply {
moveToState(Lifecycle.State.RESUMED) moveToState(Lifecycle.State.RESUMED)
onActivity { onActivity {
kiwixMainActivity = it
handleLocaleChange( handleLocaleChange(
it, it,
"en", "en",
@ -139,7 +140,7 @@ class NoteFragmentTest : BaseActivityTest() {
writeDemoNote(composeTestRule) writeDemoNote(composeTestRule)
saveNote(composeTestRule) saveNote(composeTestRule)
pressBack() pressBack()
openNoteFragment(kiwixMainActivity as CoreMainActivity) openNoteFragment(kiwixMainActivity as CoreMainActivity, composeTestRule)
assertToolbarExist(composeTestRule) assertToolbarExist(composeTestRule)
clickOnSavedNote(composeTestRule) clickOnSavedNote(composeTestRule)
clickOnOpenNote(composeTestRule) clickOnOpenNote(composeTestRule)
@ -162,7 +163,7 @@ class NoteFragmentTest : BaseActivityTest() {
} }
note { note {
openNoteFragment(kiwixMainActivity as CoreMainActivity) openNoteFragment(kiwixMainActivity as CoreMainActivity, composeTestRule)
assertToolbarExist(composeTestRule) assertToolbarExist(composeTestRule)
clickOnSavedNote(composeTestRule) clickOnSavedNote(composeTestRule)
clickOnOpenNote(composeTestRule) clickOnOpenNote(composeTestRule)
@ -186,7 +187,7 @@ class NoteFragmentTest : BaseActivityTest() {
writeDemoNote(composeTestRule) writeDemoNote(composeTestRule)
saveNote(composeTestRule) saveNote(composeTestRule)
pressBack() pressBack()
openNoteFragment(kiwixMainActivity as CoreMainActivity) openNoteFragment(kiwixMainActivity as CoreMainActivity, composeTestRule)
assertToolbarExist(composeTestRule) assertToolbarExist(composeTestRule)
clickOnSavedNote(composeTestRule) clickOnSavedNote(composeTestRule)
clickOnOpenNote(composeTestRule) clickOnOpenNote(composeTestRule)
@ -209,7 +210,7 @@ class NoteFragmentTest : BaseActivityTest() {
writeDemoNote(composeTestRule) writeDemoNote(composeTestRule)
saveNote(composeTestRule) saveNote(composeTestRule)
pressBack() pressBack()
openNoteFragment(kiwixMainActivity as CoreMainActivity) openNoteFragment(kiwixMainActivity as CoreMainActivity, composeTestRule)
assertToolbarExist(composeTestRule) assertToolbarExist(composeTestRule)
clickOnSavedNote(composeTestRule) clickOnSavedNote(composeTestRule)
clickOnOpenNote(composeTestRule) clickOnOpenNote(composeTestRule)
@ -247,7 +248,7 @@ class NoteFragmentTest : BaseActivityTest() {
private fun deletePreviouslySavedNotes() { private fun deletePreviouslySavedNotes() {
// delete the notes if any saved to properly run the test scenario // delete the notes if any saved to properly run the test scenario
note { note {
openNoteFragment(kiwixMainActivity as CoreMainActivity) openNoteFragment(kiwixMainActivity as CoreMainActivity, composeTestRule)
assertToolbarExist(composeTestRule) assertToolbarExist(composeTestRule)
clickOnTrashIcon(composeTestRule) clickOnTrashIcon(composeTestRule)
assertDeleteNoteDialogDisplayed(composeTestRule) assertDeleteNoteDialogDisplayed(composeTestRule)

View File

@ -30,9 +30,6 @@ import androidx.compose.ui.test.onNodeWithTag
import androidx.compose.ui.test.performClick import androidx.compose.ui.test.performClick
import androidx.compose.ui.test.performTextReplacement import androidx.compose.ui.test.performTextReplacement
import androidx.test.espresso.Espresso.closeSoftKeyboard import androidx.test.espresso.Espresso.closeSoftKeyboard
import androidx.test.espresso.Espresso.onView
import androidx.test.espresso.action.ViewActions.click
import androidx.test.espresso.matcher.ViewMatchers.withText
import androidx.test.espresso.web.sugar.Web.onWebView import androidx.test.espresso.web.sugar.Web.onWebView
import androidx.test.espresso.web.webdriver.DriverAtoms.findElement import androidx.test.espresso.web.webdriver.DriverAtoms.findElement
import androidx.test.espresso.web.webdriver.Locator import androidx.test.espresso.web.webdriver.Locator
@ -42,6 +39,7 @@ import org.kiwix.kiwixmobile.core.R
import org.kiwix.kiwixmobile.core.main.ADD_NOTE_TEXT_FILED_TESTING_TAG 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.CoreMainActivity
import org.kiwix.kiwixmobile.core.main.DELETE_MENU_BUTTON_TESTING_TAG import org.kiwix.kiwixmobile.core.main.DELETE_MENU_BUTTON_TESTING_TAG
import org.kiwix.kiwixmobile.core.main.LEFT_DRAWER_NOTES_ITEM_TESTING_TAG
import org.kiwix.kiwixmobile.core.main.SAVE_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 import org.kiwix.kiwixmobile.core.main.reader.TAKE_NOTE_MENU_ITEM_TESTING_TAG
import org.kiwix.kiwixmobile.core.page.DELETE_MENU_ICON_TESTING_TAG import org.kiwix.kiwixmobile.core.page.DELETE_MENU_ICON_TESTING_TAG
@ -129,9 +127,17 @@ class NoteRobot : BaseRobot() {
}) })
} }
fun openNoteFragment(coreMainActivity: CoreMainActivity) { fun openNoteFragment(
coreMainActivity: CoreMainActivity,
composeTestRule: ComposeContentTestRule
) {
openDrawer(coreMainActivity) openDrawer(coreMainActivity)
testFlakyView({ onView(withText(R.string.pref_notes)).perform(click()) }) testFlakyView({
composeTestRule.apply {
waitForIdle()
onNodeWithTag(LEFT_DRAWER_NOTES_ITEM_TESTING_TAG).performClick()
}
})
} }
fun clickOnSavedNote(composeTestRule: ComposeContentTestRule) { fun clickOnSavedNote(composeTestRule: ComposeContentTestRule) {

View File

@ -217,7 +217,7 @@ class LocalLibraryFragment : BaseFragment(), CopyMoveFileHandler.FileCopyMoveCal
} }
private fun onUserBackPressed(): FragmentActivityExtensions.Super { private fun onUserBackPressed(): FragmentActivityExtensions.Super {
val coreMainActivity = (activity as? CoreMainActivity) val coreMainActivity = activity as? CoreMainActivity
if (coreMainActivity?.navigationDrawerIsOpen() == true) { if (coreMainActivity?.navigationDrawerIsOpen() == true) {
coreMainActivity.closeNavigationDrawer() coreMainActivity.closeNavigationDrawer()
return FragmentActivityExtensions.Super.ShouldNotCall return FragmentActivityExtensions.Super.ShouldNotCall

View File

@ -463,7 +463,7 @@ class OnlineLibraryFragment : BaseFragment(), FragmentActivityExtensions {
@Suppress("ReturnCount") @Suppress("ReturnCount")
private fun onUserBackPressed(): FragmentActivityExtensions.Super { private fun onUserBackPressed(): FragmentActivityExtensions.Super {
val coreMainActivity = (activity as? CoreMainActivity) val coreMainActivity = activity as? CoreMainActivity
if (coreMainActivity?.navigationDrawerIsOpen() == true) { if (coreMainActivity?.navigationDrawerIsOpen() == true) {
coreMainActivity.closeNavigationDrawer() coreMainActivity.closeNavigationDrawer()
return FragmentActivityExtensions.Super.ShouldNotCall return FragmentActivityExtensions.Super.ShouldNotCall