Cover partial communication selection and SCO cleanup effects
This commit is contained in:
1 parent
8cdb4190b6
commit
e660f8f762
1 file changed
+27
+27
@@ -187,4 +187,31 @@ class CallAudioRouterCleanupTest {
|
||||
val clears = operation("clear")
|
||||
router.stop(); assertEquals(clears, operation("clear")); assertFalse(router.cleanupPending)
|
||||
}
|
||||
|
||||
@Test fun communicationSelectionFailureAfterItsEffectRollsBackTheOwnedDevice() {
|
||||
audio.failures = setOf("select after=1", "clear")
|
||||
assertThrows(IllegalStateException::class.java) { router.start() }
|
||||
assertNotNull(audio.communicationDevice); assertTrue(router.cleanupPending); assertTrue(audio.callbacks.isEmpty())
|
||||
audio.failures = emptySet(); router.stop()
|
||||
assertNull(audio.communicationDevice); assertFalse(router.cleanupPending)
|
||||
}
|
||||
|
||||
@Test fun communicationReleaseAfterEffectStillNeedsASuccessfulAcknowledgment() {
|
||||
router.start(); adapter.connect(0)
|
||||
audio.failures = setOf("clear after"); stopRejected()
|
||||
assertNull(audio.communicationDevice); assertTrue(router.cleanupPending)
|
||||
audio.failures = emptySet(); router.stop()
|
||||
assertFalse(router.cleanupPending); assertEquals(2, operation("clear"))
|
||||
}
|
||||
|
||||
@Test fun legacyScoEffectsAndIndependentAcknowledgmentsSurviveAfterEffectFailures() {
|
||||
Build.VERSION.SDK_INT = 30
|
||||
router.start(); adapter.connect(0)
|
||||
audio.failures = setOf("start sco after"); router.setRoute(AudioRoute.HEADSET)
|
||||
assertTrue(audio.legacyScoStarted)
|
||||
audio.failures = setOf("stop sco after", "sco after=false"); stopRejected()
|
||||
assertFalse(audio.legacyScoStarted); assertFalse(audio.isBluetoothScoOn); assertTrue(router.cleanupPending)
|
||||
audio.failures = emptySet(); router.stop()
|
||||
assertFalse(router.cleanupPending); assertEquals(2, operation("stop sco")); assertEquals(2, operation("sco=false"))
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user