diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/BaseRobot.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/BaseRobot.kt index c0c7bd3c5..25e80d66f 100644 --- a/app/src/androidTest/java/org/kiwix/kiwixmobile/BaseRobot.kt +++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/BaseRobot.kt @@ -21,6 +21,7 @@ package org.kiwix.kiwixmobile import android.R.id import android.app.Instrumentation import android.content.Context +import androidx.test.espresso.Espresso import androidx.test.espresso.NoMatchingViewException import androidx.test.platform.app.InstrumentationRegistry import androidx.test.uiautomator.Direction @@ -50,7 +51,7 @@ abstract class BaseRobot( } internal fun pressBack() { - uiDevice.pressBack() + Espresso.pressBack() } internal fun pressHome() { diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/download/DownloadTest.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/download/DownloadTest.kt index ae6b38c65..66a2b96e4 100644 --- a/app/src/androidTest/java/org/kiwix/kiwixmobile/download/DownloadTest.kt +++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/download/DownloadTest.kt @@ -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.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.main.topLevel 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.closeSystemDialogs import org.kiwix.kiwixmobile.testutils.TestUtils.isSystemUINotRespondingDialogVisible @@ -63,9 +65,9 @@ import java.util.concurrent.TimeUnit @LargeTest class DownloadTest : BaseActivityTest() { - // @Rule(order = RETRY_RULE_ORDER) - // @JvmField - // val retryRule = RetryRule() + @Rule(order = RETRY_RULE_ORDER) + @JvmField + val retryRule = RetryRule() @get:Rule(order = COMPOSE_TEST_RULE_ORDER) val composeTestRule = createComposeRule() @@ -178,6 +180,7 @@ class DownloadTest : BaseActivityTest() { fun testPauseAndResumeInOtherLanguage() { BaristaSleepInteractions.sleep(TestUtils.TEST_PAUSE_MS.toLong()) activityScenario.onActivity { + kiwixMainActivity = it it.navigate(KiwixDestination.Library.route) } try { diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/note/NoteFragmentTest.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/note/NoteFragmentTest.kt index 20363042b..1a2cff45e 100644 --- a/app/src/androidTest/java/org/kiwix/kiwixmobile/note/NoteFragmentTest.kt +++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/note/NoteFragmentTest.kt @@ -92,6 +92,7 @@ class NoteFragmentTest : BaseActivityTest() { ActivityScenario.launch(KiwixMainActivity::class.java).apply { moveToState(Lifecycle.State.RESUMED) onActivity { + kiwixMainActivity = it handleLocaleChange( it, "en", @@ -139,7 +140,7 @@ class NoteFragmentTest : BaseActivityTest() { writeDemoNote(composeTestRule) saveNote(composeTestRule) pressBack() - openNoteFragment(kiwixMainActivity as CoreMainActivity) + openNoteFragment(kiwixMainActivity as CoreMainActivity, composeTestRule) assertToolbarExist(composeTestRule) clickOnSavedNote(composeTestRule) clickOnOpenNote(composeTestRule) @@ -162,7 +163,7 @@ class NoteFragmentTest : BaseActivityTest() { } note { - openNoteFragment(kiwixMainActivity as CoreMainActivity) + openNoteFragment(kiwixMainActivity as CoreMainActivity, composeTestRule) assertToolbarExist(composeTestRule) clickOnSavedNote(composeTestRule) clickOnOpenNote(composeTestRule) @@ -186,7 +187,7 @@ class NoteFragmentTest : BaseActivityTest() { writeDemoNote(composeTestRule) saveNote(composeTestRule) pressBack() - openNoteFragment(kiwixMainActivity as CoreMainActivity) + openNoteFragment(kiwixMainActivity as CoreMainActivity, composeTestRule) assertToolbarExist(composeTestRule) clickOnSavedNote(composeTestRule) clickOnOpenNote(composeTestRule) @@ -209,7 +210,7 @@ class NoteFragmentTest : BaseActivityTest() { writeDemoNote(composeTestRule) saveNote(composeTestRule) pressBack() - openNoteFragment(kiwixMainActivity as CoreMainActivity) + openNoteFragment(kiwixMainActivity as CoreMainActivity, composeTestRule) assertToolbarExist(composeTestRule) clickOnSavedNote(composeTestRule) clickOnOpenNote(composeTestRule) @@ -247,7 +248,7 @@ class NoteFragmentTest : BaseActivityTest() { private fun deletePreviouslySavedNotes() { // delete the notes if any saved to properly run the test scenario note { - openNoteFragment(kiwixMainActivity as CoreMainActivity) + openNoteFragment(kiwixMainActivity as CoreMainActivity, composeTestRule) assertToolbarExist(composeTestRule) clickOnTrashIcon(composeTestRule) assertDeleteNoteDialogDisplayed(composeTestRule) diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/note/NoteRobot.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/note/NoteRobot.kt index a242f05a1..a6c63cde4 100644 --- a/app/src/androidTest/java/org/kiwix/kiwixmobile/note/NoteRobot.kt +++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/note/NoteRobot.kt @@ -30,9 +30,6 @@ import androidx.compose.ui.test.onNodeWithTag import androidx.compose.ui.test.performClick import androidx.compose.ui.test.performTextReplacement 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.webdriver.DriverAtoms.findElement 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.CoreMainActivity 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.reader.TAKE_NOTE_MENU_ITEM_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) - 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) { diff --git a/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/library/local/LocalLibraryFragment.kt b/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/library/local/LocalLibraryFragment.kt index 0b5f3e0c7..5d187a0bf 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/library/local/LocalLibraryFragment.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/library/local/LocalLibraryFragment.kt @@ -217,7 +217,7 @@ class LocalLibraryFragment : BaseFragment(), CopyMoveFileHandler.FileCopyMoveCal } private fun onUserBackPressed(): FragmentActivityExtensions.Super { - val coreMainActivity = (activity as? CoreMainActivity) + val coreMainActivity = activity as? CoreMainActivity if (coreMainActivity?.navigationDrawerIsOpen() == true) { coreMainActivity.closeNavigationDrawer() return FragmentActivityExtensions.Super.ShouldNotCall diff --git a/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/library/online/OnlineLibraryFragment.kt b/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/library/online/OnlineLibraryFragment.kt index 8ef5e6374..c1309e130 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/library/online/OnlineLibraryFragment.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/library/online/OnlineLibraryFragment.kt @@ -463,7 +463,7 @@ class OnlineLibraryFragment : BaseFragment(), FragmentActivityExtensions { @Suppress("ReturnCount") private fun onUserBackPressed(): FragmentActivityExtensions.Super { - val coreMainActivity = (activity as? CoreMainActivity) + val coreMainActivity = activity as? CoreMainActivity if (coreMainActivity?.navigationDrawerIsOpen() == true) { coreMainActivity.closeNavigationDrawer() return FragmentActivityExtensions.Super.ShouldNotCall