Fixes test cases for the CallManagerTest
This commit is contained in:
+1
-1
@@ -91,7 +91,7 @@ class MarmotFileUploader(
|
|||||||
|
|
||||||
val state = item.orchestrator.progressState.value
|
val state = item.orchestrator.progressState.value
|
||||||
if (state is UploadingState.Finished && state.result is UploadOrchestrator.OrchestratorResult.ServerResult) {
|
if (state is UploadingState.Finished && state.result is UploadOrchestrator.OrchestratorResult.ServerResult) {
|
||||||
val serverResult = state.result as UploadOrchestrator.OrchestratorResult.ServerResult
|
val serverResult = state.result
|
||||||
results.add(
|
results.add(
|
||||||
Mip04UploadResult(
|
Mip04UploadResult(
|
||||||
url = serverResult.url,
|
url = serverResult.url,
|
||||||
|
|||||||
+21
-15
@@ -112,6 +112,12 @@ class CallManagerTest {
|
|||||||
return events to job
|
return events to job
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun TestScope.collectRenegotiationEvents(manager: CallManager): Pair<MutableList<CallRenegotiateEvent>, Job> {
|
||||||
|
val events = mutableListOf<CallRenegotiateEvent>()
|
||||||
|
val job = launch { manager.renegotiationEvents.collect { events.add(it) } }
|
||||||
|
return events to job
|
||||||
|
}
|
||||||
|
|
||||||
// ---- Event construction helpers ----
|
// ---- Event construction helpers ----
|
||||||
// These use the real event builders from quartz so that tag structures
|
// These use the real event builders from quartz so that tag structures
|
||||||
// stay in sync with the production code. The builder returns an
|
// stay in sync with the production code. The builder returns an
|
||||||
@@ -569,13 +575,13 @@ class CallManagerTest {
|
|||||||
manager.onPeerConnected()
|
manager.onPeerConnected()
|
||||||
assertIs<CallState.Connected>(manager.state.value)
|
assertIs<CallState.Connected>(manager.state.value)
|
||||||
|
|
||||||
var receivedRenego: CallRenegotiateEvent? = null
|
val (renegoEvents, renegoJob) = collectRenegotiationEvents(manager)
|
||||||
manager.onRenegotiationOfferReceived = { receivedRenego = it }
|
|
||||||
|
|
||||||
val renego = makeRenegotiate(from = alice, to = bob)
|
val renego = makeRenegotiate(from = alice, to = bob)
|
||||||
manager.onSignalingEvent(renego)
|
manager.onSignalingEvent(renego)
|
||||||
|
|
||||||
assertNotNull(receivedRenego, "Renegotiation should be forwarded in Connected state")
|
assertNotNull(renegoEvents.firstOrNull(), "Renegotiation should be forwarded in Connected state")
|
||||||
|
renegoJob.cancel()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -587,13 +593,13 @@ class CallManagerTest {
|
|||||||
manager.acceptCall(sdpAnswer)
|
manager.acceptCall(sdpAnswer)
|
||||||
assertIs<CallState.Connecting>(manager.state.value)
|
assertIs<CallState.Connecting>(manager.state.value)
|
||||||
|
|
||||||
var receivedRenego: CallRenegotiateEvent? = null
|
val (renegoEvents, renegoJob) = collectRenegotiationEvents(manager)
|
||||||
manager.onRenegotiationOfferReceived = { receivedRenego = it }
|
|
||||||
|
|
||||||
val renego = makeRenegotiate(from = alice, to = bob)
|
val renego = makeRenegotiate(from = alice, to = bob)
|
||||||
manager.onSignalingEvent(renego)
|
manager.onSignalingEvent(renego)
|
||||||
|
|
||||||
assertNotNull(receivedRenego)
|
assertNotNull(renegoEvents.firstOrNull())
|
||||||
|
renegoJob.cancel()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -601,14 +607,14 @@ class CallManagerTest {
|
|||||||
runTest {
|
runTest {
|
||||||
val (manager, _) = createManager(localPubKey = bob)
|
val (manager, _) = createManager(localPubKey = bob)
|
||||||
|
|
||||||
var receivedRenego: CallRenegotiateEvent? = null
|
val (renegoEvents, renegoJob) = collectRenegotiationEvents(manager)
|
||||||
manager.onRenegotiationOfferReceived = { receivedRenego = it }
|
|
||||||
|
|
||||||
val renego = makeRenegotiate(from = alice, to = bob)
|
val renego = makeRenegotiate(from = alice, to = bob)
|
||||||
manager.onSignalingEvent(renego)
|
manager.onSignalingEvent(renego)
|
||||||
|
|
||||||
assertIs<CallState.Idle>(manager.state.value)
|
assertIs<CallState.Idle>(manager.state.value)
|
||||||
assertEquals(null, receivedRenego, "Renegotiation in Idle state should be ignored")
|
assertEquals(0, renegoEvents.size, "Renegotiation in Idle state should be ignored")
|
||||||
|
renegoJob.cancel()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -620,13 +626,13 @@ class CallManagerTest {
|
|||||||
manager.acceptCall(sdpAnswer)
|
manager.acceptCall(sdpAnswer)
|
||||||
manager.onPeerConnected()
|
manager.onPeerConnected()
|
||||||
|
|
||||||
var receivedRenego: CallRenegotiateEvent? = null
|
val (renegoEvents, renegoJob) = collectRenegotiationEvents(manager)
|
||||||
manager.onRenegotiationOfferReceived = { receivedRenego = it }
|
|
||||||
|
|
||||||
val renego = makeRenegotiate(from = alice, to = bob, callId = "wrong-call-id")
|
val renego = makeRenegotiate(from = alice, to = bob, callId = "wrong-call-id")
|
||||||
manager.onSignalingEvent(renego)
|
manager.onSignalingEvent(renego)
|
||||||
|
|
||||||
assertEquals(null, receivedRenego, "Renegotiation for wrong call-id should be ignored")
|
assertEquals(0, renegoEvents.size, "Renegotiation for wrong call-id should be ignored")
|
||||||
|
renegoJob.cancel()
|
||||||
}
|
}
|
||||||
|
|
||||||
// ========================================================================
|
// ========================================================================
|
||||||
@@ -1765,10 +1771,10 @@ class CallManagerTest {
|
|||||||
assertEquals(1, alicePublished.size)
|
assertEquals(1, alicePublished.size)
|
||||||
|
|
||||||
// Step 7: Bob receives renegotiate and responds
|
// Step 7: Bob receives renegotiate and responds
|
||||||
var renegoReceived = false
|
val (bobRenegoEvents, bobRenegoJob) = collectRenegotiationEvents(bobManager)
|
||||||
bobManager.onRenegotiationOfferReceived = { renegoReceived = true }
|
|
||||||
bobManager.onSignalingEvent(makeRenegotiate(from = alice, to = bob))
|
bobManager.onSignalingEvent(makeRenegotiate(from = alice, to = bob))
|
||||||
assertTrue(renegoReceived)
|
assertTrue(bobRenegoEvents.isNotEmpty())
|
||||||
|
bobRenegoJob.cancel()
|
||||||
|
|
||||||
bobPublished.clear()
|
bobPublished.clear()
|
||||||
bobManager.sendRenegotiationAnswer("renego-answer-sdp", alice)
|
bobManager.sendRenegotiationAnswer("renego-answer-sdp", alice)
|
||||||
|
|||||||
Reference in New Issue
Block a user