Issue#67 Extract ActivityScenario.safeClose into separate module
This commit is contained in:
parent
689aee9702
commit
1c0153db75
8 changed files with 15 additions and 9 deletions
|
|
@ -19,7 +19,7 @@ import org.fnives.test.showcase.testutils.idling.Disposable
|
||||||
import org.fnives.test.showcase.testutils.idling.IdlingResourceDisposable
|
import org.fnives.test.showcase.testutils.idling.IdlingResourceDisposable
|
||||||
import org.fnives.test.showcase.testutils.idling.MainDispatcherTestRule.Companion.advanceUntilIdleWithIdlingResources
|
import org.fnives.test.showcase.testutils.idling.MainDispatcherTestRule.Companion.advanceUntilIdleWithIdlingResources
|
||||||
import org.fnives.test.showcase.testutils.idling.OkHttp3IdlingResource
|
import org.fnives.test.showcase.testutils.idling.OkHttp3IdlingResource
|
||||||
import org.fnives.test.showcase.testutils.safeClose
|
import org.fnives.test.showcase.android.testutil.activity.safeClose
|
||||||
import org.fnives.test.showcase.testutils.storage.TestDatabaseInitialization
|
import org.fnives.test.showcase.testutils.storage.TestDatabaseInitialization
|
||||||
import org.fnives.test.showcase.ui.auth.AuthActivity
|
import org.fnives.test.showcase.ui.auth.AuthActivity
|
||||||
import org.junit.After
|
import org.junit.After
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ import androidx.test.runner.intent.IntentStubberRegistry
|
||||||
import org.fnives.test.showcase.network.mockserver.MockServerScenarioSetup
|
import org.fnives.test.showcase.network.mockserver.MockServerScenarioSetup
|
||||||
import org.fnives.test.showcase.network.mockserver.scenario.auth.AuthScenario
|
import org.fnives.test.showcase.network.mockserver.scenario.auth.AuthScenario
|
||||||
import org.fnives.test.showcase.testutils.idling.MainDispatcherTestRule
|
import org.fnives.test.showcase.testutils.idling.MainDispatcherTestRule
|
||||||
import org.fnives.test.showcase.testutils.safeClose
|
import org.fnives.test.showcase.android.testutil.activity.safeClose
|
||||||
import org.fnives.test.showcase.ui.auth.AuthActivity
|
import org.fnives.test.showcase.ui.auth.AuthActivity
|
||||||
import org.fnives.test.showcase.ui.home.HomeRobot
|
import org.fnives.test.showcase.ui.home.HomeRobot
|
||||||
import org.fnives.test.showcase.ui.home.MainActivity
|
import org.fnives.test.showcase.ui.home.MainActivity
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ import org.fnives.test.showcase.testutils.idling.AsyncDiffUtilInstantTestRule
|
||||||
import org.fnives.test.showcase.testutils.idling.MainDispatcherTestRule
|
import org.fnives.test.showcase.testutils.idling.MainDispatcherTestRule
|
||||||
import org.fnives.test.showcase.testutils.idling.loopMainThreadFor
|
import org.fnives.test.showcase.testutils.idling.loopMainThreadFor
|
||||||
import org.fnives.test.showcase.testutils.idling.loopMainThreadUntilIdleWithIdlingResources
|
import org.fnives.test.showcase.testutils.idling.loopMainThreadUntilIdleWithIdlingResources
|
||||||
import org.fnives.test.showcase.testutils.safeClose
|
import org.fnives.test.showcase.android.testutil.activity.safeClose
|
||||||
import org.fnives.test.showcase.testutils.statesetup.SetupAuthenticationState.setupLogin
|
import org.fnives.test.showcase.testutils.statesetup.SetupAuthenticationState.setupLogin
|
||||||
import org.junit.After
|
import org.junit.After
|
||||||
import org.junit.Before
|
import org.junit.Before
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ import org.fnives.test.showcase.R
|
||||||
import org.fnives.test.showcase.network.mockserver.scenario.auth.AuthScenario
|
import org.fnives.test.showcase.network.mockserver.scenario.auth.AuthScenario
|
||||||
import org.fnives.test.showcase.testutils.MockServerScenarioSetupResetingTestRule
|
import org.fnives.test.showcase.testutils.MockServerScenarioSetupResetingTestRule
|
||||||
import org.fnives.test.showcase.testutils.idling.MainDispatcherTestRule
|
import org.fnives.test.showcase.testutils.idling.MainDispatcherTestRule
|
||||||
import org.fnives.test.showcase.testutils.safeClose
|
import org.fnives.test.showcase.android.testutil.activity.safeClose
|
||||||
import org.fnives.test.showcase.ui.auth.AuthActivity
|
import org.fnives.test.showcase.ui.auth.AuthActivity
|
||||||
import org.junit.After
|
import org.junit.After
|
||||||
import org.junit.Before
|
import org.junit.Before
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import androidx.test.espresso.intent.Intents
|
||||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||||
import org.fnives.test.showcase.testutils.MockServerScenarioSetupResetingTestRule
|
import org.fnives.test.showcase.testutils.MockServerScenarioSetupResetingTestRule
|
||||||
import org.fnives.test.showcase.testutils.idling.MainDispatcherTestRule
|
import org.fnives.test.showcase.testutils.idling.MainDispatcherTestRule
|
||||||
import org.fnives.test.showcase.testutils.safeClose
|
import org.fnives.test.showcase.android.testutil.activity.safeClose
|
||||||
import org.fnives.test.showcase.testutils.statesetup.SetupAuthenticationState.setupLogin
|
import org.fnives.test.showcase.testutils.statesetup.SetupAuthenticationState.setupLogin
|
||||||
import org.fnives.test.showcase.testutils.statesetup.SetupAuthenticationState.setupLogout
|
import org.fnives.test.showcase.testutils.statesetup.SetupAuthenticationState.setupLogout
|
||||||
import org.junit.After
|
import org.junit.After
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ project.ext {
|
||||||
okhttp_version = "4.9.3"
|
okhttp_version = "4.9.3"
|
||||||
moshi_version = "1.13.0"
|
moshi_version = "1.13.0"
|
||||||
|
|
||||||
testing_androidx_code_version = "1.4.0"
|
androidx_test_version = "1.4.0"
|
||||||
testing_androidx_junit_version = "1.1.3"
|
testing_androidx_junit_version = "1.1.3"
|
||||||
arch_core_version = "2.1.0"
|
arch_core_version = "2.1.0"
|
||||||
testing_livedata_version = "1.2.0"
|
testing_livedata_version = "1.2.0"
|
||||||
|
|
|
||||||
|
|
@ -31,4 +31,5 @@ android {
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:$coroutines_version"
|
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:$coroutines_version"
|
||||||
|
implementation "androidx.test:core:$androidx_test_version"
|
||||||
}
|
}
|
||||||
|
|
@ -1,19 +1,24 @@
|
||||||
package org.fnives.test.showcase.testutils
|
package org.fnives.test.showcase.android.testutil.activity
|
||||||
|
|
||||||
import android.app.Activity
|
import android.app.Activity
|
||||||
import androidx.test.core.app.ActivityScenario
|
import androidx.test.core.app.ActivityScenario
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Workaround for issue: https://github.com/android/android-test/issues/676.
|
||||||
|
*
|
||||||
|
* Call this instead of ActivityScenario.close().
|
||||||
|
*/
|
||||||
fun <T : Activity> ActivityScenario<T>.safeClose() {
|
fun <T : Activity> ActivityScenario<T>.safeClose() {
|
||||||
workaroundForActivityScenarioCLoseLockingUp()
|
workaroundForActivityScenarioCLoseLockingUp()
|
||||||
close()
|
close()
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This should not be needed, we shouldn't use sleep ever.
|
* This should not be needed, we shouldn't use sleep basically ever.
|
||||||
* However, it seems to be and issue described here: https://github.com/android/android-test/issues/676
|
* However, it seems to be and issue described here: https://github.com/android/android-test/issues/676
|
||||||
*
|
*
|
||||||
* If an activity is finished in code, the ActivityScenario.close() can hang 30 to 45 seconds.
|
* If an activity is finished in code, the ActivityScenario.close() can hang 30 to 45 seconds.
|
||||||
* This sleeps let's the Activity finish it state change and unlocks the ActivityScenario.
|
* This sleep let's the Activity finish it's state change and unlocks the ActivityScenario.
|
||||||
*
|
*
|
||||||
* As soon as that issue is closed, this should be removed as well.
|
* As soon as that issue is closed, this should be removed as well.
|
||||||
*/
|
*/
|
||||||
Loading…
Add table
Add a link
Reference in a new issue