mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-24 05:04:50 -04:00
Improved the testBookmarkRemainsSavedOrNot
which sometimes fails on Android 15, and 16.
This commit is contained in:
parent
3b4a5d29fa
commit
2bc89b9ad2
@ -132,10 +132,12 @@ class BookmarksRobot : BaseRobot() {
|
|||||||
|
|
||||||
fun assertBookmarkSaved(composeTestRule: ComposeContentTestRule) {
|
fun assertBookmarkSaved(composeTestRule: ComposeContentTestRule) {
|
||||||
pauseForBetterTestPerformance()
|
pauseForBetterTestPerformance()
|
||||||
|
testFlakyView({
|
||||||
composeTestRule.apply {
|
composeTestRule.apply {
|
||||||
waitForIdle()
|
waitForIdle()
|
||||||
onNodeWithText("Test Zim").assertExists()
|
onNodeWithText("Test Zim").assertExists()
|
||||||
}
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
fun assertBookmarkRemoved(composeTestRule: ComposeTestRule) {
|
fun assertBookmarkRemoved(composeTestRule: ComposeTestRule) {
|
||||||
|
@ -18,11 +18,15 @@
|
|||||||
|
|
||||||
package org.kiwix.kiwixmobile.page.bookmarks
|
package org.kiwix.kiwixmobile.page.bookmarks
|
||||||
|
|
||||||
|
import android.accessibilityservice.AccessibilityService
|
||||||
|
import android.content.Context
|
||||||
|
import android.content.Intent
|
||||||
import androidx.compose.ui.test.junit4.createAndroidComposeRule
|
import androidx.compose.ui.test.junit4.createAndroidComposeRule
|
||||||
import androidx.core.content.edit
|
import androidx.core.content.edit
|
||||||
import androidx.core.net.toUri
|
import androidx.core.net.toUri
|
||||||
import androidx.navigation.NavOptions
|
import androidx.navigation.NavOptions
|
||||||
import androidx.preference.PreferenceManager
|
import androidx.preference.PreferenceManager
|
||||||
|
import androidx.test.core.app.ApplicationProvider
|
||||||
import androidx.test.espresso.accessibility.AccessibilityChecks
|
import androidx.test.espresso.accessibility.AccessibilityChecks
|
||||||
import androidx.test.espresso.matcher.ViewMatchers.withContentDescription
|
import androidx.test.espresso.matcher.ViewMatchers.withContentDescription
|
||||||
import androidx.test.platform.app.InstrumentationRegistry
|
import androidx.test.platform.app.InstrumentationRegistry
|
||||||
@ -128,8 +132,7 @@ class LibkiwixBookmarkTest : BaseActivityTest() {
|
|||||||
navOptions
|
navOptions
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
waitForIdle()
|
waitComposeToSettleViews() // to load the ZIM file properly.
|
||||||
waitUntilTimeout() // to load the ZIM file properly.
|
|
||||||
}
|
}
|
||||||
bookmarks {
|
bookmarks {
|
||||||
// delete any bookmark if already saved to properly perform this test case.
|
// delete any bookmark if already saved to properly perform this test case.
|
||||||
@ -139,42 +142,49 @@ class LibkiwixBookmarkTest : BaseActivityTest() {
|
|||||||
clickOnDeleteButton(composeTestRule)
|
clickOnDeleteButton(composeTestRule)
|
||||||
assertNoBookMarkTextDisplayed(composeTestRule)
|
assertNoBookMarkTextDisplayed(composeTestRule)
|
||||||
pressBack()
|
pressBack()
|
||||||
composeTestRule.apply {
|
waitComposeToSettleViews()
|
||||||
waitForIdle()
|
|
||||||
waitUntilTimeout()
|
|
||||||
}
|
|
||||||
// Test saving bookmark
|
// Test saving bookmark
|
||||||
clickOnSaveBookmarkImage(composeTestRule)
|
clickOnSaveBookmarkImage(composeTestRule)
|
||||||
openBookmarkScreen(kiwixMainActivity as CoreMainActivity, composeTestRule)
|
openBookmarkScreen(kiwixMainActivity as CoreMainActivity, composeTestRule)
|
||||||
assertBookmarkSaved(composeTestRule)
|
assertBookmarkSaved(composeTestRule)
|
||||||
pressBack()
|
pressBack()
|
||||||
// Test removing bookmark
|
// Test removing bookmark
|
||||||
composeTestRule.apply {
|
waitComposeToSettleViews()
|
||||||
waitForIdle()
|
|
||||||
waitUntilTimeout()
|
|
||||||
}
|
|
||||||
clickOnSaveBookmarkImage(composeTestRule)
|
clickOnSaveBookmarkImage(composeTestRule)
|
||||||
longClickOnSaveBookmarkImage(composeTestRule, TEST_PAUSE_MS_FOR_DOWNLOAD_TEST.toLong())
|
longClickOnSaveBookmarkImage(composeTestRule, TEST_PAUSE_MS_FOR_DOWNLOAD_TEST.toLong())
|
||||||
assertBookmarkRemoved(composeTestRule)
|
assertBookmarkRemoved(composeTestRule)
|
||||||
pressBack()
|
pressBack()
|
||||||
// Save the bookmark to test whether it remains saved after the application restarts or not.
|
// Save the bookmark to test whether it remains saved after the application restarts or not.
|
||||||
composeTestRule.apply {
|
waitComposeToSettleViews()
|
||||||
waitForIdle()
|
|
||||||
waitUntilTimeout()
|
|
||||||
}
|
|
||||||
clickOnSaveBookmarkImage(composeTestRule)
|
clickOnSaveBookmarkImage(composeTestRule)
|
||||||
}
|
waitComposeToSettleViews()
|
||||||
}
|
// Close the application.
|
||||||
|
InstrumentationRegistry.getInstrumentation().uiAutomation.performGlobalAction(
|
||||||
@Test
|
AccessibilityService.GLOBAL_ACTION_HOME
|
||||||
fun testBookmarkRemainsSavedOrNot() {
|
)
|
||||||
composeTestRule.waitForIdle()
|
// wait a bit
|
||||||
|
waitComposeToSettleViews()
|
||||||
|
// reopen the application to test that book remains saved or not.
|
||||||
|
val context = ApplicationProvider.getApplicationContext<Context>()
|
||||||
|
val intent = context.packageManager.getLaunchIntentForPackage(context.packageName)
|
||||||
|
intent?.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK)
|
||||||
|
context.startActivity(intent)
|
||||||
|
InstrumentationRegistry.getInstrumentation().waitForIdleSync()
|
||||||
|
waitComposeToSettleViews()
|
||||||
topLevel {
|
topLevel {
|
||||||
clickBookmarksOnNavDrawer(kiwixMainActivity as CoreMainActivity, composeTestRule) {
|
clickBookmarksOnNavDrawer(kiwixMainActivity as CoreMainActivity, composeTestRule) {
|
||||||
assertBookmarkSaved(composeTestRule)
|
assertBookmarkSaved(composeTestRule)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun waitComposeToSettleViews() {
|
||||||
|
composeTestRule.apply {
|
||||||
|
waitForIdle()
|
||||||
|
waitUntilTimeout()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testSavedBookmarksShowingOnBookmarkScreen() {
|
fun testSavedBookmarksShowingOnBookmarkScreen() {
|
||||||
@ -201,7 +211,7 @@ class LibkiwixBookmarkTest : BaseActivityTest() {
|
|||||||
assertNoBookMarkTextDisplayed(composeTestRule)
|
assertNoBookMarkTextDisplayed(composeTestRule)
|
||||||
pressBack()
|
pressBack()
|
||||||
}
|
}
|
||||||
composeTestRule.waitUntilTimeout()
|
waitComposeToSettleViews()
|
||||||
val coreReaderFragment = kiwixMainActivity.supportFragmentManager.fragments
|
val coreReaderFragment = kiwixMainActivity.supportFragmentManager.fragments
|
||||||
.filterIsInstance<CoreReaderFragment>()
|
.filterIsInstance<CoreReaderFragment>()
|
||||||
.firstOrNull()
|
.firstOrNull()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user