issue#116 Adjustments for timing of Delay
This is required because otherwise clicks could become Long clicks
This commit is contained in:
parent
d057c357a3
commit
fd661ca13d
2 changed files with 12 additions and 10 deletions
|
|
@ -6,11 +6,18 @@ import org.fnives.test.showcase.android.testutil.synchronization.loopMainThreadF
|
||||||
import java.util.concurrent.Executors
|
import java.util.concurrent.Executors
|
||||||
|
|
||||||
// workaround, issue with idlingResources is tracked here https://github.com/robolectric/robolectric/issues/4807
|
// workaround, issue with idlingResources is tracked here https://github.com/robolectric/robolectric/issues/4807
|
||||||
fun anyResourceNotIdle(): Boolean = (!IdlingRegistry.getInstance().resources.all(IdlingResource::isIdleNow))
|
fun anyResourceNotIdle(): Boolean {
|
||||||
|
val anyResourceNotIdle = (!IdlingRegistry.getInstance().resources.all(IdlingResource::isIdleNow))
|
||||||
|
if (!anyResourceNotIdle) {
|
||||||
|
// once it's idle we wait the Idling resource's time
|
||||||
|
OkHttp3IdlingResource.sleepForDispatcherDefaultCallInRetrofitErrorState()
|
||||||
|
}
|
||||||
|
return anyResourceNotIdle
|
||||||
|
}
|
||||||
|
|
||||||
fun awaitIdlingResources() {
|
fun awaitIdlingResources() {
|
||||||
|
if (!anyResourceNotIdle()) return
|
||||||
val idlingRegistry = IdlingRegistry.getInstance()
|
val idlingRegistry = IdlingRegistry.getInstance()
|
||||||
if (idlingRegistry.resources.all(IdlingResource::isIdleNow)) return
|
|
||||||
|
|
||||||
val executor = Executors.newSingleThreadExecutor()
|
val executor = Executors.newSingleThreadExecutor()
|
||||||
var isIdle = false
|
var isIdle = false
|
||||||
|
|
@ -22,6 +29,7 @@ fun awaitIdlingResources() {
|
||||||
idlingResource.awaitUntilIdle()
|
idlingResource.awaitUntilIdle()
|
||||||
}
|
}
|
||||||
} while (!idlingRegistry.resources.all(IdlingResource::isIdleNow))
|
} while (!idlingRegistry.resources.all(IdlingResource::isIdleNow))
|
||||||
|
OkHttp3IdlingResource.sleepForDispatcherDefaultCallInRetrofitErrorState()
|
||||||
isIdle = true
|
isIdle = true
|
||||||
}
|
}
|
||||||
while (!isIdle) {
|
while (!isIdle) {
|
||||||
|
|
|
||||||
|
|
@ -29,13 +29,7 @@ class OkHttp3IdlingResource private constructor(
|
||||||
|
|
||||||
override fun getName(): String = name
|
override fun getName(): String = name
|
||||||
|
|
||||||
override fun isIdleNow(): Boolean {
|
override fun isIdleNow(): Boolean = dispatcher.runningCallsCount() == 0
|
||||||
val isIdle = dispatcher.runningCallsCount() == 0
|
|
||||||
if (isIdle) {
|
|
||||||
sleepForDispatcherDefaultCallInRetrofitErrorState()
|
|
||||||
}
|
|
||||||
return isIdle
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun registerIdleTransitionCallback(callback: IdlingResource.ResourceCallback?) {
|
override fun registerIdleTransitionCallback(callback: IdlingResource.ResourceCallback?) {
|
||||||
this.callback = callback
|
this.callback = callback
|
||||||
|
|
@ -65,7 +59,7 @@ class OkHttp3IdlingResource private constructor(
|
||||||
*
|
*
|
||||||
* This brings us to this sleep for now.
|
* This brings us to this sleep for now.
|
||||||
*/
|
*/
|
||||||
private fun sleepForDispatcherDefaultCallInRetrofitErrorState() {
|
fun sleepForDispatcherDefaultCallInRetrofitErrorState() {
|
||||||
Thread.sleep(200L)
|
Thread.sleep(200L)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue