mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-08-03 18:56:44 -04:00
Merge pull request #3205 from kiwix/Issue#3204
Fixed remove deprecated ActivityTestRule from test cases. Upgrade test dependencies to latest stable version.
This commit is contained in:
commit
744eda8287
@ -19,11 +19,10 @@
|
||||
package org.kiwix.kiwixmobile
|
||||
|
||||
import android.Manifest.permission
|
||||
import android.app.Activity
|
||||
import android.content.Context
|
||||
import androidx.test.ext.junit.rules.ActivityScenarioRule
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||
import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation
|
||||
import androidx.test.rule.ActivityTestRule
|
||||
import androidx.test.rule.GrantPermissionRule
|
||||
import org.junit.Rule
|
||||
import org.junit.runner.RunWith
|
||||
@ -34,7 +33,7 @@ import org.kiwix.kiwixmobile.main.KiwixMainActivity
|
||||
@RunWith(AndroidJUnit4::class)
|
||||
abstract class BaseActivityTest {
|
||||
@get:Rule
|
||||
open var activityRule = ActivityTestRule(KiwixMainActivity::class.java)
|
||||
open var activityScenarioRule = ActivityScenarioRule(KiwixMainActivity::class.java)
|
||||
|
||||
@get:Rule
|
||||
var readPermissionRule: GrantPermissionRule =
|
||||
@ -48,16 +47,6 @@ abstract class BaseActivityTest {
|
||||
getInstrumentation().targetContext.applicationContext
|
||||
}
|
||||
|
||||
protected inline fun <reified T : Activity> activityTestRule(
|
||||
noinline beforeActivityAction: (() -> Unit)? = null
|
||||
) =
|
||||
object : ActivityTestRule<T>(T::class.java) {
|
||||
override fun beforeActivityLaunched() {
|
||||
super.beforeActivityLaunched()
|
||||
beforeActivityAction?.invoke()
|
||||
}
|
||||
}
|
||||
|
||||
protected fun testComponent(): TestComponent = DaggerTestComponent.builder()
|
||||
.context(context)
|
||||
.build()
|
||||
|
@ -18,7 +18,6 @@
|
||||
package org.kiwix.kiwixmobile.help
|
||||
|
||||
import android.os.Build
|
||||
import androidx.test.internal.runner.junit4.statement.UiThreadStatement.runOnUiThread
|
||||
import androidx.test.platform.app.InstrumentationRegistry
|
||||
import androidx.test.uiautomator.UiDevice
|
||||
import leakcanary.LeakAssertions
|
||||
@ -43,7 +42,9 @@ class HelpFragmentTest : BaseActivityTest() {
|
||||
@Test
|
||||
fun verifyHelpActivity() {
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
|
||||
runOnUiThread { activityRule.activity.navigate(R.id.helpFragment) }
|
||||
activityScenarioRule.scenario.onActivity {
|
||||
it.navigate(R.id.helpFragment)
|
||||
}
|
||||
help {
|
||||
clickOnWhatDoesKiwixDo()
|
||||
assertWhatDoesKiwixDoIsExpanded()
|
||||
|
@ -25,7 +25,6 @@ import androidx.test.core.app.ActivityScenario
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||
import androidx.test.filters.LargeTest
|
||||
import androidx.test.platform.app.InstrumentationRegistry
|
||||
import androidx.test.rule.ActivityTestRule
|
||||
import androidx.test.uiautomator.UiDevice
|
||||
import com.adevinta.android.barista.interaction.BaristaSleepInteractions
|
||||
import leakcanary.LeakAssertions
|
||||
@ -43,15 +42,6 @@ import org.kiwix.kiwixmobile.testutils.TestUtils
|
||||
@LargeTest
|
||||
@RunWith(AndroidJUnit4::class)
|
||||
class InitialDownloadTest : BaseActivityTest() {
|
||||
override var activityRule: ActivityTestRule<KiwixMainActivity> = activityTestRule {
|
||||
PreferenceManager.getDefaultSharedPreferences(context).edit {
|
||||
putBoolean(SharedPreferenceUtil.PREF_SHOW_INTRO, false)
|
||||
putBoolean(SharedPreferenceUtil.PREF_WIFI_ONLY, false)
|
||||
putBoolean(SharedPreferenceUtil.PREF_SHOW_STORAGE_OPTION, true)
|
||||
putBoolean(SharedPreferenceUtil.IS_PLAY_STORE_BUILD, true)
|
||||
putBoolean(SharedPreferenceUtil.PREF_IS_TEST, true)
|
||||
}
|
||||
}
|
||||
|
||||
@Rule
|
||||
@JvmField
|
||||
@ -60,6 +50,13 @@ class InitialDownloadTest : BaseActivityTest() {
|
||||
@Before
|
||||
override fun waitForIdle() {
|
||||
UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()).waitForIdle()
|
||||
PreferenceManager.getDefaultSharedPreferences(context).edit {
|
||||
putBoolean(SharedPreferenceUtil.PREF_SHOW_INTRO, false)
|
||||
putBoolean(SharedPreferenceUtil.PREF_WIFI_ONLY, false)
|
||||
putBoolean(SharedPreferenceUtil.PREF_SHOW_STORAGE_OPTION, true)
|
||||
putBoolean(SharedPreferenceUtil.IS_PLAY_STORE_BUILD, true)
|
||||
putBoolean(SharedPreferenceUtil.PREF_IS_TEST, true)
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -20,7 +20,6 @@ package org.kiwix.kiwixmobile.intro
|
||||
import android.os.Build
|
||||
import androidx.core.content.edit
|
||||
import androidx.preference.PreferenceManager
|
||||
import androidx.test.internal.runner.junit4.statement.UiThreadStatement.runOnUiThread
|
||||
import androidx.test.platform.app.InstrumentationRegistry
|
||||
import androidx.test.uiautomator.UiDevice
|
||||
import leakcanary.LeakAssertions
|
||||
@ -41,7 +40,9 @@ class IntroFragmentTest : BaseActivityTest() {
|
||||
@Test
|
||||
fun viewIsSwipeableAndNavigatesToMain() {
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
|
||||
runOnUiThread { activityRule.activity.navigate(R.id.introFragment) }
|
||||
activityScenarioRule.scenario.onActivity {
|
||||
it.navigate(R.id.introFragment)
|
||||
}
|
||||
intro(IntroRobot::swipeLeft) clickGetStarted {}
|
||||
LeakAssertions.assertNoLeaks()
|
||||
}
|
||||
|
@ -21,7 +21,6 @@ package org.kiwix.kiwixmobile.mimetype
|
||||
import androidx.core.content.edit
|
||||
import androidx.preference.PreferenceManager
|
||||
import androidx.test.platform.app.InstrumentationRegistry
|
||||
import androidx.test.rule.ActivityTestRule
|
||||
import androidx.test.uiautomator.UiDevice
|
||||
import org.junit.Assert
|
||||
import org.junit.Before
|
||||
@ -31,25 +30,21 @@ import org.kiwix.kiwixmobile.BaseActivityTest
|
||||
import org.kiwix.kiwixmobile.core.NightModeConfig
|
||||
import org.kiwix.kiwixmobile.core.reader.ZimFileReader
|
||||
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
|
||||
import org.kiwix.kiwixmobile.main.KiwixMainActivity
|
||||
import java.io.File
|
||||
import java.io.FileOutputStream
|
||||
import java.io.OutputStream
|
||||
|
||||
class MimeTypeTest : BaseActivityTest() {
|
||||
|
||||
override var activityRule: ActivityTestRule<KiwixMainActivity> = activityTestRule {
|
||||
@Before
|
||||
override fun waitForIdle() {
|
||||
UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()).waitForIdle()
|
||||
PreferenceManager.getDefaultSharedPreferences(context).edit {
|
||||
putBoolean(SharedPreferenceUtil.PREF_SHOW_INTRO, false)
|
||||
putBoolean(SharedPreferenceUtil.PREF_WIFI_ONLY, false)
|
||||
}
|
||||
}
|
||||
|
||||
@Before
|
||||
override fun waitForIdle() {
|
||||
UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()).waitForIdle()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testMimeType() {
|
||||
val loadFileStream = MimeTypeTest::class.java.classLoader.getResourceAsStream("testzim.zim")
|
||||
|
@ -19,7 +19,6 @@
|
||||
package org.kiwix.kiwixmobile.note
|
||||
|
||||
import android.os.Build
|
||||
import androidx.test.internal.runner.junit4.statement.UiThreadStatement
|
||||
import androidx.test.platform.app.InstrumentationRegistry
|
||||
import androidx.test.uiautomator.UiDevice
|
||||
import leakcanary.LeakAssertions
|
||||
@ -44,7 +43,9 @@ class NoteFragmentTest : BaseActivityTest() {
|
||||
@Test
|
||||
fun verifyNoteFragment() {
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
|
||||
UiThreadStatement.runOnUiThread { activityRule.activity.navigate(R.id.notesFragment) }
|
||||
activityScenarioRule.scenario.onActivity {
|
||||
it.navigate(R.id.notesFragment)
|
||||
}
|
||||
note {
|
||||
assertToolbarExist()
|
||||
assertNoteRecyclerViewExist()
|
||||
|
@ -21,9 +21,9 @@ import android.os.Build
|
||||
import androidx.core.content.edit
|
||||
import androidx.core.net.toUri
|
||||
import androidx.preference.PreferenceManager
|
||||
import androidx.test.core.app.ActivityScenario
|
||||
import androidx.test.internal.runner.junit4.statement.UiThreadStatement
|
||||
import androidx.test.platform.app.InstrumentationRegistry
|
||||
import androidx.test.rule.ActivityTestRule
|
||||
import androidx.test.uiautomator.UiDevice
|
||||
import leakcanary.LeakAssertions
|
||||
import org.junit.After
|
||||
@ -46,7 +46,11 @@ class SearchFragmentTest : BaseActivityTest() {
|
||||
@JvmField
|
||||
var retryRule = RetryRule()
|
||||
|
||||
override var activityRule: ActivityTestRule<KiwixMainActivity> = activityTestRule {
|
||||
private lateinit var kiwixMainActivity: KiwixMainActivity
|
||||
|
||||
@Before
|
||||
override fun waitForIdle() {
|
||||
UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()).waitForIdle()
|
||||
PreferenceManager.getDefaultSharedPreferences(context).edit {
|
||||
putBoolean(SharedPreferenceUtil.PREF_SHOW_INTRO, false)
|
||||
putBoolean(SharedPreferenceUtil.PREF_WIFI_ONLY, false)
|
||||
@ -54,15 +58,13 @@ class SearchFragmentTest : BaseActivityTest() {
|
||||
}
|
||||
}
|
||||
|
||||
@Before
|
||||
override fun waitForIdle() {
|
||||
UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()).waitForIdle()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun searchFragmentSimple() {
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
|
||||
UiThreadStatement.runOnUiThread { activityRule.activity.navigate(R.id.libraryFragment) }
|
||||
ActivityScenario.launch(KiwixMainActivity::class.java).onActivity {
|
||||
kiwixMainActivity = it
|
||||
kiwixMainActivity.navigate(R.id.libraryFragment)
|
||||
}
|
||||
val loadFileStream =
|
||||
SearchFragmentTest::class.java.classLoader.getResourceAsStream("testzim.zim")
|
||||
val zimFile = File(context.cacheDir, "testzim.zim")
|
||||
@ -79,7 +81,7 @@ class SearchFragmentTest : BaseActivityTest() {
|
||||
}
|
||||
}
|
||||
UiThreadStatement.runOnUiThread {
|
||||
activityRule.activity.navigate(
|
||||
kiwixMainActivity.navigate(
|
||||
actionNavigationLibraryToNavigationReader()
|
||||
.apply { zimFileUri = zimFile.toUri().toString() }
|
||||
)
|
||||
@ -87,7 +89,7 @@ class SearchFragmentTest : BaseActivityTest() {
|
||||
search { checkZimFileSearchSuccessful(R.id.readerFragment) }
|
||||
UiThreadStatement.runOnUiThread {
|
||||
if (zimFile.canRead()) {
|
||||
activityRule.activity.openSearch(searchString = "Android")
|
||||
kiwixMainActivity.openSearch(searchString = "Android")
|
||||
} else {
|
||||
throw RuntimeException(
|
||||
"File $zimFile is not readable." +
|
||||
|
@ -197,7 +197,7 @@ object Libs {
|
||||
/**
|
||||
* https://developer.android.com/testing
|
||||
*/
|
||||
const val androidx_test_rules: String = "androidx.test:rules:" + Versions.androidx_test
|
||||
const val androidx_test_rules: String = "androidx.test:rules:" + Versions.androidx_test_core
|
||||
|
||||
/**
|
||||
* https://developer.android.com/testing
|
||||
|
@ -16,7 +16,7 @@ object Versions {
|
||||
|
||||
const val org_jetbrains_kotlinx_kotlinx_coroutines: String = "1.4.1"
|
||||
|
||||
const val androidx_test_espresso: String = "3.4.0"
|
||||
const val androidx_test_espresso: String = "3.5.0"
|
||||
|
||||
const val androidx_test_espresso_contrib: String = "3.3.0"
|
||||
|
||||
@ -36,9 +36,9 @@ object Versions {
|
||||
|
||||
const val com_jakewharton: String = "10.2.3"
|
||||
|
||||
const val androidx_test: String = "1.4.0"
|
||||
const val androidx_test: String = "1.5.1"
|
||||
|
||||
const val androidx_test_core: String = "1.5.0-alpha02"
|
||||
const val androidx_test_core: String = "1.5.0"
|
||||
|
||||
const val androidx_test_orchestrator: String = "1.4.1"
|
||||
|
||||
@ -66,7 +66,7 @@ object Versions {
|
||||
|
||||
const val preference_ktx: String = "1.1.1"
|
||||
|
||||
const val junit_jupiter: String = "5.7.0"
|
||||
const val junit_jupiter: String = "5.9.1"
|
||||
|
||||
const val assertj_core: String = "3.18.1"
|
||||
|
||||
@ -112,7 +112,7 @@ object Versions {
|
||||
|
||||
const val aapt2: String = "4.1.1-6503028"
|
||||
|
||||
const val junit: String = "1.1.2"
|
||||
const val junit: String = "1.1.4"
|
||||
|
||||
/**
|
||||
* Current version: "6.2"
|
||||
|
Loading…
x
Reference in New Issue
Block a user