Cover rejected activity commands at the native queue boundary
This commit is contained in:
1 parent
61266986e5
commit
f941066934
2 files changed
+21
-2
No files matched your search
+4
-1
@@ -34,13 +34,16 @@ object NativeLib {
|
||||
val activityRequests = mutableListOf<Boolean>()
|
||||
var activityAttempts = 0
|
||||
var failActivityRequest = false
|
||||
var acceptActivityRequest = true
|
||||
fun notifyNetworkActive() { networkNotifications.incrementAndGet() }
|
||||
fun isReady(): Boolean = ready
|
||||
fun updateSockets(config: String): Boolean { socketUpdates.add(config); return acceptSocketUpdate }
|
||||
fun setActive(active: Boolean) {
|
||||
fun setActive(active: Boolean): Boolean {
|
||||
activityAttempts++
|
||||
check(!failActivityRequest) { "activity request unavailable" }
|
||||
if (!acceptActivityRequest) return false
|
||||
activityRequests.add(active)
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+17
-1
@@ -15,11 +15,17 @@ class CoreActivityLifecycleTest {
|
||||
NativeLib.activityAttempts = 0
|
||||
NativeLib.activityRequests.clear()
|
||||
NativeLib.failActivityRequest = false
|
||||
NativeLib.acceptActivityRequest = true
|
||||
NativeLib.ready = true
|
||||
LogManager.entries.clear()
|
||||
}
|
||||
|
||||
@After fun release() { clearOwners(); NativeLib.failActivityRequest = false; NativeLib.ready = true }
|
||||
@After fun release() {
|
||||
clearOwners()
|
||||
NativeLib.failActivityRequest = false
|
||||
NativeLib.acceptActivityRequest = true
|
||||
NativeLib.ready = true
|
||||
}
|
||||
|
||||
private fun clearOwners() {
|
||||
NativeLib.ready = false
|
||||
@@ -119,6 +125,16 @@ class CoreActivityLifecycleTest {
|
||||
}
|
||||
}
|
||||
|
||||
@Test fun rejectedNativePostDoesNotSuppressRetry() {
|
||||
NativeLib.acceptActivityRequest = false
|
||||
CoreActivity.visible(true)
|
||||
assertTrue(NativeLib.activityRequests.isEmpty())
|
||||
NativeLib.acceptActivityRequest = true
|
||||
CoreActivity.sync()
|
||||
assertEquals(2, NativeLib.activityAttempts)
|
||||
assertEquals(listOf(true), NativeLib.activityRequests)
|
||||
}
|
||||
|
||||
@Test fun resetRejectsBackgroundCallerWithoutInvalidatingCache() {
|
||||
CoreActivity.sync()
|
||||
assertTrue(offMain { CoreActivity.reset() } is IllegalStateException)
|
||||
|
||||
Reference in new issue
Block a user